【发布时间】:2014-03-06 11:57:18
【问题描述】:
我需要在 Cassandra 中加载批量数据。 google了一下,发现可以用SSTABLE loader在cassandra中加载批量数据。我正在使用 DataStax,想知道我是否可以使用 Apache Sqoop,我的批量数据是 CSV 格式的。如果我可以使用 Apache SQOOp,有人可以给出语法,如何使用 sqoop 加载 CSV 格式的批量数据
【问题讨论】:
我需要在 Cassandra 中加载批量数据。 google了一下,发现可以用SSTABLE loader在cassandra中加载批量数据。我正在使用 DataStax,想知道我是否可以使用 Apache Sqoop,我的批量数据是 CSV 格式的。如果我可以使用 Apache SQOOp,有人可以给出语法,如何使用 sqoop 加载 CSV 格式的批量数据
【问题讨论】:
Scoop 用于从 JDBC 存储(关系数据库)导入,而不是 CSV 文件,因此您不能使用它。
如果您的文件很小(即适合一台机器),您应该考虑使用 CQL shell COPY FROM 导入。首先创建表以匹配您要导入的架构,然后从 CQL shell 运行此语句(使用您自己的列、文件名和分隔符):
COPY mytable(col1, col2, col3) FROM ('myfile.csv') WITH DELIMITER=',';
然后你就完成了。所以这是最简单的方法。
现在对于 SSTableLoader,我上次听说过,如果你想使用它,你需要编写一个自定义的 java 程序,将你的文件转换成一个 SSTable。根据您的描述,这可能不是您的方案的最佳方法。不过,如果你的 CSV 文件真的很大,here's a blog post 描述所涉及的步骤(这是一个复杂的演练,所以我不会在这里重复)。
【讨论】: