tf.contrib.cloud.BigtableTable
Точка входа для чтения и записи данных в Cloud Bigtable.
tf.contrib.cloud.BigtableTable(
name, snapshot, resource
)
Этот класс BigtableTable представляет собой Python-представление таблицы Cloud Bigtable в TensorFlow. Методы этого класса позволяют читать и записывать данные в службу Cloud Bigtable гибким и высокопроизводительным способом.
Методы
keys_by_prefix_dataset
keys_by_prefix_dataset(
prefix
)
Возвращает ключи строк, соответствующие заданному префиксу.
| Аргументы | |
|---|---|
prefix | Все ключи строк, начинающиеся с prefix в таблице, будут извлечены. |
| Возвращаемое значение | |
|---|---|
A tf.data.Dataset. содержащий tf.string тензоры, соответствующие всем ключам строк, соответствующим этому префиксу. |
keys_by_range_dataset
keys_by_range_dataset(
start, end
)
Возвращает все ключи строк между началом и концом.
Примечание: оно НЕ возвращает значения столбцов.
| Аргументы | |
|---|---|
start | Начальный ключ строки. Ключи строк для строк после начала (включительно) будут извлечены. |
end | (Необязательно.) Конечный ключ строки. Строки до (но не включая) конца будут извлечены. Если конец равен None, все последующие ключи строк будут извлечены. |
| Возвращаемое значение | |
|---|---|
A tf.data.Dataset содержащий tf.string тензоры, соответствующие всем ключам строк между start и end. |
lookup_columns
lookup_columns(
*args, **kwargs
)
Возвращает значения столбцов для набора ключей.
Пример использования:
table = bigtable_client.table("my_table")
key_dataset = table.get_keys_prefix("imagenet")
images = key_dataset.apply(table.lookup_columns(("cf1", "image"),
("cf2", "label"),
("cf2", "boundingbox")))
training_data = images.map(parse_and_crop, num_parallel_calls=64).batch(128)
В качестве альтернативы, вы можете использовать ключевые аргументы для указания столбцов для захвата. Пример (то же самое, что и выше, переписанный):
table = bigtable_client.table("my_table")
key_dataset = table.get_keys_prefix("imagenet")
images = key_dataset.apply(table.lookup_columns(
cf1="image", cf2=("label", "boundingbox")))
training_data = images.map(parse_and_crop, num_parallel_calls=64).batch(128)
Примечание: некоторыеkwargsключи зарезервированы, и поэтому некоторые семейства столбцов не могут быть идентифицированы с использованием синтаксисаkwargs. Вместо этого, используйте синтаксисargs. Этот список включает:
- 'name'
Примечание: этот список может измениться в любое время.
| Аргументы | |
|---|---|
*args | Список кортежей, содержащих пары (семейство столбцов, имя столбца). |
**kwargs | Семьи столбцов (ключи) и квалификаторы столбцов (значения). |
| Возвращаемое значение | |
|---|---|
Функция, которую можно передать в tf.data.Dataset.apply для получения значений столбцов для строк. |
parallel_scan_prefix
parallel_scan_prefix(
prefix, num_parallel_scans=None, probability=None, columns=None, **kwargs
)
Получает строки (включая значения) из службы Bigtable с высокой скоростью.
Строки с ключом строки, начинающимся с prefix, будут извлечены. Этот метод похож на scan_prefix, но в отличие от него выполняет несколько подсканирований параллельно для достижения более высокой производительности.
Примечание: Множество, созданное этим методом, не является детерминированным!
Указание столбцов для извлечения для каждой строки выполняется с помощью аргументов kwargs или в параметре столбцы. Для извлечения значений столбцов "c1" и "c2" из семейства столбцов "cfa" и значения столбца "c3" из семейства столбцов "cfb" следующие наборы данных (ds1, и ds2) эквивалентны:
table = # ...
ds1 = table.parallel_scan_prefix("row_prefix", columns=[("cfa", "c1"),
("cfa", "c2"),
("cfb", "c3")])
ds2 = table.parallel_scan_prefix("row_prefix", cfa=["c1", "c2"], cfb="c3")
Примечание: будет извлечено только последнее значение ячейки.
| Аргументы | |
|---|---|
prefix | Префикс, которому все ключи строк должны соответствовать, чтобы быть извлеченными для сканирования по префиксу. |
num_parallel_scans | (Необязательно.) Количество одновременных сканирований экземпляра Cloud Bigtable. |
probability | (Необязательно.) Вещественное число от 0 (исключительно) до 1 (включительно). Значение, отличное от 1, указывает на вероятностную выборку строк с заданной вероятностью. |
columns | Столбцы для чтения. Примечание: чаще всего они выражаются как kwargs. Используйте значение столбцов, если вы используете семейства столбцов, которые зарезервированы. Значения столбцов и kwargs объединяются. Столбцы — это список кортежей строк ("column_family", "column_qualifier"). |
**kwargs | Семьи столбцов и столбцы для чтения. Ключи обрабатываются как column_families, а значения могут быть либо списками строк, либо строками, которые обрабатываются как column_qualifier (имя столбца). |
| Возвращаемое значение | |
|---|---|
A tf.data.Dataset возвращающий ключи строк и содержимое ячеек. |
| Исключения | |
|---|---|
ValueError | Если настроенная вероятность не соответствует ожиданиям. |
parallel_scan_range
parallel_scan_range(
start, end, num_parallel_scans=None, probability=None, columns=None, **kwargs
)
Получает строки (включая значения) из службы Bigtable.
Строки с ключами строк между start и end будут извлечены. Этот метод похож на scan_range, но в отличие от него выполняет несколько подсканирований параллельно для достижения более высокой производительности.
Примечание: Множество, созданное этим методом, не является детерминированным!
Указание столбцов для извлечения для каждой строки выполняется с помощью аргументов kwargs или в параметре столбцы. Для извлечения значений столбцов "c1" и "c2" из семейства столбцов "cfa" и значения столбца "c3" из семейства столбцов "cfb" следующие наборы данных (ds1, и ds2) эквивалентны:
table = # ...
ds1 = table.parallel_scan_range("row_start",
"row_end",
columns=[("cfa", "c1"),
("cfa", "c2"),
("cfb", "c3")])
ds2 = table.parallel_scan_range("row_start", "row_end",
cfa=["c1", "c2"], cfb="c3")
Примечание: будет извлечено только последнее значение ячейки.
| Аргументы | |
|---|---|
start | Начало диапазона при сканировании по диапазону. |
end | (Необязательно.) Конец диапазона при сканировании по диапазону. |
num_parallel_scans | (Необязательно.) Количество одновременных сканирований экземпляра Cloud Bigtable. |
probability | (Необязательно.) Вещественное число от 0 (исключительно) до 1 (включительно). Значение, отличное от 1, указывает на вероятностную выборку строк с заданной вероятностью. |
columns | Столбцы для чтения. Примечание: чаще всего они выражаются как kwargs. Используйте значение столбцов, если вы используете семейства столбцов, которые зарезервированы. Значения столбцов и kwargs объединяются. Столбцы — это список кортежей строк ("column_family", "column_qualifier"). |
**kwargs | Семьи столбцов и столбцы для чтения. Ключи обрабатываются как column_families, а значения могут быть либо списками строк, либо строками, которые обрабатываются как column_qualifier (имя столбца). |
| Возвращаемое значение | |
|---|---|
A tf.data.Dataset возвращающий ключи строк и содержимое ячеек. |
| Исключения | |
|---|---|
ValueError | Если настроенная вероятность не соответствует ожиданиям. |
sample_keys
sample_keys()
Извлекает выборку ключей строк из таблицы Bigtable.
Этот набор данных чаще всего используется совместно с tf.data.experimental.parallel_interleave для построения набора диапазонов для параллельного сканирования.
| Возвращаемое значение | |
|---|---|
A tf.data.Dataset возвращающий строковые ключи строк. |
scan_prefix
scan_prefix(
prefix, probability=None, columns=None, **kwargs
)
Получает строки (включая значения) из службы Bigtable.
Строки с ключом строки, начинающимся с prefix, будут извлечены.
Указание столбцов для извлечения для каждой строки выполняется с помощью kwargs или в параметре columns. Для извлечения значений столбцов "c1" и "c2" из семейства столбцов "cfa" и значения столбца "c3" из семейства столбцов "cfb" следующие наборы данных (ds1, и ds2) эквивалентны:
table = # ...
ds1 = table.scan_prefix("row_prefix", columns=[("cfa", "c1"),
("cfa", "c2"),
("cfb", "c3")])
ds2 = table.scan_prefix("row_prefix", cfa=["c1", "c2"], cfb="c3")
Примечание: будет извлечено только последнее значение ячейки.
| Аргументы | |
|---|---|
prefix | Префикс, которому должны соответствовать все ключи строк для извлечения при сканировании по префиксу. |
probability | (Необязательно.) Число с плавающей точкой от 0 (исключительно) до 1 (включительно). Значение, отличное от 1, указывает на вероятностную выборку строк с указанной вероятностью. |
columns | Столбцы для чтения. Примечание: чаще всего они выражаются как kwargs. Используйте значение columns, если вы используете зарезервированные семейства столбцов. Значения columns и kwargs объединяются. Columns — это список кортежей строк ("column_family", "column_qualifier"). |
**kwargs | Семьи столбцов и столбцы для чтения. Ключи обрабатываются как column_families, а значения могут быть либо списками строк, либо строками, которые обрабатываются как column qualifier (имя столбца). |
| Возвращаемое значение | |
|---|---|
A tf.data.Dataset возвращает ключи строк и содержимое ячеек. |
| Исключения | |
|---|---|
ValueError | Если заданная вероятность неожидаема. |
scan_range
scan_range(
start, end, probability=None, columns=None, **kwargs
)
Извлекает строки (включая значения) из сервиса Bigtable.
Будут извлечены строки с ключами строк между start и end.
Указание столбцов для извлечения для каждой строки выполняется с помощью kwargs или в параметре columns. Для извлечения значений столбцов "c1" и "c2" из семейства столбцов "cfa" и значения столбца "c3" из семейства столбцов "cfb" следующие наборы данных (ds1, и ds2) эквивалентны:
table = # ...
ds1 = table.scan_range("row_start", "row_end", columns=[("cfa", "c1"),
("cfa", "c2"),
("cfb", "c3")])
ds2 = table.scan_range("row_start", "row_end", cfa=["c1", "c2"], cfb="c3")
Примечание: будет извлечено только последнее значение ячейки.
| Аргументы | |
|---|---|
start | Начало диапазона при сканировании по диапазону. |
end | (Необязательно.) Конец диапазона при сканировании по диапазону. |
probability | (Необязательно.) Число с плавающей точкой от 0 (исключительно) до 1 (включительно). Значение, отличное от 1, указывает на вероятностную выборку строк с указанной вероятностью. |
columns | Столбцы для чтения. Примечание: чаще всего они выражаются как kwargs. Используйте значение columns, если вы используете зарезервированные семейства столбцов. Значения columns и kwargs объединяются. Columns — это список кортежей строк ("column_family", "column_qualifier"). |
**kwargs | Семьи столбцов и столбцы для чтения. Ключи обрабатываются как column_families, а значения могут быть либо списками строк, либо строками, которые обрабатываются как column qualifier (имя столбца). |
| Возвращаемое значение | |
|---|---|
A tf.data.Dataset возвращает ключи строк и содержимое ячеек. |
| Исключения | |
|---|---|
ValueError | Если заданная вероятность неожидаема. |
write
write(
dataset, column_families, columns, timestamp=None
)
Записывает набор данных в таблицу.
| Аргументы | |
|---|---|
dataset | A tf.data.Dataset для записи в эту таблицу. Он должен генерировать список из числа столбцов + 1 элементов, все из которых должны быть строками. Первое значение будет использоваться в качестве ключа строки, а последующие значения — в качестве значений ячеек для соответствующих столбцов из соответствующих записей column_families и columns. |
column_families | A tf.Tensor из tf.string соответствуют именам столбцов для хранения элементов набора данных. |
columns | A tf.Tensor из tf.string соответствуют именам столбцов для хранения элементов набора данных. |
timestamp | (Необязательно.) 64-битное целое число timestamp для записи всех значений. Оставьте как None, чтобы использовать предоставленные сервером метки времени. |
| Возвращаемое значение | |
|---|---|
A tf.Operation, который можно запустить для выполнения записи. |
| Исключения | |
|---|---|
ValueError | Если есть неожиданные или несовместимые типы, или если количество столбцов и column_families не соответствует выводу dataset. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r1.15/api_docs/python/tf/contrib/cloud/BigtableTable