使用map和list列将非规范化表导出到cassandra表

时间:2015-08-12 02:03:12

标签: json hadoop cassandra

我在mysql中有一个非规范化表,其结构如下:

AcctID | fName | lName | userId | ProductCode | Street | City | State | Zip

一个人只能拥有一个userId,但该人可以拥有多个AccID,每个AccID都有自己的地址。所以在cassandra中,我会创建一个这样的表:

create type acctInfo (
  prodCode text,
  street text,
  city text,
  state text,
  zip int
);

create type fullName (
  fName text,
  lName text
 );

create table CustInfo (
  userId PRIMARY KEY,
  name fullName,
  accts map<text, frozen<acctInfo>>
);

我理解csv文件中的嵌套结构,我需要这个例子......

https://issues.apache.org/jira/browse/CASSANDRA-5590

我可以编写一个shell脚本来为csv文件中的每一行生成json数组,但它会对mySql中的denormalzied表运行很多查询来创建一个csv文件。还有其他办法吗?

我也可以从mySql导出这个非规范化表,并将其放入HDFS中。

我想我的问题是,将关系数据库系统中的非规范化表格与地图和列表一起放入cassandra的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

从mysql将所有数据加载到cassandra的最佳方法是通过spark。您可以一次获取所有数据并放入列表和地图,然后在cassandra中推送数据。