2016-12-11 125 views
0

我試圖導入大型BLOB數據(約10 TB)從RDBMS(Sybase ASE的)到卡桑德拉,使用DataStax企業(DSE)5.0。導入BLOB數據卡桑德拉

是sqoop仍然推薦方式DSE 5.0做到這一點?根據發行說明(http://docs.datastax.com/en/latest-dse/datastax_enterprise/RNdse.html):

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

因此,我應該使用Spark SQL和JDBC數據源從Sybase加載數據,然後將數據幀保存到Cassandra表?

有沒有更好的方法來做到這一點?任何幫助/建議將不勝感激。

編輯:根據DSE文檔(http://docs.datastax.com/en/latest-dse/datastax_enterprise/spark/sparkIntro.html),不支持從火花寫入blob列。

以下星火功能和API不支持:

寫入BLOB列從星火

閱讀所有類型的列支持;但是,在序列化之前,您必須將Blob集合轉換爲字節數組。

回答

0

對於大型數據集的ETL來說Spark是首選,因爲它執行分佈式注入。 Oracle數據可以加載到Spark RDD或數據框中,然後使用saveToCassandra(keyspace,tablename)。卡桑德拉峯會2016有由吉姆·哈徹介紹Using Spark to Load Oracle Data into Cassandra其深入討論了這個話題,並提供了示例。

Sqoop已經過時,但還是應該在DSE 5.0工作。如果它是一次性負載,並且您已經使用Squoop進行了舒適,請嘗試一下。

+0

感謝。我用ETL/Spark的數據加載到HDFS。但似乎在DSE 5.0中不支持Spark的blob列。這是一次性負載,所以我可能會使用sqoop。 – Sanoj