使用 JSON 文件的 BigQuery 外部表

问题描述 投票:0回答:1

我有JSON格式的电商产品数据。该数据经常更新。我计划将这些数据加载到 BigQuery 中。鉴于JSON文件很大(几百个属性)并且有很多更新,我发现将整个数据存储在BigQuery中并使用合并查询频繁更新它并不是很划算。

我现在计划将常用属性存储在 BigQuery 表的各个列中。但是,当有人想要访问 JSON 的任何其他属性以进行某些临时分析时,我还需要支持用例。为了解决这个问题,我可以使用以下策略:

将产品的 JSON 存储在 GCP 中特定目录的自己的文件中。 使用该目录中的所有文件创建外部表。每个文件的内容成为外部表中描述单个产品的一行。 当产品发生更新时,我会更新 BigQuery 表,并用新文件替换该产品的现有文件。

这是一个合理的做法吗?如果是,如何从目录创建外部表?

google-bigquery external-tables
1个回答
0
投票

有多种方法可以将

JSON
数据加载到 BigQuery。每种方法都可能在成本、复杂性、运营方面有设计考虑。 为您提供
Yes/No
答案实际上取决于这三个因素。

话虽如此,您创建

external
表的方法也将起作用。

解决方案:所有类似SQL的解决方案

这是一个

external
表查询,它将在单列中创建加载数据 - 请参阅 文档

CREATE OR REPLACE EXTERNAL TABLE YOUR_PROJECT.YOUR_DATASET.my_newline_json_arrays ( col1 STRING ) OPTIONS (  format = 'CSV', field_delimiter = '\x10', quote = '', uris = ['gs://YOUR_BUCKET/my_newline_json_arrays.json'] );

创建外部表后,您可以使用

BigQuery json functions
选择所需的属性并运行 BigQuery 计划查询将数据加载到 BigQuery 中。要识别属性的更改,您可以考虑使用
table valued function
(TVF),如文档

中所述
© www.soinside.com 2019 - 2024. All rights reserved.