Looker 支持连接到 Amazon Athena,这是一种交互式查询服务,可让您使用标准 SQL 轻松分析 Amazon S3 中的数据。Amazon Athena 是无服务器的,因此您无需管理基础架构。您只需为运行的查询付费。
对网络流量进行加密
最佳做法是对 Looker 应用和数据库之间的网络流量进行加密。不妨考虑启用安全的数据库访问文档页面中介绍的选项之一。
配置 Amazon Athena 连接
本页面介绍了如何将 Looker 连接到 Amazon Athena 实例。
确保您拥有以下设备:
- 一对 Amazon AWS 访问密钥。
包含您希望使用 Amazon Athena 在 Looker 中查询的数据的 S3 存储桶。Amazon AWS 访问密钥必须具有对此存储桶的读写权限。
Amazon Athena 必须通过角色或权限集以及防火墙规则来访问此 S3 存储桶。请勿向 Looker 的 IP 的 S3 存储桶添加安全规则,因为这可能会无意中阻止 Amazon Athena 访问 S3 存储桶。(对于除 Amazon Athena 之外的其他方言,用户可能需要使用 IP 许可名单限制对网络层数据的访问,如启用安全的数据库访问文档页面中所述。)
了解 Amazon Athena 实例数据所在的位置。您可以在 Amazon 控制台的右上角找到区域名称。
在 Looker 的管理部分中,选择连接,然后点击添加连接。
填写连接详细信息:
- 名称:指定连接的名称。这是您在 LookML 项目中引用连接的方式。
- 方言:选择 Amazon Athena。
- Host 和 Port:指定主机名称和端口,如 Athena 文档中关于 JDBC 网址格式的部分所述。主机应该是有效的 Amazon 端点(如
athena.eu-west-1.amazonaws.com
),并且端口应保持为443
。如需查看支持 Athena 的端点的最新列表,请参阅此 AWS 一般参考页面。 - 数据库:指定您要对其进行建模的默认数据库。您可以访问其他数据库,但 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:GetQueryResultsStream
政策附加到 Athena 用户,则可以将;UseResultsetStreaming=1
添加到其他 JDBC 参数的末尾,以显著提升大型结果集提取的性能。此参数默认设置为0
。 - 要添加到 JDBC 连接字符串的其他参数(可选)。
- SSL:忽略;默认情况下,所有与 AWS API 的连接都会进行加密。
- 每个节点的连接数上限:默认设置为 5。如果 Looker 是针对 Athena 运行的主要查询引擎,则此值最多可增加到 20。如需详细了解服务限制,请参阅 Athena 服务限制文档。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
- 连接池超时:指定连接池超时时间。默认情况下,超时设置为 120 秒。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
- SQL Runner 预缓存:如果您希望 SQL Runner 仅在选择表时加载表信息,请取消选中此选项。如需了解详情,请参阅将 Looker 连接到数据库文档页面。
- 数据库时区:指定数据库中使用的时区。如果您不想进行时区转换,请将此字段留空。如需了解详情,请参阅使用时区设置文档页面。
如需验证连接是否成功,请点击测试。如需了解问题排查信息,请参阅测试数据库连接文档页面。
要保存这些设置,请点击连接。
为查询结果输出和 PDT 指定 S3 存储桶
使用连接页面的其他 JDBC 参数字段,配置 Looker 将用于存储查询结果输出的 S3 存储桶的路径,并指定您希望 Looker 将 PDT 写入的 S3 存储桶中的输出目录的名称。使用 s3_staging_dir
参数指定此信息。
s3_staging_dir
JDBC 参数是配置 Amazon Athena S3OutputLocation
属性的另一种方法,这是 Athena JDBC 连接所必需的。如需了解详情以及查看所有可用 JDBC 驱动程序选项的列表,请参阅有关 JDBC 驱动程序选项的 Athena 文档。
在 Additional JDBC parameters 字段中,使用以下格式指定 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 查询。
- 如果您启用了 PDT,则在构建 PDT 时,系统会将有关所创建表的元数据存储在 S3 存储桶中。
资源
调试
Amazon 提供 LogLevel
和 LogPath
JDBC 驱动程序选项,用于调试连接。如需使用这些 JDBC 参数,请将 ;LogLevel=DEBUG;LogPath=/tmp/athena_debug.log
添加到其他 JDBC 参数字段的末尾,然后再次测试连接。
如果 Looker 托管实例,则 Looker 支持团队或您的分析师需要检索此文件才能继续调试。
功能支持
为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
从 Looker 24.18 开始,Amazon Athena 支持以下功能:
特征 | 是否支持? |
---|---|
支持级别 | 支持 |
Looker (Google Cloud Core) | 是 |
对称汇总 | 是 |
派生表 | 是 |
永久性 SQL 派生表 | 是 |
永久性原生派生表 | 是 |
稳定视图 | 是 |
终止查询 | 是 |
基于 SQL 的数据透视 | 是 |
时区 | 是 |
SSL | 是 |
小计 | 否 |
JDBC 其他参数 | 是 |
区分大小写 | 是 |
位置类型 | 是 |
名单类型 | 是 |
百分位 | 是 |
不同值百分位 | 否 |
SQL Runner 显示进程 | 否 |
SQL Runner 中的“Describe Table”命令 | 是 |
SQL Runner 显示索引 | 否 |
SQL Runner 选择 10 | 是 |
SQL 运行程序数量 | 是 |
SQL 说明 | 否 |
OAuth 凭据 | 否 |
上下文注释 | 是 |
连接池 | 否 |
HLL 草图 | 是 |
聚合感知 | 是 |
增量 PDT | 否 |
毫秒 | 是 |
微秒 | 否 |
具体化视图 | 否 |
非重复近似计数 | 是 |
后续步骤
完成数据库连接后,配置身份验证选项。