google-bigquery - 在选择 SQL 时插入 BigQuery 动态查询
问题描述
文件.ini:-
块引用
TAB1: table1
TAB2: table2
KEYS:
col1: 'SKey'
NONKEYS:
col2: 'SCode'
col3: 'SName'
col4: 'SState
文件数据.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 Confirm 123,ABC,Acme Supply Co,CA,01/01/00,N 问题:
要执行的两步作业。读取 file_data.csv 文件并插入到 table2。file.ini 文件将提供 file_data.csv 中有多少列,哪些是 KEY 或 NONKEY。形成查询,以便比较 table1 和 table2 中的 SKey 列并插入到 table1 中,其中 table1 中的 SKey 列 = table2 中的 SKey 列,并且 table2 中的其余列数据与 table1 中的不同。
唯一的主要问题是在选择查询中使用的列数可以根据 ini 文件、KEYS 和 NONKEYS 列表项而有所不同。查询必须是动态的,并且可以容纳 file.ini 中存在的许多 KEYS 和 NONKEYS。每次新的 file.ini 和 file_data.csv 都有不同的列并且存在相应的 KEYS 和 NONKEYS ..
我正在尝试的逻辑是:- 对于 table2 中的每一行,比较 table1 和 2 中的每个 col 以及 SKey 匹配的位置(相同)和其他数据不同(col3/4/5 等),即不同,然后将这些列插入表 2 到表 1 。但是在构建所有动态查询时遇到了麻烦。
解决方案
推荐阅读
- javascript - 从图像与 Javascript RGB 中理解 Python Pixel
- javascript - 金字塔算法的大 O 成本
- jenkins - 黄瓜:当我从詹金斯跑步时,设置 setSkippedAsNotFailing 不起作用
- c - For 循环 for 三角形 c prog
- python-3.x - 如何在来自 HtmlResponse 的对象中使用 css 选择器
- visual-studio-code - vscode python自动完成设置
- asp.net-mvc - 如何在 Vue js 中使用`AntiForgeryToken`
- c++ - 在 c++ 中返回正确的值是否是异常安全的?
- javascript - 此商家在 react native paytm 集成中不允许应用调用
- python - Django - 无法下载文件(改为显示为文本)