Google 中的 BigQuery 数据结构:如何开始使用云存储
已发表: 2022-04-12Google BigQuery 是一种云存储服务,可让您在一个系统中收集所有数据,并使用 SQL 查询轻松对其进行分析。 为了方便使用数据,它的结构应该正确。 在本文中,我们将解释如何创建表和数据集以上传到 Google BigQuery。
目录
- 数据集:它们是什么以及如何创建一个
- 如何添加表以将数据加载到 Google BigQuery
- 如何更改表架构
- 从/向 Google BigQuery 导出和导入数据
- 使用来自 OWOX BI 的插件导出和导入数据
- 为什么要在 Google BigQuery 中收集数据?


最佳 OWOX BI 营销案例
下载数据集:它们是什么以及如何创建一个
要使用 Google BigQuery,您需要在 Google Cloud Platform (GCP) 中创建一个项目。 注册后,您将可以在免费试用期内访问所有 Cloud Platform 产品,并在接下来的 12 个月内花费 300 美元购买这些产品。

在 Google Cloud Platform 中创建项目后,您需要向 Google BigQuery 添加至少一个数据集。
数据集是用于组织和控制对数据的访问的顶级容器。 简单来说,它是一种文件夹,您的信息以表格和视图的形式存储在其中。
在 GCP 中打开您的项目,转到BigQuery标签,然后单击Create Dataset :

在打开的窗口中,指定数据集的名称和表的保质期。 如果您希望自动删除包含数据的表,请指定确切的时间。 或者保留默认的Perpetual 选项,以便只能手动删除表。

处理站点字段是可选的。 默认情况下,它设置为美国多区域。 您可以在帮助部分找到有关用于存储数据的区域的更多信息。
如何添加表以将数据加载到 Google BigQuery
创建数据集后,您需要添加要收集数据的表。 表是一组行。 每行由列组成,也称为字段。 根据数据源,有多种方法可以在 BigQuery 中创建表:
- 手动创建一个空表并为其设置数据架构
- 使用先前计算的 SQL 查询的结果创建表
- 从您的计算机上传文件(CSV、AVRO、JSON、Parquet、ORC 或 Google 表格格式)
- 您可以创建一个引用外部源的表,而不是下载或流式传输数据:Cloud Bigtable、Cloud Storage 或 Google Drive。
在本文中,我们将仔细研究第一种方法:手动创建表。
步骤 1 。 选择要添加表的数据集,然后单击Create Table :

步骤 2.在 Source 字段中,选择Empty Table ,并在Table Type字段中,选择目标对象本机格式的 Table。 想出一个表的名字。
重要提示:数据集、表和字段的名称必须是拉丁字符,并且只能包含字母、数字和下划线。

步骤 3 。 指定表架构。 模式由四个组件组成:两个必需的(列名和数据类型)和两个可选的(列模式和描述)。 正确选择类型和字段模式将有助于处理数据。
BigQuery 中的示例架构:

列名
在列名中,需要指定每列负责的参数:日期、user_id、产品等。标题只能包含拉丁字母、数字和下划线(最多128个字符)。 不允许使用相同的字段名称,即使它们的大小写不同。
数据类型
在 BigQuery 中创建表时,您可以使用以下字段类型:
模式
BigQuery 支持以下表格列模式:
注意:不需要填写模式字段。 如果未指定模式,则默认列为 NULLABLE。
列说明
如果您愿意,您可以为表格中的每一列添加简短描述(不超过 1024 个字符),以解释特定参数的含义。
在 BigQuery 中创建空表时,您需要手动设置架构。 这可以通过两种方式完成:
1. 单击添加字段按钮并为每列填写名称、类型和模式。
2. 使用Edit as text开关将表模式输入为 JSON 数组。
此外,当从 CSV 和 JSON 文件加载数据时,Google BigQuery 可以使用自动架构检测。
此选项的工作原理如下:BigQuery 从您指定的源中选择一个随机文件,扫描其中最多 100 行数据,并将结果用作代表性样本。 然后它会检查上传文件中的每个字段,并尝试根据样本中的值为其分配数据类型。
加载 Google 文件时,BigQuery 可以更改列的名称以使其与自己的 SQL 语法兼容。 因此,我们建议您上传带有英文字段名的表格; 例如,如果名称是俄语,系统将自动重命名它们。 例如:

如果在加载数据时列名输入错误,或者您想更改现有表中列的名称和类型,您可以手动执行此操作。 我们会告诉你怎么做。
如何更改表架构
将数据加载到 Google BigQuery 后,表格布局可能与原始表格略有不同。 例如,字段名称可能因 BigQuery 不支持的字符而发生更改,或者字段类型可能是 INTEGER 而不是 STRING。 在这种情况下,您可以手动调整架构。
如何更改列名
使用 SQL 查询,选择表中的所有列并为要重命名的列指定一个新名称。 在这种情况下,您可以覆盖现有表或创建一个新表。 请求示例:
#legacySQL Select date, order_id, order___________ as order_type, -- new field name product_id from [project_name:dataset_name.owoxbi_sessions_20190314]
#legacySQL Select date, order_id, order___________ as order_type, -- new field name product_id from [project_name:dataset_name.owoxbi_sessions_20190314]
#standardSQL Select * EXCEPT (orotp, ddat), orotp as order_id, ddat as date from `project_name.dataset_name.owoxbi_sessions_20190314`
#standardSQL Select * EXCEPT (orotp, ddat), orotp as order_id, ddat as date from `project_name.dataset_name.owoxbi_sessions_20190314`
如何更改架构中的数据类型
使用 SQL 查询,从表中选择所有数据并将相应的列转换为不同的数据类型。 您可以使用查询结果覆盖现有表或创建新表。 请求示例:

#standardSQL Select CAST (order_id as STRING) as order_id, CAST (date as TIMESTAMP) as date from `project_name.dataset_name.owoxbi_sessions_20190314`
#standardSQL Select CAST (order_id as STRING) as order_id, CAST (date as TIMESTAMP) as date from `project_name.dataset_name.owoxbi_sessions_20190314`
如何更改列模式
您可以按照帮助文档中的说明将列模式从 REQUIRED 更改为 NULLABLE。 第二个选项是将数据导出到 Cloud Storage,然后从那里以所有列的正确模式将其返回到 BigQuery。
如何从数据架构中删除列
使用 SELECT * EXCEPT 查询排除一列(或多列),然后将查询结果写入旧表或创建新表。 请求示例:
#standardSQL Select * EXCEPT (order_id) from `project_name.dataset_name.owoxbi_sessions_20190314`
#standardSQL Select * EXCEPT (order_id) from `project_name.dataset_name.owoxbi_sessions_20190314`
此外,还有第二种方法可以更改适用于上述所有任务的架构:导出数据并将其加载到新表中。 要重命名列,您可以将数据从 BigQuery 上传到 Cloud Storage,然后将其从 Cloud Storage 导出到新表中的 BigQuery,或者使用高级参数覆盖旧表中的数据:

您可以在 Google Cloud Platform 帮助文档中了解更改表结构的其他方法。
从/向 Google BigQuery 导出和导入数据
您可以通过界面或 OWOX BI 的特殊插件从 BigQuery 下载数据并将数据上传到 BigQuery,而无需开发人员的帮助。 让我们详细考虑每种方法。
通过 Google BigQuery 界面导入数据
要将必要的信息(例如有关用户和离线订单的数据)上传到存储中,请打开您的数据集,单击创建表,然后选择数据源:Cloud Storage、您的计算机、Google Drive 或 Cloud Bigtable。 指定文件的路径、其格式以及将加载数据的表的名称:

单击创建表后,数据集中将出现一个表。
通过 Google BigQuery 界面导出数据
还可以从 BigQuery 上传处理过的数据——例如,通过系统界面创建报告。 为此,请打开包含数据的所需表,然后单击导出按钮:

该系统将提供两个选项:在 Google Data Studio 中查看数据或将其上传到 Google Cloud Storage。 如果您选择第一个选项,您将立即转到数据洞察,您可以在其中保存报告。
选择导出到 Google Cloud Storage 将打开一个新窗口。 在其中,您需要指定保存数据的位置和格式。
使用来自 OWOX BI 的插件导出和导入数据
免费的 OWOX BI BigQuery Reports 插件可让您快速方便地将数据直接从 Google BigQuery 传输到 Google Sheets,反之亦然。 因此,您无需准备 CSV 文件或使用付费的第三方服务。
例如,假设您想将离线订单数据上传到 BigQuery 以构建 ROPO 报告。 为此,您需要:
- 在浏览器中安装 BigQuery Reports 插件。
- 在 Google 表格中打开您的数据文件,然后在选项卡Add-ons中,选择OWOX BI BigQuery Reports → Upload data to BigQuery。
- 在打开的窗口中,在 BigQuery 中选择您的项目和数据集,然后输入所需的表名称。 此外,选择要加载其值的字段。 默认情况下,所有字段的类型都是 STRING,但我们建议根据上下文选择数据类型(例如,对于具有数字标识符的字段,选择 INTEGER;对于价格,选择 FLOAT):

- 点击开始上传按钮,您的数据将被加载到 Google BigQuery
您还可以使用此插件将数据从 BigQuery 导出到 Google 表格 - 例如,将数据可视化或与无权访问 BigQuery 的同事共享。 为了这:
- 打开谷歌表格。 在Add-ons选项卡中,选择OWOX BI BigQuery Reports → Add a new report:

- 然后在 Google BigQuery 中输入您的项目并选择添加新查询。
- 在新窗口中,插入您的 SQL 查询。 这可能是将数据从表上传到 BigQuery 的查询,也可能是提取和计算必要数据的查询。
- 重命名查询,以便通过单击“保存并运行”按钮轻松查找和启动它。

要定期将数据从 BigQuery 上传到 Google 表格,您可以启用计划的数据更新:
- 在Add-ons选项卡中,选择OWOX BI BigQuery Reports → Schedule report :

- 在打开的窗口中,设置报告更新的时间和频率,然后点击保存:

为什么要在 Google BigQuery 中收集数据?
如果您还没有体会到 Google BigQuery 云存储的好处,我们建议您尝试一下。 在 OWOX BI 的帮助下,您可以将来自您的网站、广告来源和内部 CRM 系统的数据合并到 BigQuery 中,以便:
- 设置端到端分析并找出营销的真正回报,同时考虑线下订单、退货以及购买途中的所有用户步骤;
- 使用任何参数和指标创建完整的非抽样数据报告;
- 使用群组分析评估客户获取渠道;
- 了解您的在线广告如何影响线下销售;
- 降低广告费用的份额,延长客户的生命周期,整体提升您客户群的LTV;
- 根据客户的活动对客户进行细分,并与他们进行个性化的交流。
OWOX BI 有一个免费试用期,在此期间您可以试用该服务的所有功能。