我有一个要求,我需要在Cassandra中加载批量数据。我做了google搜索,发现SSTABLE加载程序可以用来加载cassandra中的批量数据。我正在使用DataStax并想知道我是否可以使用Apache Sqoop,我的批量数据是CSV格式。如果我可以使用Apache SQOOp,有人可以提供如何使用sqoop以CSV格式加载批量数据的语法
答案 0 :(得分:2)
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描述了所涉及的步骤(这是一个复杂的演练,所以我不打算在此重复)。