亚马逊 Athena 谷歌连接器 BigQuery - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 Athena 谷歌连接器 BigQuery

谷歌的亚马逊 Athena 连接器使BigQuery亚马逊 Athena 能够对你的谷歌数据运行 SQL 查询。 BigQuery

先决条件

限制

  • Lambda 函数的最大超时值为 15 分钟。每次拆分都会执行查询, BigQuery 并且必须有足够的时间来存储结果以便 Athena 读取。如果 Lambda 函数超时,查询将失败。

  • 谷歌区 BigQuery 分大小写。连接器尝试更正数据集名称和表名的大小写,但不对项目 ID 进行任何大小写更正。这很有必要,因为 Athena 所有元数据均采用小写形式。这些更正给Google带来了许多额外的电话 BigQuery。

  • 不支持 Binary 数据类型。

  • 由于 Google 并 BigQuery 发和配额限制,连接器可能会遇到 Google 配额限制问题。为避免这些问题,请尽可能多地向 Google BigQuery 施加限制。有关 BigQuery配额的信息,请参阅 Google BigQuery 文档中的配额和限制

参数

使用本节中的 Lambda 环境变量来配置 Google BigQuery 连接器。

  • spill_bucket - 为超出 Lambda 函数限制的数据指定 Amazon S3 存储桶。

  • spill_prefix -(可选)默认为指定 spill_bucket(称为 athena-federation-spill)中的子文件夹。我们建议您在此位置配置 Amazon S3 存储生命周期,以删除早于预定天数或小时数的溢出内容。

  • spill_put_request_headers —(可选)用于溢出的 Amazon S3 putObject 请求的请求标头和值的 JSON 编码映射(例如 {"x-amz-server-side-encryption" : "AES256"})。有关其他可能的标题,请参阅PutObject亚马逊简单存储服务 API 参考》。

  • kms_key_id -(可选)默认情况下,将使用经过 AES-GCM 身份验证的加密模式和随机生成的密钥对溢出到 Amazon S3 的任何数据进行加密。要让您的 Lambda 函数使用 KMS 生成的更强的加密密钥(如 a7e63k4b-8loc-40db-a2a1-4d0en2cd8331),您可以指定 KMS 密钥 ID。

  • disable_spill_encryption -(可选)当设置为 True 时,将禁用溢出加密。默认值为 False,此时将使用 AES-GCM 对溢出到 S3 的数据使用进行加密 - 使用随机生成的密钥,或者使用 KMS 生成密钥。禁用溢出加密可以提高性能,尤其是当您的溢出位置使用服务器端加密时。

  • gcp_project_id - 项目 ID(不是项目名称),包含连接器应从中读取的数据集(例如 semiotic-primer-1234567)。

  • s@@ ecret_manager_gcp_creds_name — 其中包含你 BigQuery 的 JSON 格式凭据的密钥的名称(例如 Amazon Secrets Manager ,)。GoogleCloudPlatformCredentials

  • big_query_endpoint —(可选)私有端点的网址。 BigQuery 当您想通过私有终端节点进行访问时 BigQuery ,请使用此参数。

拆分和视图

由于 BigQuery 连接器使用 BigQuery Storage Read API 来查询表,而 BigQuery Storage API 不支持视图,因此连接器使用具有单一拆分视图的 BigQuery 客户端。

Performance

要查询表, BigQuery 连接器使用 Storage Read API,它使用基于 RPC 的协议,可快速访问 BigQuery托管 BigQuery 存储。有关 BigQuery 存储读取 API 的更多信息,请参阅 Google Cloud 文档中的使用 BigQuery 存储读取 API 读取表数据

选择列的子集可以显著减少查询运行时及扫描的数据。随着并发增加,连接器容易出现查询失败,并且通常是慢速连接器。

Athena BigQuery Google 连接器执行谓词下推以减少查询扫描的数据。 LIMIT将子ORDER BY句、子句、简单谓词和复杂表达式向下推送到连接器,以减少扫描的数据量并缩短查询执行的运行时间。

LIMIT 子句

LIMIT N 语句用于减少查询扫描的数据量。LIMIT N 下推时,连接器仅向 Athena 返回 N 行。

前 N 个查询

N 个查询用于指定结果集的顺序以及返回的行数限值。您可以使用此类查询确定数据集的前 N 个最大值或前 N 个最小值。前 N 个查询下推时,连接器仅向 Athena 返回 N 个已排序行。

Predicates

谓词是 SQL 查询的 WHERE 子句中的表达式,其评估结果为布尔值并根据多个条件筛选行。Athena BigQuery Google 连接器可以组合这些表达式并将其直接推送到 BigQuery Google,以增强功能并减少扫描的数据量。

以下 Athena BigQuery Google 连接器运算符支持谓词下推:

  • 布尔值:AND、OR、NOT

  • 相等:EQUAL、NOT_EQUAL、LESS_THAN、LESS_THAN_OR_EQUAL、GREATER_THAN、GREATER_THAN_OR_EQUAL、IS_DISTINCT_FROM、NULL_IF、IS_NULL

  • 算术:ADD、SUBTRACT、MULTIPLY、DIVIDE、MODULUS、NEGATE

  • 其他:LIKE_PATTERN、IN

组合下推示例

要增强查询功能,组合下推类型,如以下示例所示:

SELECT * FROM my_table WHERE col_a > 10 AND ((col_a + col_b) > (col_c % col_d)) AND (col_e IN ('val1', 'val2', 'val3') OR col_f LIKE '%pattern%') ORDER BY col_a DESC LIMIT 10;

许可证信息

亚马逊 Athena BigQuery Google 连接器项目根据 Apache-2.0 许可获得许可。

使用此连接器即表示您确认包含第三方组件,其列表可在该连接器的 pom.xml 文件中找到,并同意 GitHub .com 上的 LICENSE.txt 文件中提供的相应第三方许可中的条款。

另请参阅

有关此连接器的更多信息,请访问 GitHub .com 上的相应网站