搭建实验环境

使用CloudFormation创建实验环境

在美东1创建CloudFormation Stack,使用以下地址:

https://pingfan.s3.amazonaws.com/files/Athena-Workshop.yaml

image-20231130080635499

点击Next,最后进入创建过程。CloudFormation大约需要 5 分钟才能创建完成。

上面的CloudFormation将创建出来两个IAM 用户、两个Athena Workgroup和几个Athena Named Query,后面的实验会用到它们。

当然最重要的,还创建出来了一个S3桶,用于存储数据:

image-20231130081141871


在美东1继续创建CloudFormation Stack,用于后面的联合查询、UDF等实验,使用以下地址:

https://pingfan.s3.amazonaws.com/files/Athena-Federation-Workshop.yaml

image-20231130081301450

一直点击Next ,直至进行创建。

加载数据到S3

在使用 Athena 查询数据集之前,我们需要将数据加载到 s3 存储桶中。

在CloudShell中运行以下命令:

img

accountid=$(aws sts get-caller-identity --query "Account" --output text)
aws s3 cp s3://ws-assets-prod-iad-r-iad-ed304a55c2ca1aee/9981f1a1-abdc-49b5-8387-cb01d238bb78/v1/csv/customers.csv ./customers.csv
aws s3 cp s3://ws-assets-prod-iad-r-iad-ed304a55c2ca1aee/9981f1a1-abdc-49b5-8387-cb01d238bb78/v1/csv/sales.csv ./sales.csv
aws s3 cp customers.csv s3://athena-workshop-$accountid/basics/csv/customers/customers.csv
aws s3 cp sales.csv s3://athena-workshop-$accountid/basics/csv/sales/sales.csv
aws s3 cp s3://ws-assets-prod-iad-r-iad-ed304a55c2ca1aee/9981f1a1-abdc-49b5-8387-cb01d238bb78/v1/parquet/sales.zip ./sales.zip
aws s3 cp s3://ws-assets-prod-iad-r-iad-ed304a55c2ca1aee/9981f1a1-abdc-49b5-8387-cb01d238bb78/v1/parquet/customers.zip ./customers.zip
unzip -o sales.zip
unzip -o customers.zip
aws s3 sync ./sales s3://athena-workshop-$accountid/basics/parquet/sales
aws s3 sync ./customers s3://athena-workshop-$accountid/basics/parquet/customers
echo "----- done -----"

image-20231130081903508

命令完成后,数据将被加载到帐户中的 S3 存储桶中。在S3中找到被命名为athena-workshop-[ AWS 帐号] 例如 athena-workshop-12345678910的桶,单击存储桶名称,然后检查:

  1. 有一个名为 basics 的文件夹
  2. basics 文件夹包含 CSV 和 parquet 文件夹

image-20231130082053136

现在在实验中使用的数据集已加载到S3中

Athena中启用Cloudwatch Metrics

我们首先为Primary Athena workgroup启用 Cloudwatch Metrics,以便我们可以在运行查询后查看指标。

进入Athena页面选择Workgroups,然后单击Primary:

image-20231130082453074

进行编辑:

image-20231130082546393

启用将指标发送到CloudWatch,保存更改:

image-20231130082620462

设置Athena查询结果位置

athena查询后的结果也要保存到S3中,为它设置一个保存位置:

image-20231130082814212