使用 python 和 sqlalchemy 将一些机器学习模型推理插入到大查询表中。这就是表格的样子(两个示例行)。
这就是 BQ 中数据类型的显示方式。
基本上,
demand_date
和inference_date
应该是复合主键列。为了使 upsert 幂等,每当我使用 SQL-Alchemy 插入到该表中时,如果 demand_date
和 inference_date
组合已经存在,我想使用以下命令将 tcn
和 boosting
中的旧值替换为新值session.merge
SQL炼金术的方法。
使用 SQL 炼金术有可能吗?那是因为最近我读到 BQ 无法强制执行主键约束,这意味着我最终会得到重复的行?如果不可能,使用 SQL-alchemy 接口在大查询中更新插入的最简洁方法是什么?
Bigquery 已开始提供类似 SQL 的约束,包括主键和外键。
对于 upsert Bigqury 还提供 merge 语句。您想要做的就是维护 SCD 类型 1 表,而 merge 语句将是完美的选择。
https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#merge_statement