【发布时间】:2015-05-04 16:43:23
【问题描述】:
我有一个 AWS Kinesis 流,并在 Hive 中创建了一个指向它的外部表。然后,我为检查点创建一个 DynamoDB 表,并在我的 Hive 查询中设置以下属性,如 here:
所述set kinesis.checkpoint.enabled=true;
set kinesis.checkpoint.metastore.table.name=my_dynamodb_table;
set kinesis.checkpoint.metastore.hash.key.name=HashKey;
set kinesis.checkpoint.metastore.range.key.name=RangeKey;
set kinesis.checkpoint.logical.name=my_logical_name;
set kinesis.checkpoint.iteration.no=0;
我有以下问题:
- 我是否必须始终将
iteration.no设置为 0? - 这是否总是从脚本的开头开始(即将被驱逐的最旧的 Kinesis 记录)?
- 假设我设置了一个 cron 来安排脚本的执行,我如何检索“下一个”迭代次数?
- 要在相同的数据上重新执行脚本,以相同的执行号重新运行查询是否足够?
- 如果我一遍又一遍地执行
select * from kinesis_ext_table limit 100和iteration.no=0,一旦第一个 Kinesis 记录开始被驱逐,我会得到不同/奇怪的结果吗?
鉴于 DynamoDB 检查点条目:
{"startSeqNo":"1234",
"endSeqNo":"5678",
"closed":false}
-
closed字段的含义是什么? - 序列号是否递增,开始和结束之间是否存在关系(例如:结束 - 开始 = 读取的记录数)?
- 我注意到有时只有 endSeqNum(没有 startSeqNum),我该如何解释?
我知道有很多问题,但我在文档中找不到这些答案。
【问题讨论】:
标签: hadoop amazon-web-services hive emr amazon-kinesis