将 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的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象流式传输到压缩的 json?

如何使用 createWriteStream 将 JSON 流式传输到 BigQuery 表?

使用java将json数据流式传输到Bigquery中。不使用作业加载数据

使用 Json.net 将大量数据流式传输为 JSON 格式

如何将 JSON 数组从 NodeJS 流式传输到 postgres

如何从文件中流式传输 JSON?