首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GCP ETL管道故障- BQ到BQ迁移

GCP ETL管道故障- BQ到BQ迁移
EN

Stack Overflow用户
提问于 2022-06-06 16:10:42
回答 1查看 77关注 0票数 -1

我正面临着一个问题,或者更确切地说是一个挑战,我还没有弄清楚。并认为我可能需要帮助设置正确的方式,任何线索都会非常感谢。

我非常熟悉AWS,但最近迁移到GCP,负责设置ETL流,如果我在解释前面的流程时造成任何混乱,请原谅。

为了概述或寻求摘要,以下是当前我们的管道的设置方式:

我有一个生产桶,比如abc_prod,其中应用程序数据被填充在地板上,很少有人说:

  • abc_prod / installed_apps /
  • abc_prod /contacts /
  • abc_prod / location
  • abc_prod/location/contacts每天在仓库中添加上述

的桶/文件夹中的拼花文件

  1. GCS to BQ :脚本通过以下代码读取GCS中的parquets并将其加载到“”数据库中:

bq_client = bigquery.Client() job_config = bigquery.LoadJobConfig() job_config.source_format = bigquery.SourceFormat.PARQUET #写截断将在后台覆盖现有数据job_config.write_disposition = "WRITE_TRUNCATE“# Executes查询作业,而无需等待其结果job = bq_client.load_table_from_uri(src_uri,table_ref,###引用表say location_inc,contacts_inc,etc job_config=job_config)

在下面的代码片段的帮助下,相同的python脚本读取上面的

  1. BQ表并将其附加到另一个名为“”的数据库中:

bq_client = bigquery.Client() job_config = bigquery.QueryJobConfig(destination=table_id,对主表的###引用,例如location_main,contact_main等write_disposition="WRITE_APPEND") query_job =bq_client.query(查询,job_config)

现在,对于installed_appscontact,执行上述管道时不会发生任何故障。

这里的关注点是location,对于location,直到第2步,一切都执行得很顺利。parquets被读和写在BQ "inc“数据库中。第三步,虽然代码被执行,但是来自"inc“DB的数据没有附加到"main”中。代码不会产生任何错误或任何可能导致我提前调试的警告。因此,我无法找出这背后的确切原因。我使用allow_large_results=True作为QueryJobConfig的参数,但仍然无法填充"location_main“。

我注意到的一件事是,如果我在几块location parquets上尝试它,它就会被填充。如果有人能给我提供一些见解,这将是一个很大的帮助。我一直在考虑这些问题--是由于大量的数据导致location_main无法填充,还是与拼板中不一致的数据类型有关,等等。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2022-06-20 08:02:19

我设法发现,有些宴会有额外的/意外的专栏。在为主服务器创建架构时,它是根据当时可用的列创建的。我发现我们可以在QueryJobConfig中通过添加参数schema_update_options来处理列的加法/松弛,参数schema_update_options包含两个选项:“ALLOF字段_ addition”,“ALLOW_FIELD_RELAXATION”

例如:

代码语言:javascript
运行
复制
    job_config = \
    bigquery.QueryJobConfig(destination=table_id,
                            write_disposition="WRITE_APPEND",
                            schema_update_options=['ALLOW_FIELD_ADDITION','ALLOW_FIELD_RELAXATION'])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72520490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档