我想使用Cassandra COPY功能更新表中的某些列。但即使未找到行,Copy也会插入新记录。我想限制在COPY命令中,只有当PRIMARY KEY行被找到时,csv文件中的列才会被更新。示例表和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 ord_schema.Orders(Ord_Id,Ord_Status) FROM 'NW170610.csv'
表的SnapShot不应被插入。 请在数据不存在的情况下,在插入或阻止输入之前,有任何方法检查数据是否存在。
谢谢。时间是解决方案正常工作。 – lakksv