Athena使用Lambda作为与其他数据源的连接器,当athena查询其他数据源时,Athena调用Lambda代码以实现联合查询。
点击Create data source:

选择DynamoDB类型:

为数据源命名为dynamodb_db,然后点击创建一个Lambda, 这将打开一个指向Lambda 控制台的新窗口:

跳转到Lambda应用:

Lambda的一些配置如下:
| Property | Value |
|---|---|
| Application name | AthenaDynamoDBConnector |
| SpillBucket | athena-federation-workshop-145197526627 |
| AthenaCatalogName | dynamo |
| DisableSpillEncryption | false |
| LambdaMemory | 3008 |
| LambdaTimeout | 900 |
| SpillPrefix | athena-spill-dynamo |

点击部署,创建完成lambda后,回到之前的页面。刷新lambda列表,选择刚才创建的lambda:

最后点击创建数据源。
创建完成后,数据源显示在athena页面:

data source列表里显示了dynamodb_db source, 选择dynamodb_db时,它把DynamoDB的表都查询出来了;

在Query editor中运行以下查询:
select * from "lambda:dynamo".default.part limit 10;
查询结果:

查询出来的数据和DynamoDB中的原始数据是统一的:
