大家好,欢迎来到IT知识分享网。
BigQuery 存储概览
本页面介绍了 BigQuery 的存储组件。
BigQuery 存储空间针对针对大型数据集运行分析查询进行了优化。它还支持高吞吐量流式提取和高吞吐量读取。了解 BigQuery 存储可以帮助您优化工作负载。
概览
BigQuery 架构的一个关键功能是存储和计算相分离。这样,BigQuery 就可以根据需要独立扩缩存储和计算资源。
图 1.BigQuery 架构。
在运行查询时,查询引擎会将工作并行分配到多个工作器,这些工作器会扫描存储空间中的相关表、处理查询,然后收集结果。BigQuery 使用 PB 级网络在内存中完全执行查询,以确保数据极快地移动到工作器节点。
以下是 BigQuery 存储空间的一些主要功能:
- 托管式。BigQuery 存储是一项全代管式服务。您无需预配存储资源或预留存储单元。当您将数据加载到系统中时,BigQuery 会自动为您分配存储空间。您只需为所用的存储空间付费。BigQuery 价格模式针对计算和存储单独收费。如需详细了解价格,请参阅 BigQuery 价格。
- 耐用。BigQuery 存储旨在实现 99.%(11 个 9)的年度耐用性。BigQuery 会跨多个可用性可用区复制数据,以防止因机器级故障或可用区故障导致数据而丢失。如需了解详情,请参阅“可靠性:灾难恢复规划”。
- 已加密。BigQuery 会在数据写入磁盘之前自动加密所有数据。您可以提供自己的加密密钥,也可以让 Google 管理加密密钥。如需了解详情,请参阅静态加密。
- 高效。BigQuery 存储空间使用针对分析工作负载进行优化的高效编码格式。如需详细了解 BigQuery 的存储格式,请参阅博文 Inside Capacitor,BigQuery 的下一代列式存储格式。
表数据
您在 BigQuery 中存储的大多数数据都是表数据。表数据包括标准表、表克隆、表快照和具体化视图。您需要为用于这些资源的存储空间付费。
- 标准表包含结构化数据。每个表都有一个架构,架构中的每一列都具有一个数据类型。BigQuery 以列式格式存储数据。请参阅本文档中的存储布局。
- 表克隆是标准表的轻量级可写副本。BigQuery 仅存储表克隆与其基表之间的增量。
- 表快照是表的时间点副本。表快照是只读的,但您可以从表快照恢复表。BigQuery 仅存储表快照与其基表之间的增量。
- 具体化视图是预计算视图,可定期缓存视图查询结果。缓存的结果存储在 BigQuery 存储空间中。
此外,缓存的查询结果会存储为临时表。您无需为存储在临时表中的缓存查询结果付费。
外部表是一种特殊类型的表,其中数据位于 BigQuery 外部的数据存储区(例如 Cloud Storage)中。外部表具有表架构(与标准表类似),但表定义指向外部数据存储区。在这种情况下,只有表元数据会保留在 BigQuery 存储空间中。BigQuery 不对外部表存储收费,但外部数据存储可能会针对存储收费。
BigQuery 将表和其他资源整理到逻辑容器中,称为数据集。如何对 BigQuery 资源进行分组会影响 BigQuery 工作负载的权限、配额、结算和其他方面。如需了解详情和最佳做法,请参阅整理 BigQuery 资源。
元数据
BigQuery 存储空间还包含有关 BigQuery 资源的元数据。您无需为元数据存储付费。
当您在 BigQuery 中创建任何永久性实体(例如表、视图或用户定义的函数 (UDF))时,BigQuery 会存储有关该实体的元数据。即使对于不包含任何表数据的资源(例如 UDF 和逻辑视图),也是如此。
元数据包括表架构、分区和聚簇规范、表过期时间等信息。此类元数据对用户可见,可在创建资源时进行配置。此外,BigQuery 还会存储其在内部用于优化查询的元数据。此元数据不直接对用户可见。
存储布局
许多传统的数据库系统都采用面向行的格式存储数据,这意味着行会一起存储,并且每行中的字段在磁盘上按顺序显示。面向行的数据库可以高效地查找各个记录。但是,它们对许多记录执行分析函数效率较低,因为系统在访问记录时必须读取每个字段。
图 2.面向行的格式。
BigQuery 以列式格式存储表数据,这意味着它会分别存储每一列。在面向整个数据库扫描单个列时,面向列的数据库特别高效。
面向列的数据库针对针对大量记录聚合数据的分析工作负载进行了优化。通常,分析查询只需要从表中读取几列。例如,如果要计算数百万行的列数之和,BigQuery 可以读取该列数据,而无需读取每行的每个字段。
面向列的数据库的另一个优点是,列中的数据通常具有比跨行数据更多的冗余。此特性通过使用运行长度编码等技术来提高数据压缩性能,从而提高读取性能。
图 3.面向列的格式。
优化存储空间
优化 BigQuery 存储可以提高查询性能并控制费用。如需查看表存储元数据,请查询以下 INFORMATION_SCHEMA
视图:
- INFORMATION_SCHEMA.TABLE_STORAGE
- INFORMATION_SCHEMA.TABLE_STORAGE_BY_ORGANIZATION
如需了解如何优化存储,请参阅优化 BigQuery 存储。
加载数据
您可以通过多种基本模式将数据提取到 BigQuery 中。
- 批量加载:通过单个批量操作将源数据加载到 BigQuery 表中。这可以是一次性操作,也可以按时间表自动执行。批量加载操作可以创建新表或将数据附加到现有表中。
- 流式:持续流式插入较小的数据,以便数据可以近乎实时地查询。
- 生成的数据:使用 SQL 语句将行插入现有表中或将查询结果写入表中。
如需详细了解何时选择每种提取方法,请参阅加载数据简介。如需了解价格信息,请参阅数据提取价格。
从 BigQuery 存储空间读取数据
大多数情况下,您将数据存储在 BigQuery 中,以便对该数据运行分析查询。但是,有时您可能希望直接从表中读取记录。BigQuery 提供了多种读取表数据的方法:
- BigQuery API:使用 tabledata.list 方法进行同步分页访问。数据以串行方式读取,每次调用一页。 如需了解详情,请参阅浏览表数据。
- BigQuery Storage API:这是一种流式高吞吐量访问,此外还支持服务器端列投影和过滤。通过将读取操作细分为多个不相交的流,可以在多个读取器之间并行执行读取操作。
- 导出:使用提取作业或 EXPORT DATA 以高吞吐量异步复制到 Google Cloud Storage。如果您需要复制 Cloud Storage 中的数据,请使用提取作业或
EXPORT DATA
语句导出数据。 - 复制:在 BigQuery 中异步复制数据集。当来源和目标位置相同时,复制将以相应的逻辑方式完成。
如需了解价格信息,请参阅数据提取价格。
根据应用要求,您可以读取表数据:
- 读取和复制:如果您需要 Cloud Storage 中的静态副本,请使用提取作业或
EXPORT DATA
语句导出数据。如果您只想读取数据,请使用 BigQuery Storage API。如果要在 BigQuery 中创建副本,请使用复制作业。 - 规模:BigQuery API 是效率最低的方法,不应该用于大容量读取。如果您需要每天导出 50 TB 以上的数据,请使用
EXPORT DATA
语句或 BigQuery Storage API。 - 返回第一行的时间:BigQuery API 是返回第一行的最快方法,但应该仅用于读取少量数据。BigQuery Storage API 返回第一行的速度较慢,但吞吐量要高得多。导出和复制必须在读取任何行之前完成,因此对于这些类型的作业,第一行数据的读取时间可能为几分钟。
删除
删除表时,数据至少会在时间旅行窗口内保留。之后,系统会按照 Google Cloud 删除时间轴从磁盘中清理数据。某些删除操作(如 DROP COLUMN 语句)是仅限元数据的操作。在这种情况下,下次修改受影响的行时,存储空间会释放。如果不修改表,则无法保证释放存储空间。如需了解详情,请参阅 Google Cloud 上的数据删除。
后续步骤
- 了解使用表。
- 了解如何优化存储。
- 了解如何在 BigQuery 中查询数据。
- 了解数据安全和治理。
BigQuery 分析概览
本文档介绍了 BigQuery 如何处理查询,并简要介绍了几种可用于数据分析的功能。
BigQuery 经过优化,可以对大型数据集运行分析查询,包括在数秒内处理 TB 级数据,在几分钟内处理 PB 级数据。了解其功能及其处理查询的方式可以帮助您最大程度实现数据分析投资的价值。
如需直接在 Google Cloud 控制台中浏览 BigQuery 的数据分析功能,请点击浏览。
了解看看
分析工作流
BigQuery 支持多种数据分析工作流:
- 即席分析。BigQuery 使用 GoogleSQL(BigQuery 中的 SQL 方言)来支持临时分析。您可以在 Google Cloud 控制台中或通过与 BigQuery 集成的第三方工具运行查询。
- 地理空间分析。BigQuery 使用地理数据类型和 GoogleSQL 地理函数来分析和直观呈现地理空间数据。如需了解这些数据类型和函数,请参阅地理空间分析简介。
- 机器学习。借助 BigQuery ML,您可以使用 GoogleSQL 查询在 BigQuery 中创建和执行机器学习模型。
- 商业智能。BigQuery BI Engine 是一项高速内存中分析服务,可让您构建丰富的交互式信息中心和报告,而不会影响性能、可扩缩性、安全性或数据新鲜度。
查询
BigQuery 中的主要分析单元是 SQL 查询。BigQuery 有两种 SQL 方言:GoogleSQL 和旧版 SQL。GoogleSQL 是首选方言。它支持 SQL:2011,并且包含支持地理空间分析或机器学习的扩展程序。
以下部分介绍了 BigQuery 如何支持和运行数据查询。
数据源
借助 BigQuery,您可以查询以下类型的数据源:
- 存储在 BigQuery 中的数据。您可以将数据加载到 BigQuery 中进行分析。您还可以使用数据操纵语言 (DML) 语句或通过将查询结果写入表中来生成数据。您可以查询存储在单区域或多区域位置中的数据,但无法对多个位置运行查询,即使一个是单区域位置,另一个是包含该单区域位置的多区域位置也是如此。如需了解详情,请参阅位置、预留和作业。
- 外部数据。您可以查询各种外部数据源,例如其他 Google Cloud 存储服务(如 Cloud Storage)或数据库服务(如 Spanner 或 Cloud SQL)。如需了解如何设置与外部数据源的连接,请参阅外部数据源简介
- 多云端数据。您可以查询存储在其他公有云(如 AWS 或 Azure)中的数据。如需了解如何设置与 Amazon S3 或 Azure blob 存储空间的连接,请阅读 BigQuery Omni 简介。
- 公共数据集。如果您没有自己的数据,则可以分析公共数据集市场中提供的任何数据集。
查询作业
作业是 BigQuery 代表您执行的操作,包括加载数据、导出数据、查询数据或复制数据。
当您使用 Google Cloud 控制台或 bq 工具执行其中一个作业时,系统会自动创建、安排并运行作业资源。您还可以通过编程方式创建加载作业、导出作业、查询作业或复制作业。以编程方式创建作业后,BigQuery 会为您安排并运行此作业。
由于作业可能需要很长时间才能完成,它们会异步运行,其状态可以轮询。用时较短的操作(例如列出资源或获取元数据)不由作业资源管理。
查询类型
将数据加载到 BigQuery 后,您可以使用以下查询作业类型之一查询数据:
- 交互式查询作业。默认情况下,BigQuery 会尽快运行交互式(按需)查询作业。
- 批量查询作业。使用这些作业时,BigQuery 会代表您将每个批量查询排队,然后在有空闲资源时启动查询,通常在几分钟之内。
您可以使用以下方法运行交互式查询作业或批量查询作业:
- 在 Google Cloud 控制台中编写和运行查询。
- 在 bq 命令行工具中运行
bq query
命令。 - 以编程方式调用 BigQuery REST API 中的 jobs.query 或 jobs.insert 方法。
- 使用 BigQuery 客户端库。
保存的查询和共享的查询
使用 BigQuery,您可以保存查询以及与他人共享查询。
保存的查询可以不公开(仅对您可见)、在项目级层共享(对具体主账号可见)或公开(任何人都可以查看)。如需了解详情,请参阅使用已保存的查询。
BigQuery 处理查询的方式
BigQuery 运行查询时会发生多个进程:
- 执行树。在运行查询时,BigQuery 会生成执行树,以将查询分为几个阶段。这些阶段包含可以并行运行的步骤。
- Shuffle 层。各阶段使用快速分布式 Shuffle 层相互通信,Shuffle 层用于存储由阶段工作器生成的中间数据。Shuffle 层尽可能利用 PB 级网络和 RAM 等技术来将数据快速移动到工作器节点。
- 查询计划。当 BigQuery 拥有运行查询所需的所有信息时,会生成查询计划。您可以在 Google Cloud 控制台中查看此方案,并使用它来排查或优化查询性能。
- 查询监控和动态计划。除了执行查询计划本身工作的工作器之外,其他工作器还会监控并指导整个系统的整体工作进度。随着查询的进行,BigQuery 可能会动态调整查询计划,以适应不同阶段的结果。
- 查询结果。查询完成后,BigQuery 会将结果写入永久性存储空间并返回给用户。这种设计可让 BigQuery 在下次运行查询时提供缓存的结果。
查询并发和性能
对相同数据反复运行的查询的性能可能会有几毫秒的差异。由于 BigQuery 环境的共享特性,或者由于 BigQuery 在查询运行时动态调整查询计划,因此可能会出现性能差异。对于有许多查询并发运行的典型忙碌系统,BigQuery 会使用多个进程来消除查询性能差异:
- BigQuery 并行运行许多查询,因此查询很少需要排队。
在忙碌的系统中,排队是导致性能不稳定的主要原因,因为无法确定查询的排队时长。某个查询的排队时长可能更多地取决于正在运行的其他查询或队列中的其他查询,而不是该查询本身的质量。
- 查询开始和完成时,BigQuery 会在新查询和正在运行的查询之间公平地重新分配资源。此过程可确保查询性能不取决于查询提交顺序,而是取决于在指定时间运行的查询数量。
查询优化
查询完成后,您可以在 Google Cloud 控制台中查看查询计划。还可使用 INFORMATION_SCHEMA.JOBS* 视图或 jobs.get REST API 方法请求执行详细信息。
查询计划包括有关查询阶段和步骤的详细信息。这些详细信息可帮助您确定改善查询性能的方法。例如,如果您发现某个阶段写入的输出比其他阶段多得多,则可能意味着您需要在查询的早期阶段进行过滤。
如需详细了解查询计划和查询优化,请参阅以下资源:
- 如需详细了解查询计划并通过示例了解计划信息如何帮助您改善查询性能,请参阅查询计划和时间轴。
- 如需详细了解一般情况下的查询优化,请参阅优化查询性能简介。
查询监控
监控和日志记录对于在云端运行可靠应用至关重要。BigQuery 工作负载也不例外,尤其是在工作负载量大或工作负载是任务关键型工作负载的情况下。BigQuery 提供各种指标、日志和元数据视图,可帮助您监控 BigQuery 使用情况。
如需了解详情,请参阅以下资源:
- 如需了解 BigQuery 中的监控选项,请参阅 BigQuery 监控简介。
- 如需了解审核日志以及如何分析查询行为,请参阅 BigQuery 审核日志。
查询价格
BigQuery 为分析提供了两种价格模式:
- 按需价格。您需要为查询扫描的数据付费。每个项目都有固定的查询处理容量,您的费用取决于处理的字节数。
- 基于容量的价格。您购买专用的查询处理容量。
如需了解这两种价格模式,并详细了解如何进行基于容量的价格的预留,请参阅预留简介。
配额和查询费用控制
BigQuery 会对正在运行的查询强制执行项目级层配额。如需了解查询配额,请参阅配额和限制。
BigQuery 提供了多种查询费用控制选项,包括自定义配额和结算提醒。如需了解详情,请参阅创建自定义费用控制条件。
数据分析功能
BigQuery 支持描述性分析和预测分析。如需直接查询数据以回答一些统计问题,您可以使用 Google Cloud 控制台。如需直观地探索数据(例如趋势和异常值),您可以使用与 BigQuery 集成的 Tableau 或 Looker 等工具。
BigQuery Studio
借助 BigQuery Studio,您可以使用以下功能在 BigQuery 中发现、分析数据并对其运行推断:
- 强大的 SQL 编辑器,可提供代码补全、查询验证和估计处理的字节数等功能。
- 使用 Colab Enterprise 构建的嵌入式 Python 笔记本。Notebooks 提供一键式 Python 开发运行时以及对 BigQuery DataFrame 的内置支持。
- PySpark 编辑器,可让您为 Apache Spark 创建 Python 存储过程。
- 笔记本和已保存的查询等代码资源的资源管理和版本历史记录,基于 Dataform 构建。
- SQL 编辑器和笔记本中的辅助式代码开发,基于 Gemini 生成式 AI(预览版)构建。
- Dataplex 功能,用于数据发现,以及数据分析和数据质量扫描。
- 能够按用户或项目查看作业历史记录。
- 能够通过连接到 Looker 和 Google 表格等其他工具分析已保存的查询结果,以及导出已保存的查询结果以在其他应用中使用。
如需使用 BigQuery Studio,请按照启用 BigQuery Studio 进行资产管理中的说明操作。此过程会启用以下 API:
- Compute Engine API:在项目中执行 Python 函数时需要。
- Dataform API:存储代码资产(例如笔记本文件)时需要。
- Vertex AI API:在 BigQuery 中执行 Colab Enterprise Python 笔记本需要。
BigQuery ML
借助 BigQuery ML,您可以在 BigQuery 中使用 SQL 来执行机器学习 (ML) 和预测分析。如需了解详情,请参阅 BigQuery ML 简介。
分析工具集成
除了在 BigQuery 中运行查询之外,您还可以使用与 BigQuery 集成的各种分析工具和商业智能工具来分析数据,例如:
- Looker。Looker 是一个提供商业智能、数据应用和嵌入式分析的企业级平台。Looker 平台可与许多数据存储区(包括 BigQuery)搭配使用。如需了解如何将 Looker 连接到 BigQuery,请参阅使用 Looker。
- Looker Studio。运行查询后,您可以直接从 Google Cloud 控制台中的 BigQuery 启动 Looker 数据洞察。然后,您可以在 Looker 数据洞察中创建可视化效果并探索查询返回的数据。如需了解 Looker 数据洞察,请参阅 Looker 数据洞察概览。
- 关联工作表。您还可以直接从控制台中的 BigQuery 启动关联工作表。关联工作表会根据您的请求或按照定义的时间表,代表您运行 BigQuery 查询。相应查询结果会保存在您的电子表格中,以用于分析和共享。如需了解关联工作表,请参阅使用关联工作表。
第三方工具集成
多种第三方分析工具可与 BigQuery 配合使用。例如,您可以将 Tableau 连接到 BigQuery 数据,并使用其直观呈现工具分析和共享您的分析。如需详细了解使用第三方工具时的注意事项,请参阅第三方工具集成。
ODBC 和 JDBC 驱动程序可供使用,并可用于将应用与 BigQuery 集成。这些驱动程序旨在帮助用户将 BigQuery 的强大功能与现有的工具和基础架构搭配使用。如需了解最新版本和已知问题,请参阅适用于 BigQuery 的 ODBC 和 JDBC 驱动程序。
诸如 pandas-gbq
之类的 Pandas 库可让您与 Jupyter 笔记本中的 BigQuery 数据进行交互。如需了解此库及其与使用 BigQuery Python 客户端库的比较,请参阅与 pandas-gbq 的比较。
您还可以将 BigQuery 与其他笔记本和分析工具一起使用。如需了解详情,请参阅程序化分析工具。
如需查看 BigQuery 分析和更广泛的技术合作伙伴的完整列表,请参阅 BigQuery 产品页面上的合作伙伴列表。
后续步骤
- 如需查看适用于常见分析使用场景的示例代码和技术参考指南,请参阅智能分析参考模式。
- 如需简要了解支持的 SQL 语句,请参阅 BigQuery 中的 SQL 简介。
- 如需了解在 BigQuery 中查询数据时使用的 GoogleSQL 语法,请参阅 GoogleSQL 中的查询语法。
- 如需了解如何读取查询说明计划,请参阅使用查询计划说明。
- 要了解如何安排定期查询,请参阅安排查询。
BigQuery 管理简介
本文档介绍了 BigQuery 管理任务以及可帮助您完成这些任务的 BigQuery 功能。
BigQuery 管理员通常执行以下类型的任务:
- 管理资源,例如项目、数据集和表。
- 保护资源,以便访问权限仅限于需要它的主账号。
- 管理工作负载,例如作业、查询和计算容量(预留)。
- 监控资源,包括配额、作业和计算使用情况。
- 优化工作负载以获得最佳性能,同时控制费用。
- 对错误消息、结算问题和配额进行问题排查。
本文档简要介绍了 BigQuery 为帮助您执行这些任务而提供的功能。
如需直接在 Google Cloud 控制台中浏览 BigQuery 数据管理功能,请点击浏览。
了解看看
工具
BigQuery 提供了几种可用于管理任务的界面。通常,一个特定任务可以通过多种工具来完成,这使您可以选择最适合的工具。例如,您可以使用 Google Cloud 控制台中的浏览器窗格、bq mk --table
命令或 CREATE TABLE
SQL 语句创建表。
- Google Cloud 控制台。Google Cloud 控制台有多个专门用于 BigQuery 管理的页面。如需了解详情,请参阅使用 Google Cloud 控制台。
- SQL 语句。Google Cloud 控制台中的 BigQuery 页面有一个查询编辑器,您可以在其中使用 DDL 和 DCL 语句执行管理任务。如需了解详情,请参阅数据定义语言 (DDL) 和数据控制语言 (DCL)。
您可以使用存储过程自动执行使用 SQL 语句的管理任务。如需了解详情,请参阅使用存储过程。
bq
命令。借助 bq 命令行工具,您可以使用bq
命令执行许多管理任务。如果您希望使用命令行界面,则可以使用 bq 命令行工具执行 Google Cloud 控制台不支持的任务,在查询或 API 方法中对功能进行编码之前设计其原型。如需了解详情,请参阅使用 bq 命令行工具。
管理资源
BigQuery 资源包括组织、文件夹、项目、数据集和表。本部分介绍如何管理组织的资源。
如需了解 BigQuery 资源层次结构,请参阅组织 BigQuery 资源。具体来说,您可以创建组织资源,以便在组织级层执行一些任务,例如设置访问权限控制。
管理数据集
数据集是表的容器。您可以在数据集中创建表,然后将其作为一个组进行管理。例如,您可以配置数据集的默认表到期时间,该时间将应用于数据集中的所有表,除非您将其替换。您可以通过创建数据集的副本来复制一组表,并且可以控制对数据集级层的表的访问权限。
如需详细了解数据集管理,请参阅以下文档:
- 如需详细了解如何创建、复制、移动和更新数据集,请参阅数据集简介。
- 如需详细了解数据集级层的访问权限控制,请参阅控制对数据集的访问权限和已获授权的数据集。
管理表
在 BigQuery 中,数据存储在表中,您可以在表中查询数据。您可以创建表、将数据从各种类型的源以各种格式加载到表中、根据特定列或按摄取时间对表进行分区、聚簇表、更新表属性和导出表数据。
如需详细了解表管理,请参阅以下文档:
- 如需详细了解如何将数据加载到 BigQuery 表中,请参阅加载表简介。
- 如需详细了解如何管理表和导出表数据,请参阅表简介。
- 如需详细了解分区和聚簇表,请参阅分区表简介和聚簇表简介。
为资源加标签
为了更好地组织管理您的 BigQuery 资源,您可以为数据集、表和视图添加标签。标签是可以附加到资源的键值对。为资源添加标签后,可以根据标签值搜索资源。例如,您可以使用标签,通过添加 dept:sales
、dept:marketing
或 dept:analytics
等标签按部门进行分组。然后,您可以使用标签按部门细分结算费用。
如需了解详情,请参阅标签简介。
获取资源信息
您可以通过查询 INFORMATION_SCHEMA
视图来获取 BigQuery 资源的相关信息。BigQuery 会为每种资源类型提供视图。例如,INFORMATION_SCHEMA.TABLES
视图包含表的相关信息。
以下是您可以通过查询 INFORMATION_SCHEMA
视图获取的一些信息示例:
- 查看表的创建时间。
- 获取表中各列的名称和数据类型。
- 查找在项目中运行的所有作业。
- 获取从基表创建的表快照的列表。
- 对于数据集、表、视图或例程,获取可用于创建资源的 DDL 语句。
- 获取用于创建表的选项(例如,表过期时间)。
- 查找表上的分区和聚簇列。
- 获取项目分配的预留及其槽容量。
如需了解详情,请参阅 BigQuery INFORMATION_SCHEMA 简介。
复制数据
您可能出于各种原因想要创建数据副本,例如防止人为错误,或保留数据以备将来比较。BigQuery 提供了多个从特定时间点复制表数据的选项。
- 时间旅行。您可能需要访问过去一周内某个表的状态;例如,如果数据因人为错误而损坏。BigQuery 会将表的历史数据保留七天。您可以使用时间旅行功能访问表的近期历史数据。
如需了解详情,请参阅使用时间旅行访问历史数据。
- 表快照。如果您希望能够访问过去一周的表状态,请考虑定期创建表快照。表快照是轻量级的只读副本,可让您无限期地保留表的状态。例如,借助表快照,您可以将表的当前数据与年初的数据进行比较,这是使用时间旅行无法实现的。您只需为存储基表与其表快照之间不同的数据而付费。
如需了解详情,请参阅表快照简介。
- 表克隆。 如果要创建表的轻量级可写副本,您可以使用表克隆。您只需为基表与其表克隆之间的不同数据支付存储费用。例如,您可以在测试环境中创建表克隆,以便使用生产数据的副本进行实验而不会影响生产数据,并且无需支付表的完整副本的存储费用。
如需了解详情,请参阅表克隆简介。
跟踪数据沿袭
数据沿袭是 Dataplex 的一项功能,可让您跟踪数据在系统中的移动方式:数据来自何处、传递到何处以及对其应用了哪些转换。如需详细了解数据沿袭如何帮助您跟踪项目中的数据移动,请参阅 Dataplex 中的数据沿袭简介。
保护资源安全
BigQuery 安全基于 Google Cloud Identity and Access Management。借助 BigQuery,您可以在多个级层控制对资源的访问权限,包括对组织、文件夹、项目、数据集、表、表列和表行的访问权限。
如需了解如何控制对 BigQuery 资源的访问权限,请参阅数据安全和治理概览。
管理工作负载
BigQuery 代表您的用户执行许多任务,包括注入、查询和导出数据。每个任务都由 BigQuery 作业执行。本部分介绍如何监控和管理组织的作业。
管理招聘信息
作业是 BigQuery 代表用户加载、导出、查询或复制数据的操作。当用户使用 Google Cloud 控制台、bq 命令行工具、SQL 语句或 API 调用启动其中一项任务时,BigQuery 会自动创建作业来执行任务。
作为 BigQuery 管理员,您可以监控、管理组织作业并对组织作业进行问题排查,以确保组织作业顺畅运行。
如需了解详情,请参阅作业概览。
管理预订
BigQuery 在执行查询时,会使用称为槽的计算单元。BigQuery 会根据运行查询的大小和复杂程度,计算运行每个查询所需的槽数。
BigQuery 有两种价格模式,用于对运行查询的槽收费:
- 按需结算。您的查询使用共享的槽池,您需要为查询处理的字节数付费。
- 基于容量的结算。您需要为版本分配预留或容量承诺,每个版本都有自己的功能集和价位,以便为您提供最佳工作环境。
这些价格模式按项目应用,因此有些项目使用按需结算,有些项目使用基于容量的结算。
使用按需结算模式,在每月分配的免费用量之后,您需要为每个查询处理的字节数付费。吞吐量受预定义槽配额的限制,这些配额在项目中运行的查询之间共享。
借助 BigQuery 版本结算,您可以通过自动扩缩预留以及可选但更便宜的容量承诺为您的组织分配槽。每个版本的槽都有自己的价位,并提供自己的一组功能。如需详细了解 BigQuery 版本及其关联的功能,请参阅 BigQuery 版本简介。
如需详细了解如何管理处理查询的计算容量,请参阅以下文档:
- 对于槽以及按需结算与基于容量的结算之间的权衡,请参阅预留简介。
- 如需了解基于容量的结算的不同选项(月度或年度承诺),请参阅承诺。
- 如需创建基于容量的槽池(称为槽预留),请参阅使用槽预留。
- 如需向特定项目分配槽预留,请参阅使用预留分配。
- 如需估算要分配给工作负载的适当槽数,请参阅估算槽容量要求。
监控资源
Google Cloud 提供了监控和审核资源(包括 BigQuery 资源)的功能。本部分介绍适用于 BigQuery 的 Google Cloud 监控和审核功能。
如需了解详情,请参阅 BigQuery 监控简介。
Cloud Monitoring 信息中心
Cloud Monitoring 提供了一个信息中心,用于监控 BigQuery。使用此信息中心查看 BigQuery 突发事件、数据集、表、项目、查询时间和槽利用率的相关信息。
如需了解详情,请参阅查看 Monitoring 信息中心。
管理图表和提醒
您可以使用 Cloud Monitoring 根据资源、指标和您指定的任何聚合创建自定义图表。
如需了解详情,请参阅信息中心和图表。
您还可以创建提醒政策,以便在已配置的提醒触发时通知您。例如,您可以创建一个提醒,以便在查询的执行时间超过指定的限制时向指定的电子邮件地址发送电子邮件。
如需了解详情,请参阅创建提醒。
监控预留
您可以在 Google Cloud 控制台的容量管理页面上监控槽使用量。您可以查看容量承诺并查看槽预留的分配位置。您还可以使用槽 Estimator(预览版)根据历史性能指标估算组织的容量要求。
如需了解详情,请参阅监控 BigQuery 预留。
配额
Google Cloud 对资源(包括 BigQuery 资源)设定了使用限制,以确保共享资源的公平使用,并保护您免受费用失控的影响。如果需要,您可以使用 Google Cloud 控制台查看具有配额的 BigQuery 资源的使用情况并申请更高配额。
如需了解详情,请参阅 BigQuery 配额和限制。
审核日志
Cloud Audit Logs 维护一条 Google Cloud 事件(包括 BigQuery 事件)记录。您可以使用 Logs Explorer 查询与 BigQuery 作业、数据集、转移作业等相关的日志。日志信息中心会显示有关近期错误的信息,您可以使用基于日志的指标来计算与给定过滤条件匹配的日志条目。
如需了解详情,请参阅 Google Cloud 日志记录文档。
优化工作负载
您可以优化 BigQuery 配置,以控制存储和查询处理费用。
- 如需有关管理 BigQuery 存储费用方面的帮助,请参阅优化 BigQuery 存储。
- 如需有关管理 BigQuery 处理费用方面的帮助,请参阅在 BigQuery 中控制费用。
- 如需有关优化 BigQuery 查询的帮助,请参阅优化查询性能简介。
- 如需了解 BigQuery 费用的一般信息,请参阅 BigQuery 价格和 BigQuery 结算问题。
可靠性指导
本文档介绍 BigQuery 的可靠性,包括对 BigQuery 中的可用性、耐用性、数据一致性、性能一致性和数据恢复的数据分析,以及错误处理注意事项。如需详细了解可靠性和灾难规划,请参阅了解可靠性。
问题排查
除了本文档中介绍的用于监控和管理组织的 BigQuery 系统的功能之外,以下资源还可用于排查可能出现的问题:
- BigQuery 错误消息
- BigQuery 结算问题
- 配额错误问题排查
如果您需要其他帮助,请参阅获取支持。
后续步骤
- 如需查看与 BigQuery 管理相关的各种主题的视频系列,请参阅 BigQuery 管理员参考指南:回顾
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/144728.html