Amazon Athena

Looker 支持与 Amazon Athena 建立连接,这是一种交互式查询服务,可让您使用标准 SQL 轻松分析 Amazon S3 中的数据。Amazon Athena 采用无服务器架构,没有需要管理的基础架构。您只需为运行的查询付费。

加密网络流量

最佳实践是对 Looker 应用和数据库之间的网络流量进行加密。考虑启用安全的数据库访问文档页面中介绍的某个选项。

配置 Amazon Athena 连接

本页面介绍了如何将 Looker 连接到 Amazon Athena 实例。

  1. 确保您具备以下各项:

    • 一对 Amazon AWS 访问密钥。
    • S3 存储桶,其中包含您要使用 Amazon Athena 在 Looker 中查询的数据。Amazon AWS 访问密钥必须具有此存储桶的读写权限。

      Amazon Athena 必须具备角色或权限集以及防火墙规则的访问权限,才能访问此 S3 存储桶。请勿向 Looker IP 的 S3 存储桶添加安全规则,因为这可能会无意中阻止 Amazon Athena 访问 S3 存储桶。(对于除 Amazon Athena 之外的其他方言,用户可能希望使用 IP 许可名单限制对网络层中数据的访问,如启用安全的数据库访问文档页面中所述。)

    • 了解 Amazon Athena 实例数据所在的位置。您可以在 Amazon 控制台的右上角找到区域名称。

  2. 在 Looker 的管理部分中,选择连接,然后点击添加连接

  3. 填写连接详情:

    • 名称:指定连接的名称。这是您在 LookML 项目中引用连接的方式。
    • 方言:选择 Amazon Athena
    • 主机端口:按照关于 JDBC 网址格式的 Athena 文档中的说明指定主机和端口的名称。主机应该是有效的 Amazon 端点(如 athena.eu-west-1.amazonaws.com),并且端口应保持为 443。您可以在此 AWS 一般参考页面中找到支持 Athena 的端点的最新列表。
    • 数据库:指定要建模的默认数据库。也可以访问其他数据库,但 Looker 会将此数据库视为默认数据库。
    • 用户名:指定 AWS 访问密钥 ID。
    • Password:指定 AWS 私有访问密钥。
    • 启用 PDT:使用此切换开关可启用永久性派生表 (PDT)。启用 PDT 会显示额外的 PDT 字段和连接的 PDT 替换部分。
    • 临时数据库:在 S3 存储桶中指定您希望 Looker 在其中写入 PDT 的输出目录的名称。必须在其他 JDBC 参数字段中指定输出目录的完整路径;请参阅本页面中的为查询结果输出和 PDT 指定 S3 存储桶部分。
    • PDT 构建器连接数上限:指定此连接上可能的并发 PDT 构建数。如果设置得过高,可能会对查询时间产生不利影响。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
    • 其他 JDBC 参数:为连接指定其他参数:
      • s3_staging_dir 参数是 Looker 应该用于查询结果输出和 PDT 的 S3 存储桶;请参阅本页面中的为查询结果输出和 PDT 指定 S3 存储桶部分。
      • 用于流式传输结果的标志。如果您的 Athena 用户附加了 athena:GetQueryResultsStream 政策,则可以在额外 JDBC 参数的末尾添加 ;UseResultsetStreaming=1,以显著提升大型结果集提取的性能。此参数默认设置为 0
      • (可选)要添加到 JDBC 连接字符串的其他参数。
    • SSL:忽略;默认情况下,与 AWS API 的所有连接都将被加密。
    • 每个节点的连接数上限:默认情况下,此设置为 5。如果 Looker 是针对 Athena 运行的主查询引擎,则最多可以将此值增加到 20。如需详细了解服务限制,请参阅 Athena 服务限制文档。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
    • 连接池超时:指定连接池超时。默认情况下,超时设置为 120 秒。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
    • SQL Runner 预缓存:如果您希望 SQL Runner 仅在选择表时加载表信息,请取消选中此选项。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
    • Database Time Zone:指定数据库中使用的时区。如果您不想进行时区转换,请将此字段留空。如需了解详情,请参阅使用时区设置文档页面。

如需验证连接是否成功,请点击 Test。如需了解问题排查信息,请参阅测试数据库连接文档页面。

如需保存这些设置,请点击连接

为查询结果输出和 PDT 指定 S3 存储桶

使用连接页面的其他 JDBC 参数字段配置 Looker 将用于存储查询结果输出的 S3 存储桶的路径,并指定 S3 存储桶中您想让 Looker 写入 PDT 的输出目录的名称。请使用 s3_staging_dir 参数指定此信息。

s3_staging_dir JDBC 参数是配置 Amazon Athena S3OutputLocation 属性的另一种方式,这是 Athena JDBC 连接所必需的。如需了解详情以及所有可用 JDBC 驱动程序选项的列表,请参阅关于 JDBC 驱动程序选项的 Athena 文档

其他 JDBC 参数字段中,使用以下格式指定 s3_staging_dir 参数:

`s3_staging_dir=s3://<s3-bucket>/<output-path>`

其中:

  • <s3-bucket> 是 S3 存储桶的名称。
  • <output-path> 是 Looker 将向其中写入查询结果输出的路径。

AWS 访问密钥对必须具有 <s3-bucket> 目录的写入权限。

如需配置 Looker 将写入 PDT 的目录,请在临时数据库字段中输入上述 S3 存储桶中的目录路径。 例如,如果您希望 Looker 将 PDT 写入 s3://<s3-bucket>/looker_scratch,请在临时数据库字段中输入以下内容:

`looker_scratch`

请仅输入目录路径。Looker 从您在其他 JDBC 参数字段中输入的 s3_staging_dir 参数获取 S3 存储桶名称。

S3 存储桶注意事项

建议您配置 Amazon S3 对象生命周期,以定期清除指定 S3 存储桶中不需要的文件。原因如下:

  • Athena 会将每个查询的查询结果存储在 S3 存储桶中。请参阅 Athena Querying
  • 如果您启用了 PDT,则构建 PDT 时,有关所创建表的元数据会存储在 S3 存储桶中。

资源

调试

Amazon 提供了用于调试连接的 LogLevelLogPath JDBC 驱动程序选项。如需使用它们,请将 ;LogLevel=DEBUG;LogPath=/tmp/athena_debug.log 添加到其他 JDBC 参数字段的末尾,然后再次测试连接。

如果 Looker 托管了实例,则 Looker 支持团队或您的分析师需要检索此文件以继续调试。

功能支持

为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。

从 Looker 24.8 开始,Amazon Athena 支持以下功能:

特征 是否支持?
支持级别
受支持
Looker (Google Cloud Core)
对称聚合
派生表
永久性 SQL 派生表
永久性原生派生表
稳定版视图
查询终止
基于 SQL 的数据透视
时区
SSL
小计
JDBC 其他参数
区分大小写
位置类型
列表类型
百分位
非重复百分位
SQL Runner 显示进程
SQL Runner 描述表
SQL Runner 显示索引
SQL Runner 优选 10
SQL 运行程序数量
SQL 说明
OAuth 凭据
上下文注释
连接池
HLL 素描
总体认知度
递增 PDT
毫秒
微秒
具体化视图
近似计数不重复

后续步骤

完成数据库连接后,请配置身份验证选项