json—将非规范化表导出到带有map和list列的cassandra表

lmvvr0a8  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(250)

我在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中的非规范化表运行大量查询来创建csv文件。还有别的办法吗?
我还可以从mysql导出这个非规范化的表,并将其放到hdfs中。
我想我的问题是,从关系数据库系统中得到一个非规范化的表到带有Map和列表的cassandra的最佳方法是什么?

zlwx9yxi

zlwx9yxi1#

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

相关问题