我正在尝试了解数据湖,大多数示例仅显示简单的用例。我想了解的是有效地“加入查询”。
例如,我有一个包含产品数据的文件(上传到 S3-Product-Data)和一个包含产品年销售额的数据库(上传到 S3-Product-Sales)。AWS Lakes / Athena 如何进行跨这两个环境运行的查询?
当然,需要一些东西将它们联系起来。我只是不确定查询会是什么样子,也不确定 Athena 在幕后做了什么来合并数据(并保持高性能)。
我正在尝试了解数据湖,大多数示例仅显示简单的用例。我想了解的是有效地“加入查询”。
例如,我有一个包含产品数据的文件(上传到 S3-Product-Data)和一个包含产品年销售额的数据库(上传到 S3-Product-Sales)。AWS Lakes / Athena 如何进行跨这两个环境运行的查询?
当然,需要一些东西将它们联系起来。我只是不确定查询会是什么样子,也不确定 Athena 在幕后做了什么来合并数据(并保持高性能)。
您所做的是在 Athena 中创建一个表,该表引用包含产品数据的文件,另一个表引用包含年销售额的文件。之后,您可以运行组合表的 SQL。
SQL 的确切外观取决于您的数据、它有哪些列等。如果您的产品数据有一个product_id列,而您的销售数据也有,您可以像这样加入它们(列名当然都是编的) :
SELECT product_name, SUM(sales.sold_for) AS total_revenue
FROM products
LEFT JOIN sales USING (product_id)
对于您在数据库中的数据,请提取 csv 文件中的数据并将其放入另一个 s3 存储桶中。然后配置glue爬虫在这个s3桶上爬,让它创建一个表。然后,您可以加入现有的 athena 表和新表。