Looker 支持连接到 Amazon Athena,这是一种交互式查询服务,可让您使用标准 SQL 分析 Amazon S3 中的数据。Amazon Athena 是无服务器服务,因此无需管理基础设施。您只需为运行的查询付费。
加密网络流量
对 Looker 应用与数据库之间的网络流量进行加密是一种最佳实践。可以考虑启用安全的数据库访问文档页面上介绍的某个选项。
配置 Amazon Athena 连接
本页面介绍了如何将 Looker 连接到 Amazon Athena 实例。
确保您具有以下各项:
- 一对 Amazon AWS 访问密钥。
包含您要使用 Amazon Athena 在 Looker 中查询的数据的 S3 存储桶。Amazon AWS 访问密钥必须具有对此存储桶的读写权限。如果您打算使用永久性派生表 (PDT),则 AWS 访问密钥还必须具有在 AWS Glue Data Catalog 中创建和管理数据库、表和视图的权限。所需权限包括
glue:CreateDatabase、glue:CreateTable、glue:UpdateTable和glue:DeleteTable,如果您使用分区 PDT,还需要glue:BatchCreatePartition。如果您配置了 PDT 替换,请向 PDT 替换访问密钥授予这些权限。如需了解详情,请参阅 Amazon Athena 文档中的对 AWS Glue Data Catalog 中的数据库和表的精细访问权限。了解 Amazon Athena 实例数据所在的位置。您可以在 Amazon 控制台的右上角找到区域名称。
在 Looker 的管理部分中,选择连接,然后点击添加连接。
填写连接详情:
- 名称:指定连接的名称。这是您在 LookML 项目中引用连接的方式。
- 方言:选择 Amazon Athena。
- 主机和端口:按照有关 JDBC 网址格式的 Athena 文档中的说明,指定主机和端口的名称。主机应为有效的 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 应使用的 S3 存储桶,用于输出查询结果和 PDT;请参阅本页面上的指定用于输出查询结果和 PDT 的 S3 存储桶部分。- 用于流式传输结果的标志。如果您的 Athena 用户附加了
athena:GetQueryResultsStream政策,则可以在其他 JDBC 参数的末尾添加;UseResultsetStreaming=1,以显著提高大型结果集提取的性能。此参数默认设置为0。 - 要添加到 JDBC 连接字符串的可选附加参数。如需查看 Looker 支持的参数列表,请参阅本页面上的支持的 JDBC 参数部分。
- SSL:忽略;默认情况下,与 AWS API 的所有连接都将加密。
- 每个节点的连接数上限:默认情况下,此值设置为 5。如果 Looker 是针对 Athena 运行的主要查询引擎,您可以将此值增加到 20。如需详细了解服务限制,请参阅 Athena 服务限制文档。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
- 连接池超时时间:指定连接池超时时间。默认情况下,超时设置为 120 秒。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
- SQL Runner 预缓存:如果您希望 SQL Runner 仅在选择表时加载表信息,请取消选择此选项。如需了解详情,请参阅将 Looker 连接到您的数据库文档页面。
- 数据库时区:指定数据库中使用的时区。如果您不想进行时区转换,请将此字段留空。如需了解详情,请参阅使用时区设置文档页面。
如需验证连接是否成功,请点击连接设置页面底部状态详情部分中的测试连接按钮。
如果 Looker 显示可以连接,请按连接以创建连接。
然后,您的数据库连接会添加到 Looker 连接管理页面上的列表中。
指定用于查询结果输出和 PDT 的 S3 存储桶
使用连接页面的其他 JDBC 参数字段,配置 Looker 将用于存储查询结果输出的 S3 存储桶的路径,并指定您希望 Looker 将 PDT 写入的 S3 存储桶中的输出目录名称。使用 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 存储桶的名称,其中包含您要使用 Amazon Athena 在 Looker 中查询的数据。<output-path>是 Looker 写入查询结果输出的路径。
如需配置 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 Athena 文档
- Amazon Web Services Console for Athena(需要 AWS 登录信息)
- Amazon Athena SQL 和 HiveQL 参考文档
支持的 JDBC 参数
对于 Amazon Athena,Looker 在连接的其他 JDBC 参数字段中支持以下 JDBC 参数。如需了解这些参数,请参阅数据库的相关文档。
ApplicationNameAwsCredentialsProviderArgumentsAwsCredentialsProviderClassAwsRegionCatalogDatabaseEnableResultReuseByAgeEndPointOverrideLogLevelMaxQueryExecutionPollingIntervalmaxResultReuseAgeInMinutesMetadataRetrievalMethodMinQueryExecutionPollingIntervalOutputLocationpasswordProxyHost:对于公开 Looker 实例,ProxyHost参数的值必须是实例的公共 IP 地址。ProxyPortProxyPWDProxyUIDQueryExecutionPollingIntervalMultiplierRegionResultFetcherResultReuseByAgeConfigurations3_staging_dirS3OutputEncOptionS3OutputLocationSchemauserUseResultsetStreamingWorkGroup
功能支持
为了让 Looker 支持某些功能,您的数据库方言也必须支持这些功能。
自 Looker 26.22 起,Amazon Athena 支持以下功能:
| 功能 | 是否支持? |
|---|---|
| Looker (Google Cloud Core) | |
| 对称聚合 | |
| 派生表 | |
| 永久性 SQL 派生表 | |
| 原生永久性派生表 | |
| 稳定视图 | |
| 查询终止 | |
| 基于 SQL 的透视 | |
| 时区 | |
| SSL | |
| 小计 | |
| 其他 JDBC 参数 | |
| 区分大小写 | |
| 位置类型 | |
| 名单类型 | |
| 百分位 | |
| 不同值百分位 | |
| SQL Runner “Show Processes” | |
| SQL Runner “Describe Table” | |
| SQL Runner “Show Indexes” | |
| SQL Runner “Select 10” | |
| SQL Runner “Count” | |
| SQL “Explain” | |
| OAuth 2.0 凭证 | |
| 背景信息评论 | |
| 连接池 | |
| HLL 草图 | |
| 汇总感知 | |
| 增量 PDT | |
| 毫秒 | |
| 微秒 | |
| 物化视图 | |
| 环比衡量 | |
| 近似计数不同 | |
| 数据库内分析模型 | |
| 自定义日历 |
后续步骤
完成数据库连接后,配置身份验证选项。