在选择SQL时插入的BigQuery动态查询

时间:2018-09-30 23:14:16

标签: google-bigquery

file.ini:-


  

Blockquote

TAB1: table1
TAB2: table2
KEYS:
    col1: 'SKey'
NONKEYS:
    col2: 'SCode'
    col3: 'SName'
    col4: 'SState

file_data.csv:-


  

Blockquote   SKey,SCode,SName,SState,EDate,CFlag   123,ABC,Acme Supply Co,CA,01/01/00,N   124,ABC,Acme Supply Co,IL,22/12/04,N   125,ABC,Acme Supply Co,CA,01/01/00,N   126,ABC,Acme Supply Co,IL,22/12/04,N   127,ABC,Acme Supply Co,CA,01/01/00,N   128,ABC,Acme Supply Co,IL,22/12/04,N   129,ABC,Acme Supply Co,CA,01/01/00,N   130,ABC,Acme Supply Co,IL,22/12/04,N   131,ABC,Acme Supply Co,CA,01/01/00,N   132,ABC,Acme Supply Co,IL,22/12/04,N

BQ表:-


  

Blockquote   SKey SCode SName SEmail SPhone SState EDate确认   123,ABC,Acme Supply Co,CA,01/01/00,N   问题:

要执行的两步作业。读取file_data.csv文件并插入到table2中。 file.ini文件将提供file_data.csv中存在多少列,哪些列为KEY或NONKEY。 进行表格查询,比较表1和表2中的SKey列并插入到表1中,其中表1中的SKey列=表2中的SKey列,表2中的其余列数据与表1中的不同。

唯一要注意的是,选择查询中使用的列数会根据ini文件,KEYS和NONKEYS列表项而有所不同。查询必须是动态的,并且必须容纳file.ini中存在的KEYS和NONKEYS。 每次新的file.ini和file_data.csv具有不同的列以及相应的KEYS和NONKEYS时。.

我正在尝试的逻辑是: 对于table2中的每一行,比较table1和2中的每个col,以及SKey匹配(相同)且其他数据不相同(col3 / 4/5等)的地方,即不同,然后将table2中的这些列插入到table1中。但是在构建所有动态文件时遇到了麻烦 查询。

0 个答案:

没有答案