Golang:Bigquery 在插入前检查唯一键
Golang: Bigquery Check Unique Key before Inserting
我正在使用 golang 实现对 google bigquery 的插入。
该文件有重复项,需要每天更新。但是,不应将重复项插入到 bigquery 中。
我使用 google 云平台和 golang 的一些 apis。但是,我还没有发现任何 apis 可以在插入之前检查是否唯一,或者为模式中的特定字段设置为唯一。
我正在使用包装器 api 并直接调用该函数。但是,该函数不会检查该字段是否唯一。请建议 golang 的任何 bigquery apis 对架构进行唯一键检查或唯一键设置。非常感谢!我会第一时间更新回复。
在 BigQuery 中,没有任何 API 或函数专门对给定字段进行唯一性检查
您可以通过将插入构建为源与目标的连接来满足您的要求,并且仅插入唯一的
这可能需要您首先将数据插入“temp”table,然后在 GBQ
中执行以上操作
检查 StructSaver 结构的文档。
它有一个字段 InserdID
,完全符合您的要求:
// If non-empty, BigQuery will use InsertID to de-duplicate insertions
// of this row on a best-effort basis.
InsertID string
我正在使用 golang 实现对 google bigquery 的插入。 该文件有重复项,需要每天更新。但是,不应将重复项插入到 bigquery 中。 我使用 google 云平台和 golang 的一些 apis。但是,我还没有发现任何 apis 可以在插入之前检查是否唯一,或者为模式中的特定字段设置为唯一。 我正在使用包装器 api 并直接调用该函数。但是,该函数不会检查该字段是否唯一。请建议 golang 的任何 bigquery apis 对架构进行唯一键检查或唯一键设置。非常感谢!我会第一时间更新回复。
在 BigQuery 中,没有任何 API 或函数专门对给定字段进行唯一性检查
您可以通过将插入构建为源与目标的连接来满足您的要求,并且仅插入唯一的
这可能需要您首先将数据插入“temp”table,然后在 GBQ
检查 StructSaver 结构的文档。
它有一个字段 InserdID
,完全符合您的要求:
// If non-empty, BigQuery will use InsertID to de-duplicate insertions
// of this row on a best-effort basis.
InsertID string