问题描述
背景:以下JSON文件是事务的事件类型(来自DocumentDB),我将每天将其加载到Redshift中。在使用Pentaho Kettle读取并解析后,Redshift中的原始表将具有您在下面的JSON中看到的确切信息。
正在Redshift中捕获此JSON文件的当前DDL是以下内容:
CREATE TABLE etl.lpgetlstage_na.json_data_raw (
document_id varchar(500),clustertime timestamp,operation_type varchar(500),"database" varchar(500),collection varchar(500),document_key varchar(500),order_number varchar(600),order_id varchar(500),order_date_time varchar(500),attraction_id varchar(500),entry_date timestamp,entry_time timestamp,request_id varchar(500),ticket_url varchar(500),pass_id varchar(500),external_ticket_id varchar(500),"class" varchar(500),filename varchar(500),last_modified varchar(500),etl_created_ts varchar(500)
);
问题:正如我们在下面的JSON结构中看到的那样,“ entry_date”和“ entry_time”两个字段目前都以Unix Epoch格式通过。我的主要目标是从“ entry_date”中提取日期,并从“ entry_time”中提取时间,以便随后将两者连接起来并创建具有以下格式(包括时区)的唯一列:“ GMT:9月7日,星期一2020 4:11:04 PM“。
我有什么办法可以通过Redshift做到这一点吗?
{
"_id": {
"_data": "11111111111111"
},"operationType": "insert","clusterTime": {
"$timestamp": {
"t": 1599495064,"i": 1
}
},"ns": {
"db": "abc","coll": "abc"
},"documentKey": {
"_id": {
"$uuid": "abcabcabcabcabcabc"
}
},"fullDocument": {
"_id": {
"$uuid": "abcabcabcabcabcabc"
},"orderNumber": "1234567","externalOrderId": "12345678","orderDateTime": "2020-09-11T08:06:26Z[UTC]","attraction": "abc","entryDate": {
"$date": 1599523200000
},"entryTime": {
"$date": 1599472800000
},"requestId": "abc","ticketUrl": "abc","tickets": [
{
"passId": "1111111","externalTicketId": "1234567"
},{
"passId": "222222222","externalTicketId": "122442492"
}
],"_class": "abc"
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)