在 Athena 中查询
Data Pump 会把结果编目到 Glue Data Catalog 中。任何能读取该目录的工具——Athena、 Redshift Spectrum、EMR、Spark——都能看到这些表。
表是如何呈现的
Section titled “表是如何呈现的”表名由数据库名和表名组成,并应用你配置的别名:
| 数据库中 | 数据湖中 | Athena 中 |
|---|---|---|
pagila / public.payment |
pagila.payment |
pagila_payment |
配置别名 vendas / pagamentos 后 |
vendas.pagamentos |
vendas_pagamentos |
public schema 会被去掉,其他 schema 则保留。
SELECT customer_id, sum(CAST(amount AS DECIMAL(10,2))) AS total FROM datalake.vendas_pagamentos WHERE ano = 2024 AND mes = 3 GROUP BY customer_id ORDER BY total DESC LIMIT 20;真正影响成本的是针对分区列的 WHERE:没有它,Athena 会读取整张表。
RDS 导出会把不少列输出为文本,包括日期和小数。这是导出格式本身的行为,与 Data Pump 无关。
-- 日期CAST(payment_date AS TIMESTAMP)
-- 小数CAST(amount AS DECIMAL(10,2))如果某个 CAST 每次都要用到,不妨在分区配置中增加一个 额外列:它在接入时计算一次,
到达 Athena 时就已经是转换好的结果。
查看有哪些数据
Section titled “查看有哪些数据”控制台的 Datalake(数据湖)页面会列出已编目的表,包含字段、类型、行数以及每张表的 来源。当你只是想知道有哪些数据时,这比通过 Athena 查询目录更快。