将 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的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Sqoop 从 RDBMS 将数据导入本地文件系统,而不是 HDFS?