【问题标题】:Inserting comma delimited data into Cassandra将逗号分隔的数据插入 Cassandra
【发布时间】:2016-05-17 04:00:11
【问题描述】:

我想将列数据从文件逐行复制到 db 列。

我的文件-

'LB333','HK8','2015-05-23 16:20:00+0000',''

为了执行插入操作,我编写了以下 sed 语句-

        sed "s/' *, *'/' '/g;s/\(.*\),\(.*\),\(.*\),\(.*\)/INSERT INTO home.BOM_WHERE (prod_id, id, effective_date, revision ,type ) VALUES (\1,\2,\3, \4, 'COMPONENT');s/' '/','/g" myFile

以下值应在这些地方添加-

    \1 - 'LB333' - against column prod_id
    \2- 'HK8' - against column id
    \3 -'2015-05-23 16:20:00+0000' - against column effective_date
    \4- '' - against column revision
    \5- 'COMPONENT'- hardcodded i am inserting- against column type

所以对于前四个值,我想根据我的要求从文件中复制最后一列的值。

上述 sed 语句不起作用。请推荐

【问题讨论】:

  • 这是使用LOAD DATA INFILE 的完美案例。请不要涉及sed
  • @John1024 先生,我更新了我的帖子
  • @tadman 对不起,先生,通过 misak,我已将 asa mysql 标记为。此列数据正在插入 cassandra 表中

标签: bash sed cassandra


【解决方案1】:

用一个简单的read

while IFS=',' read a b c d; do
echo "INSERT INTO home.BOM_WHERE (prod_id, id, effective_date, revision ,type ) VALUES ($a,$b,$c,$d,'COMPONENT')"
done < file

输出:

INSERT INTO home.BOM_WHERE (prod_id, id, effective_date, revision ,type ) VALUES ('LB333','HK8','2015-05-23 16:20:00+0000', '', 'COMPONENT')

【讨论】:

  • @okla 我已经删除了我的答案中的sed 部分。请参阅@Jonathan Leffler 的回答,以了解您的 sed 命令更好的 cmets。
【解决方案2】:

在您现有的sed 中,您拥有(实际上):

sed -e "s/' *, *'/' '/g" \
    -e "s/\(.*\),\(.*\),\(.*\),\(.*\)/INSERT INTO home.BOM_WHERE (prod_id, id, effective_date, revision ,type ) VALUES (\1,\2,\3, \4, 'COMPONENT')" \
    -e "s/' '/','/g"

第一个表达式小心地去掉了逗号;第二个表达式尝试匹配已删除的逗号 - 并且失败了,很奇怪。

除了一些整理之外,这段代码完成了这项工作,基本上是你的中间 s/// 操作,没有两个外部 s/// 语句:

sed -e "s/^\(.*\),\(.*\),\(.*\),\(.*\)$/INSERT INTO home.BOM_WHERE (prod_id, id, effective_date, revision, type) VALUES (\1, \2, \3, \4, 'COMPONENT')/" "$@"

这是一条很长的线,但它对我有用,产生:

INSERT INTO home.BOM_WHERE (prod_id, id, effective_date, revision, type) VALUES ('LB333', 'HK8', '2015-05-23 16:20:00+0000', '', 'COMPONENT')

【讨论】:

    猜你喜欢
    • 2010-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    相关资源
    最近更新 更多