【问题标题】:Bigquery - how do i insert data into nested tableBigquery - 我如何将数据插入嵌套表
【发布时间】:2020-05-14 12:03:27
【问题描述】:

我正在尝试有意将一条包含完整架构数据的虚拟记录插入到 bigquery GA360 表中。

我想出的一种方法是“插入”所有字段:

INSERT INTO <project.dataset.table> (visitorId,visitStartTime,date,totals,customDimension.......)
VALUES ( 1234, 12345, 20200101, ( 1,2,3,4,5,6,7,8,9,10,11,12,13),[(1,"asd"),....].....)

遇到嵌套结构复杂的“hits”字段,我放弃了。

还有其他方法吗(例如,我可以想象的是使用表模式 JSON 文件使用客户端 API 进行编码) 或任何在 DDL 方面取得成功的人?

【问题讨论】:

    标签: python sql google-analytics google-bigquery


    【解决方案1】:

    我将如何解决这个问题:

    1. 获取样本作为 JSON 对象:
    SELECT TO_JSON_STRING(a)
    FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801` a
    LIMIT 1
    
    1. 将那个长 JSON 字符串保存到文件中。

    2. 根据需要修改该文件。

    3. 创建一个新表以插入该文件:

    CREATE TABLE `temp.analy` AS
    SELECT *
    FROM `bigquery-public-data.google_analytics_sample.ga_sessions_20170801` 
    LIMIT 0
    
    1. 使用手动修改的值插入文件:

    bq load --source_format=NEWLINE_DELIMITED_JSON temp.analy my.json

    或者

    5b。创建一个联合表,以便您可以

    INSERT INTO 'table'
    SELECT * 
    FROM `federated_table_that_reads_the_json_file`
    

    【讨论】:

    • 感谢您的提示!- 修改值需要一些时间,但比插入所有值要容易得多
    猜你喜欢
    • 1970-01-01
    • 2016-07-19
    • 2013-05-09
    • 1970-01-01
    • 2015-04-18
    • 2021-02-02
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    相关资源
    最近更新 更多