将Hive数据转移到DynamoDB时如何设置默认列值

时间:2013-06-05 00:50:21

标签: hive amazon-dynamodb

我想在将HDFS数据复制到Dynamo时设置默认范围键值。到目前为止,我有一个直接映射,其中输入是3列,DB是3列:

CREATE EXTERNAL TABLE hdfs_table (a_col string, b_col string, c_col string)
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
 LOCATION "hdfs:///blahblah";

CREATE EXTERNAL TABLE dynamodb_table (c1 string, c2 string, c3 string)
 STORED BY 'org.apache.hadoop.hive.dynamodb.DynamoDBStorageHandler'
 TBLPROPERTIES ("dynamodb.table.name" = "output_table",
                "dynamodb.column.mapping" = "c1:id,c2:timestamp,c3:data");

INSERT OVERWRITE TABLE dynamodb_table SELECT * FROM hdfs_table;

我设置了一个带有范围键的新输出表,该键基本上是第四列。我想将范围键设置为一个值,该值作为参数传递给此脚本。我想我想做一些类似于SQL ALTERSET DEFAULT的事情。任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

我不确定hive是否支持SQL类型Alter和Set Default命令!您可以通过插入新列以及hdfs_table列来间接尝试。例如,

INSERT into TABLE new_table SELECT hdfs_table.a_col, hdfs_table.b_col, hdfs_table.c_col, 
case when([your condition]) then [set your default value] end as d_col
FROM hdfs_table