Athena使用S3表中的字段创建临时表。我使用JSON数据完成了这项工作。你能帮我讲一下如何使用镶木地板数据创建表格吗?
我试过以下:
通过执行此操作,我能够执行查询,但结果为空。
这种方法是正确的还是在镶木地板数据上还有其他方法可以采用吗?
示例json数据:
{"_id":"0899f824e118d390f57bc2f279bd38fe","_rev":"1-81cc25723e02f50cb6fef7ce0b0f4f38","deviceId":"BELT001","timestamp":"2016-12-21T13:04:10:066Z","orgid":"fedex","locationId":"LID001","UserId":"UID001","SuperviceId":"SID001"},
{"_id":"0899f824e118d390f57bc2f279bd38fe","_rev":"1-81cc25723e02f50cb6fef7ce0b0f4f38","deviceId":"BELT001","timestamp":"2016-12-21T13:04:10:066Z","orgid":"fedex","locationId":"LID001","UserId":"UID001","SuperviceId":"SID001"}
答案 0 :(得分:2)
如果您的表定义有效但没有获得任何行,请尝试使用
- MSCK REPAIR TABLE命令将所有分区加载到表中。 - 此命令可能需要一段时间才能运行,具体取决于要加载的分区数。
MSCK REPAIR TABLE {tablename}
答案 1 :(得分:1)
如果您的数据已成功存储为Parquet格式,那么您将创建一个引用这些文件的表定义。
以下是使用Parquet文件的示例语句:
CREATE EXTERNAL TABLE IF NOT EXISTS elb_logs_pq (
request_timestamp string,
elb_name string,
request_ip string,
request_port int,
...
ssl_protocol string )
PARTITIONED BY(year int, month int, day int)
STORED AS PARQUET
LOCATION 's3://athena-examples/elb/parquet/'
tblproperties ("parquet.compress"="SNAPPY");
此示例摘自AWS博客文章Analyzing Data in S3 using Amazon Athena,该文章非常出色地解释了在Amazon Athena中使用压缩和分区数据的好处。
答案 2 :(得分:0)
步骤:
1.创建你的my_table_json
2.将数据插入my_table_json(验证表'LOCATION'中存在创建的json文件)
3. 创建my_table_parquet:与my_table_json相同的创建语句,除非您需要添加“STORED AS PARQUET”子句。
4. 运行: INSERT INTO my_table_parquet SELECT * FROM my_table_json