DML的bq命令行

时间:2018-06-28 09:51:35

标签: google-cloud-platform google-bigquery

1)是否可以通过bq命令行在更新和合并语句下运行?

2)如果我将此查询保存在文件(update.sql或merge.sql)中,我可以将此文件作为输入传递给bq命令并执行。

如果我们可以执行上述任何操作,那么我可以通过Informatica作业中的脚本来调用它,并将其作为ETL作业的一部分以进行后期加载处理。

感谢您的帮助。 问候, Sreekanth

cloud-dw-poc.PREPARED_LAYER.DW_ORDER_LINE_I的SRC中,更新cloud-dw-poc.PREPARED_LAYER.ORDER_LINE_BILLABLE_FLG_VW的TGT设置TGT.BILLABLE_FLAG = SRC.BILLABLE_FLAG TGT.INTEGRATION_ID = SRC.ORDER_LINE_ID

合并cloud-dw-poc.PREPARED_LAYER.DW_ORDER_LINE_I时使用cloud-dw-poc.PREPARED_LAYER.ORDER_LINE_BILLABLE_FLG_VW SRC启用TGT(TGT.INTEGRATION_ID = SRC.ORDER_LINE_ID),然后进行更新设置TGT.BILLABLE_FLAG = SRC.BILLABLE_FLAG

1 个答案:

答案 0 :(得分:1)

您可以通过命令行使用bq query通过以下方式运行DDL查询:

bq query --use_legacy_sql=false 'MERGE cloud-dw-poc.PREPARED_LAYER.DW_ORDER_LINE_I TGT USING cloud-dw-poc.PREPARED_LAYER.ORDER_LINE_BILLABLE_FLG_VW SRC ON (TGT.INTEGRATION_ID=SRC.ORDER_LINE_ID) WHEN MATCHED THEN UPDATE SET TGT.BILLABLE_FLAG=SRC.BILLABLE_FLAG'

如果您希望将查询作为文件传递,则可以执行以下操作:

cat merge.sql | bq query --use_legacy_sql=false