将 Blob 数据从 RDBMS (Sybase) 导入 Cassandra

Posted

技术标签:

【中文标题】将 Blob 数据从 RDBMS (Sybase) 导入 Cassandra【英文标题】:Importing blob data from RDBMS (Sybase) to Cassandra 【发布时间】:2016-12-11 09:00:49 【问题描述】:

我正在尝试使用 DataStax Enterprise(DSE) 5.0 将大型 blob 数据(大约 10 TB)从 RDBMS (Sybase ASE) 导入 Cassandra。

sqoop 在 DSE 5.0 中仍然是推荐的方法吗?根据发行说明(http://docs.datastax.com/en/latest-dse/datastax_enterprise/RNdse.html):

Hadoop 和 Sqoop 已弃用。请改用 Spark。 (DSP-7848)

那么我应该使用带有 JDBC 数据源的 Spark SQL 从 Sybase 加载数据,然后将数据框保存到 Cassandra 表吗?

有没有更好的方法来做到这一点?任何帮助/建议将不胜感激。

编辑:根据 DSE 文档 (http://docs.datastax.com/en/latest-dse/datastax_enterprise/spark/sparkIntro.html),不支持从 spark 写入 blob 列。

不支持以下 Spark 功能和 API:

从 Spark 写入 blob 列

支持阅读所有类型的列;但是,您必须在序列化之前将 blob 集合转换为字节数组。

【问题讨论】:

【参考方案1】:

首选用于大型数据集 ETL 的 Spark,因为它执行分布式注入。 Oracle 数据可以加载到 Spark RDD 或数据帧中,然后只需使用 saveToCassandra(keyspace, tablename)。 2016 年 Cassandra 峰会有 Jim Hatcher 的演讲 Using Spark to Load Oracle Data into Cassandra,深入讨论了这个主题并提供了示例。

Sqoop 已弃用,但仍应在 DSE 5.0 中工作。如果它是一次性加载并且您已经对 Squoop 感到满意,请尝试一下。

【讨论】:

谢谢。我已使用 spark 进行 ETL / 将数据加载到 HDFS 中。但似乎 DSE 5.0 不支持从 spark 写入 blob 列。这是一次性加载,所以我可能会使用 sqoop。

以上是关于将 Blob 数据从 RDBMS (Sybase) 导入 Cassandra的主要内容,如果未能解决你的问题,请参考以下文章

将数据从 RDBMS 加载到具有多个目标的 Hadoop

将数据从 NoSQL 迁移到 RDBMS

将 HBase 数据导出到 RDBMS

如何使用 Sqoop 从 RDBMS 将数据导入本地文件系统,而不是 HDFS?

使用 SQOOP 和 FLUME 将数据从 RDBMS 移动到 Hadoop

数据库及MySQL基础