使用 Python 仅从 Cloud Big Table 中获取行键?

Posted

技术标签:

【中文标题】使用 Python 仅从 Cloud Big Table 中获取行键?【英文标题】:Fetching only the row-keys from Cloud Big Table using Python? 【发布时间】:2021-06-24 08:54:40 【问题描述】:

Java HBase 库支持一种特殊类型的过滤器,它只从 BT 获取行键。是否可以用 Python 做同样的事情?最好使用 google 的 lib - https://github.com/googleapis/python-bigtable

Java: https://cloud.google.com/bigtable/docs/hbase-client/javadoc/com/google/cloud/bigtable/hbase/adapters/filters/KeyOnlyFilterAdapter

【问题讨论】:

【参考方案1】:

没有使用 python 库的过滤器,因为它可用于 HBase 库仅获取 Bigtable 中的行键。但是您仍然可以通过对“filter_modify_strip_value(project_id, instance_id, table_id)”函数进行一些修改来检索行键,您可以从this github link 找到该函数。请仅在需要计算行数或仅需要行键时使用此函数,因为该函数使用StripValue filter 将每个单元格的值替换为空字符串但行键仍然那里。你可以试试下面的代码:

from google.cloud import bigtable
import datetime
import google.cloud.bigtable.row_filters as row_filters
 
def filter_modify_strip_value(project_id="my_project_id", instance_id="my-instance-id", table_id="my-table-name"):
   print("---- filter_modify_strip_value ----")
   client = bigtable.Client(project=project_id, admin=True)
   instance = client.instance(instance_id)
   table = instance.table(table_id)
 
   rows = table.read_rows(
       filter_=row_filters.StripValueTransformerFilter(True))
      
   for row in rows:
       print(row.row_key.decode('utf-8'))
 
filter_modify_strip_value()

【讨论】:

以上是关于使用 Python 仅从 Cloud Big Table 中获取行键?的主要内容,如果未能解决你的问题,请参考以下文章

使用 Google Cloud Functions Node JS 10 仅从特定存储桶目录复制事件驱动的文件

Big Query 表对象属性为空

我们会为仅从缓存中读取(Cloud FireStore)支付(成本)吗? [复制]

将数据流从 Google Cloud Storage 流式传输到 Big Query

将文件从 Google Cloud 自动上传到 Big Query

markdown AWS Cloud Experience Porto Alegre,Transforme sua empresa com Big Data