[英]Redshift. COPY from invalid JSON on S3
我正在嘗試將數據從 S3 上的 JSON 文件加載到 Redshift 中。
但此文件包含格式錯誤 - 行 QUOTES '$'
${"id":1,"title":"title 1"}$
${"id":2,"title":"title 2"}$
從 PostgreSQL 導出數據時出錯。
現在,當我嘗試將數據加載到 Redshift 時,我收到 raw_line“$”的消息“Invalid value”。
有什么方法可以使用 Redshift COPY 命令轉義這些符號並避免數據重新上傳或轉換?
我的命令
-- CREATE TABLE
create table my_table (id BIGINT, title VARCHAR);
-- COPY DATA FROM S3
copy my_table from 's3://my-bucket/my-file.json'
credentials 'aws_access_key_id=***;aws_secret_access_key=***'
format as json 'auto'
提前致謝!
我不認為有一個簡單的“忽略此”選項適用於您的情況。 您可以嘗試NULL AS '$'
但我希望這只會以不同的方式混淆事物。
最好的辦法是過濾文件並用固定版本替換原件。 正如您在評論中指出的那樣,由於大小原因,將它們下載到您的系統、修改和推回不是一個好的選擇。 這將影響您的傳輸速度(通過 inte.net)和 S3 的數據輸出成本。 您想在 AWS 的“內部”執行此操作。
有多種方法可以做到這一點,我希望最好的選擇是基於您可以快速完成的操作,而不是絕對最好的方法。 (聽起來這是一次性修復操作。)以下是一些:
還有其他可能的選擇(EMR),但這些似乎是可能的選擇。 我喜歡玩新事物(尤其是免費的時候),所以如果是我,我會嘗試 CloudShell。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.