首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用气流将bigquery导出到bigtable?图式问题

如何使用气流将bigquery导出到bigtable?图式问题
EN

Stack Overflow用户
提问于 2021-08-05 01:21:57
回答 1查看 398关注 0票数 1

我使用气流将BigQuery行提取到的Avro格式。

代码语言:javascript
运行
AI代码解释
复制
with models.DAG(
    "bigquery_to_bigtable",
    default_args=default_args,
    schedule_interval=None,
    start_date=datetime.now(),
    catchup=False,
    tags=["test"],
) as dag:
    
    data_to_gcs = BigQueryInsertJobOperator(
        task_id="data_to_gcs",
        project_id=project_id,
        location=location,
        configuration={
            "extract": {
                "destinationUri": gcs_uri, "destinationFormat": "AVRO",
                "sourceTable": {
                    "projectId": project_id, "datasetId": dataset_id, 
                    "tableId": table_id}}})

    gcs_to_bt = DataflowTemplatedJobStartOperator(
        task_id="gcs_to_bt",
        template="gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Bigtable",
        location=location,
        parameters={
            'bigtableProjectId': project_id,
            'bigtableInstanceId': bt_instance_id,
            'bigtableTableId': bt_table_id,
            'inputFilePattern': 'gs://export/test.avro-*'
        },
    )

data_to_gcs >> gcs_to_bt

bigquery行包含

代码语言:javascript
运行
AI代码解释
复制
row_key      | 1_cnt | 2_cnt | 3_cnt
1#2021-08-03 |   1   |   2   |   2 
2#2021-08-02 |   5   |   1   |   5 
.
.
.

我想在bigtable中使用row_key列表示行键,对于特定列家族中的列使用rest列,比如bigtable中的my_cf

但是,在使用数据流将avro文件加载到bigtable时,我收到了错误消息。

代码语言:javascript
运行
AI代码解释
复制
"java.io.IOException: Failed to start reading from source: gs://export/test.avro-"
Caused by: org.apache.avro.AvroTypeException: Found Root, expecting com.google.cloud.teleport.bigtable.BigtableRow, missing required field key

我读到的文档告诉我们:

Bigtable表必须存在,并且具有与Avro文件中导出的列族相同的列族。

如何导出具有相同列族的Avro中的BigQuery?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-09 03:34:34

我认为你必须把AVRO转换成正确的模式。您提到的文档还说:

  • Bigtable需要输入Avro文件中的特定架构。

有一个链接指的是必须使用的特殊数据模式。

如果我正确理解了,您只是从表中导入数据--尽管是AVRO,但是需求模式不会太多,因此您需要将数据转换为适合您的BigTable模式的适当模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68663873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文