Amazon Athena Timestream 连接器
Amazon Athena Timestream 连接器使 Amazon Athena 能够与 Amazon Timestream
Amazon Timestream 是一个快速、可扩展、完全托管式、专门构建的时间序列数据库,每天可轻松存储和分析数万亿个时间序列数据点。Timestream 通过根据用户定义的策略将最新数据保存在内存中,并将历史数据移动到成本优化的存储层,从而节省您在管理时间序列数据生命周期方面的时间和成本。
先决条件
可以使用 Athena 控制台或 Amazon Serverless Application Repository 将该连接器部署到您的 Amazon Web Services 账户。有关更多信息,请参阅 部署连接器和连接到数据源 或 使用 Amazon Serverless Application Repository 部署数据源连接器。
参数
使用本节中的 Lambda 环境变量来配置 Timestream 连接器。
-
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"})。有关其他可能的标头,请参阅《Amazon Simple Storage Service API 参考》中的 PutObject。 -
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 生成密钥。禁用溢出加密可以提高性能,尤其是当您的溢出位置使用服务器端加密时。 -
glue_catalog –(可选)使用此选项指定跨账户 Amazon Glue 目录。默认情况下,该连接器将尝试从其自己的 Amazon Glue 账户中获取元数据。
在 Amazon Glue 中设置数据库和表
您可以选择使用 Amazon Glue Data Catalog 作为元数据的补充来源。要使 Amazon Glue 表与 Timestream 配合使用,必须具备 Amazon Glue 数据库和表,且它们的名称应与要提供补充元数据的 Timestream 数据库和表相匹配。要配置 Amazon Glue 表与 Timestream 配合使用,您必须在 Amazon Glue 中设置其表属性。
将 Amazon Glue 表用于补充元数据
-
在 Amazon Glue 控制台中编辑表,添加以下表属性:
timestream-metadata-flag — 此属性向 Timestream 连接器指明该连接器可将该表用于补充元数据。只要表属性的列表中存在
timestream-metadata-flag属性,您就可以为timestream-metadata-flag提供任何值。-
_view_template — 使用 Amazon Glue 作为补充元数据时,您可以使用此表属性并指定任何 Timestream SQL 作为视图。Athena Timestream 连接器使用来自视图的 SQL 和来自 Athena 的 SQL 来运行查询。如果您想使用 Athena 中不具备的 Timestream SQL 功能,这将非常有用。
-
请确保使用适合 Amazon Glue 的数据类型,如本文档中所列。
数据类型
目前,Timestream 连接器仅支持 Timestream 中可用数据类型的子集,尤其是:标量值 varchar、double 和 timestamp。
要查询 timeseries 数据类型,您必须在使用 Timestream CREATE_TIME_SERIES 函数的 Amazon Glue 表属性中配置视图。您还需要为使用语法 ARRAY<STRUCT<time:timestamp,measure_value::double:double>> 作为任何时间序列列的类型的视图提供架构。务必将 double 替换为适合您表的标量类型。
下图显示了为设置时间序列视图而配置的 Amazon Glue 表属性的示例。
所需权限
查看 athena-timestream.yamlPolicies 部分,以获取有关此连接器所需 IAM 策略的完整详细信息。以下是简短摘要。
-
Amazon S3 写入权限 - 要成功处理大型查询,该连接器需要对 Amazon S3 中的位置具有写入权限。
-
Athena GetQueryExecution – 当上游 Athena 查询终止时,该连接器将使用此权限快速失败。
-
Amazon Glue Data Catalog — Timestream 连接器需要针对 Amazon Glue Data Catalog 的只读访问权限,以获取架构信息。
-
CloudWatch Logs – 该连接器需要针对 CloudWatch Logs 的访问权限,以存储日志。
-
Timestream 访问权限 — 用于运行 Timestream 查询。
性能
目前,使用此连接器运行的查询比从 Timestream 本身运行的查询慢得多(慢两倍多)。我们建议您将返回的数据(非扫描的数据)限制在 256MB 以内。请注意,即使远低于 256MB 的推荐值,也可能出现独特而有趣的使用案例。
许可证信息
Amazon Athena Timestream 连接器项目已根据 Apache-2.0 许可证
另请参阅
有关此连接器的更多信息,请访问 GitHub.com 上的相应站点