将 JSON 流式传输到 Bigquery
Posted
技术标签:
【中文标题】将 JSON 流式传输到 Bigquery【英文标题】:Streaming JSON into Bigquery 【发布时间】:2020-12-20 12:56:52 【问题描述】:我从 Google Drive API 收到一个 Structs type File 数组。我的目标是添加一些字段并将数据流式传输到 BigQuery。
我的第一个方法是 change the File Struct 并将更新的结构流式传输到 BigQuery。这看起来像是一个死胡同,我正在尝试使用建议的方法,将 Struct 编入 JSON 并将其流式传输到 BigQuery。
我找到了这个例子bigquery-table-insert-rows,但它实现了ValueSaver 接口。对我来说,一个简单的 Marshall 然后将 JSON 流式传输到 BigQuery 就足够了。
但是,我找不到任何这样做的方法或示例。所以我想知道是否可以使用 Go 将 JSON 流式传输到 BigQuery。一个基本的例子会很棒。
【问题讨论】:
【参考方案1】:您认为仅提供结构就足够了。
也许看看一些简单但完整的代码会有所帮助:https://github.com/tovare/idporten
我所做的只是放置一个结构切片,其中结构用 BigQuery 进行注释。
type Metric struct
Timestamp time.Time `bigquery:"timestamp"`
Metode string `bigquery:"metode"`
Antall int `bigquery:"antall"`
....
seriesTableRef := client.Dataset(datasetName).Table(tableName)
if err := seriesTableRef.Inserter().Put(ctx, metrics); err != nil
return err
【讨论】:
我从 Drive API 收到的 Struct 与 BigQuery 不兼容,Struct 中有一个 map 字段。所以我不能将它们直接插入 BigQuery。以上是关于将 JSON 流式传输到 Bigquery的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 createWriteStream 将 JSON 流式传输到 BigQuery 表?
使用java将json数据流式传输到Bigquery中。不使用作业加载数据
使用 Json.net 将大量数据流式传输为 JSON 格式