如何从数据集自动化方法逻辑中的 table 列更新数据集中的视图列? |bigquery|云函数
How to update view column in DatasetB from table column in DatasetA automate approach logic ? |bigquery|cloud function
我在 DatasetA 中有一个表 A
DatasetA TableA
cd
xcd
value
1
x1
one
2
x2
3
x3
three
下面是在 DatasetB 中的 tableA 上创建的 viewA,其中值为空
DatasetB ViewA
cd
value
1
2
3
如何在 viewA 中自动更新 value 的过程 DatasetB 来自 value of Dataset A Table A ?如果 value 中没有数据,请输入其他值,例如 'no value'
**Expected Final Output of ViewA**
cd
value
1
one
2
no value
3
three
一种方法是使用 Cloud Function to automate your Bigquery update by attaching a Pub-Sub Trigger, then create a Cloud Scheduler Job 调用 Pub/Sub 触发器。
另一种无需使用 Cloud Function、Pub-Sub 和 Cloud Scheduler 的方法是使用 Bigquery 中的可用工具 - SCHEDULE 查询编辑器中的功能:
然后创建一个新的预定查询:
您可以使用以下 SQL 查询来更新视图:
select viewA.cd,
if(tableA.value = '','no_value',tableA.value) as value
from `my-project.my_datasetA.my_table` as tableA
inner join `my-project.my_datasetB.my_view` as viewA
on cast(viewA.cd as string) = tableA.cd;
结果:
我在 DatasetA 中有一个表 A
DatasetA TableA
cd | xcd | value |
---|---|---|
1 | x1 | one |
2 | x2 | |
3 | x3 | three |
下面是在 DatasetB 中的 tableA 上创建的 viewA,其中值为空
DatasetB ViewA
cd | value |
---|---|
1 | |
2 | |
3 |
如何在 viewA 中自动更新 value 的过程 DatasetB 来自 value of Dataset A Table A ?如果 value 中没有数据,请输入其他值,例如 'no value'
**Expected Final Output of ViewA**
cd | value |
---|---|
1 | one |
2 | no value |
3 | three |
一种方法是使用 Cloud Function to automate your Bigquery update by attaching a Pub-Sub Trigger, then create a Cloud Scheduler Job 调用 Pub/Sub 触发器。
另一种无需使用 Cloud Function、Pub-Sub 和 Cloud Scheduler 的方法是使用 Bigquery 中的可用工具 - SCHEDULE 查询编辑器中的功能:
然后创建一个新的预定查询:
您可以使用以下 SQL 查询来更新视图:
select viewA.cd,
if(tableA.value = '','no_value',tableA.value) as value
from `my-project.my_datasetA.my_table` as tableA
inner join `my-project.my_datasetB.my_view` as viewA
on cast(viewA.cd as string) = tableA.cd;
结果: