Cassandra COPY機能を使用してテーブルの特定の列を更新したいとします。しかし、行が見つからなくてもCopyは新しいレコードを挿入します。私は、PRIMARY KEY行が更新されるcsvファイルの列が見つかった場合にのみ、COPYコマンドで制限したいと思います。サンプルテーブルとCOPYコマンドは以下で共有されています。Cassandra COPYコマンドでレコードを更新する
CREATE TABLE Orders(
Ord_Id Text Primary Key,
Ord_Date Int,
Ord_Acct Text,
Ord_Comp_Dt Int,
Ord_Status Text)
Sample Data:
Ord_Id | Ord_Date | Ord_Acct | Ord_Comp_Dt | Ord_Status
ORD001 | 20170602 | A001 | 20170615 | InProgress
ORD002 | 20170603 | A002 | 20170607 | Failed
ORD003 | 20170604 | A003 | 20170616 | InProgress
ORD004 | 20170605 | A003 | 20170617 | InProgress
上記の表は、注文Ord_Status = 'InProgress'で注文したときに行エントリを取得します。注文完了ネットワークに基づいて、データはOrd_Id、Ord_Statusでデータを提供します。
Network Data
ORD_ID,ORD_STATUS
ORD001,Failed
ORD003,Success
ORD004,Rejected
ORD005,DataIncomplete
Copyコマンドは、主キーが見つからない場合
Sample Data:
Ord_Id | Ord_Date | Ord_Acct | Ord_Comp_Dt | Ord_Status
ORD001 | 20170602 | A001 | 20170615 | Failed
ORD002 | 20170603 | A002 | 20170607 | Failed
ORD003 | 20170604 | A003 | 20170616 | InProgress
ORD004 | 20170605 | A003 | 20170617 | Rejected
ORD005 | Null | Null | Null | DataIncomplete
ORD005を挿入すべきではないCOPYコマンドを実行した後
COPY ord_schema.Orders(Ord_Id,Ord_Status) FROM 'NW170610.csv'
表スナップショットの下に設けられています。 データが存在しないときに挿入または挿入を防止する前に、データが存在するかどうかを確認する方法はありますか。
ありがとうございます。時間は解決策がうまく動作します。 – lakksv