📌  相关文章
📜  Google Cloud Platform – 在 BigQuery 中处理外部数据

📅  最后修改于: 2022-05-13 01:57:03.571000             🧑  作者: Mango

Google Cloud Platform – 在 BigQuery 中处理外部数据

在 BigQuery 中,还可以查询存储在 BigQuery 外部或外部的数据。在本文中,我们将深入研究这些外部数据源。可以将您的数据留在任何地方并使用 BigQuery 作为您的查询引擎。这些源称为外部或联合数据源。目前,驻留在 Google Drive、Cloud Storage、Cloud SQL 和 Bigtable 中的数据支持此功能。

在我们仔细研究如何查询这些数据源之前,让我们讨论一下您在使用外部数据源时会遇到的一些显着差异:

  • 首先要注意的是,外部数据源的查询性能可能不等于存储在 BigQuery 中的数据的查询性能。因此,如果在您的情况下查询速度是一个优先事项,您可能希望将数据直接加载到 BigQuery 中。
  • 其次,在查询外部源时,BigQuery 无法预测要处理的数据量。因此,您只有在运行查询后才会知道。
  • 最后,结果不会像查询 BigQuery 中存储的数据时那样缓存。在基础数据未更改时,缓存是一种节省成本并提高重复查询性能的好方法。

总体而言,此功能最适合短期访问频率较低的数据。例如,您可以使用外部数据源来支持一次加载和转换数据。在此工作流中,您查询外部源,将数据转换为查询的一部分,然后将结果作为永久表写入 BigQuery 存储中。

另一个用例是将少量频繁更改的数据与 BigQuery 中存储的数据连接起来。通过将频繁变化的数据保留为外部数据源,无需在每次更新时都将其重新加载到 BigQuery 中。此处的一个示例是查询 Google 表格中的数据。即使工作表是实时编辑的,您也可以对数据运行查询,结果将反映实时的最新信息。

那么现在让我们看看如何在 BigQuery 中设置外部数据源。在此示例中,我们将对位于云存储桶中的 JSON 文件集合运行查询。这些文件包含 2014 年以来美国所有国内航班的飞行性能数据。

第 1 步:从控制台开始,创建一个新的数据集。在左侧导航中突出显示您的项目名称,然后单击创建数据集。将数据集命名为flight_performance ,选择美国作为位置,然后单击创建数据集。

第 2 步:现在突出显示您的新数据集,然后单击创建表。

在源下,选择 Google Cloud Storage。

注意:如果您的数据位于 Google Drive 中,例如 Google Sheet 或 Bigtable 中,您可以在下拉列表中选择这些备用来源。

飞行性能数据位于公共存储桶中,任何 GCP 用户都可以使用 URI 地址访问该存储桶。将 URI 粘贴到 GCS 存储桶字段中。您会看到 URI字符有一个通配符,它指示 BigQuery 包含所有符合特定命名约定的 JSON 文件。接下来,在目标下,确保将表类型设置为外部。将表命名为 2014。在这种情况下,您可以自动检测架构。最后,单击创建表。

由于不涉及数据摄取,您将看到该表立即填充在数据集下。查看表详细信息,您可以在其中看到刚刚设置的外部配置和 0 字节的表大小,因为您的外部表不使用任何 BigQuery 存储。

现在您可以运行引用外部表的查询。在我们的查询中,我们选择承运人的所有航班帐户。正如我们之前所讨论的,在查询完成之前,您无法看到处理的数据量。在此示例中,您为外部数据源创建了一个永久对象。但是,您也可以使用临时表查询外部源,这对于一次性即席查询或 ETL 流程很有用。