使用 EMR 查询 DynamoDB 数据
Posted
技术标签:
【中文标题】使用 EMR 查询 DynamoDB 数据【英文标题】:Query DynamoDB Data with EMR 【发布时间】:2017-10-12 16:15:41 【问题描述】:我正在寻找一种使用 amazon EMR 使用 SQL 语法查询 AWS DynamoDB 数据的方法。
我的 DynamoDB 表已设置好并准备就绪。如何使用 Hue 导入/查询数据? DynamoDB 中的表大小约为 8GB。
【问题讨论】:
【参考方案1】:请按照以下步骤操作:-
Hive 查询非实时 DynamoDB 数据:-
1) 将数据从 DynamoDB 导出到 Hive
请参阅下面的部分:在 EMR Hive 命令链接中从 DynamoDB 导出数据
2) 使用 Amazon EMR 查询存储在 DynamoDB 中的数据
请参阅以下部分:在 EMR Hive 命令中查询 DynamoDB 中的数据链接
3) 使用 Hue 运行查询(即从 Hue 工作台运行 Hive 查询)
EMR Hive Commands
Hue Supported
Hive 查询实时 DynamoDB:-
1) 创建 Hive 表以映射到 DynamoDB 表
http://docs.aws.amazon.com/emr/latest/ReleaseGuide/EMR_Interactive_Hive.html
2) 创建 Hive 表并对其运行查询后,它将引用实时 DynamoDB 表以获取数据
缺点:每次执行都会消耗 DynamoDB 读取或写入单元。换句话说,每次执行查询都会花费您。
示例代码:-
CREATE EXTERNAL TABLE hivetable1 (col1 string, col2 bigint, col3 array<string>)
STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
TBLPROPERTIES ("dynamodb.table.name" = "dynamodbtable1",
"dynamodb.column.mapping" = "col1:name,col2:year,col3:holidays");
【讨论】:
以上是关于使用 EMR 查询 DynamoDB 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在使用 EMR/Hive 将数据从 S3 导入 DynamoDB 时处理包含在引号 (CSV) 中的字段
用于 Apache Hadoop 的 emr-dynamodb-connector
有没有办法将我的 DynamoDB 导出任务分组到一个 EMR 集群上?