我有Apache Cassandra在Google Cloud中的4個虛擬機上工作。我認爲它太昂貴了,並且想要將所有數據導出到BigQuery。卡桑德拉大約有2TB(60毫米排)。任何建議我怎麼能做到這一點?如何將數據從Cassandra導出到BigQuery
在此先感謝。
我有Apache Cassandra在Google Cloud中的4個虛擬機上工作。我認爲它太昂貴了,並且想要將所有數據導出到BigQuery。卡桑德拉大約有2TB(60毫米排)。任何建議我怎麼能做到這一點?如何將數據從Cassandra導出到BigQuery
在此先感謝。
我們決定將5年的數據從Apache Cassandra遷移到Google BigQuery。問題不僅僅是傳輸數據或導出/導入,問題在於非常古老的Cassandra!
經過廣泛研究後,我們計劃遷移到將數據導出到csv,然後在Google雲端存儲中上傳以導入Big Query。
痛苦是卡桑德拉1.1處理大量記錄的方式!沒有分頁,所以在某些時候你會用完東西!如果沒有錯,從2.2版開始引入分頁。
畢竟我試圖升級到最新版本3.4失敗,我決定嘗試其他版本,幸運的是版本2.2工作!通過工作,我的意思是我能夠按照升級步驟結束並且可以訪問數據。
因爲我無法獲得直接升級的任何支持,而且我的升級到2.2的嘗試也失敗了。所以我別無選擇,只能升級到2.0,然後升級到2.2。因爲這是非常微妙的任務,我只是把你轉到官方網站,然後給你總結。請確保您檢查docs.datastax.com並按照說明操作。
舉一個概述,你會做下列步驟操作:
在繼續下一步之前成功升級SSTable是非常重要的。只需使用
nodetool upgradesstables
使用
nodetool排排出節點
然後簡單地停止節點
編輯/etc/yum.repos.d/datastax.repo
[datastax]
name = DataStax Repo for Apache Cassandra
baseurl = https://rpm.datastax.com/community
enabled = 1
gpgcheck = 0
然後安裝並啓動服務:
yum install dsc20
service cassandra start
一旦你升級到Cassandra 2+可以將數據導出到csv,而無需分頁或崩潰問題。
從記錄上來看,幾個命令來獲取有關數據結構中的必要信息如下:
cqlsh -u username -p password
describe tables;
describe table abcd;
describe schema;
而且一旦我們知道了表,我們要導出我們只是用它們沿着它的密鑰空間。首先將所有命令添加到一個文件中以創建一個批處理。
vi commands.list
例如,一個樣品命令導出一個表:
COPY keyspace.tablename TO '/backup/export.csv';
最後運行該文件中的命令:
cqlsh -u username -p password -f /backup/commands.list
所以現在,你已經導出表, csv文件。您現在需要做的就是將文件上傳到Google雲端存儲:
gsutil rsync /backup gs://bucket
稍後,您可以使用Google API將csv文件導入Google BigQuery。您可以在cloud.google.com上查看Google文檔。
謝謝你的回答。但COPY命令給我平均。速度約爲每秒15000行。所以我可以在大約40天內輸出60毫秒的行數。我可以加快這個過程嗎? –
嘗試調整其他參數:https://www.datastax.com/dev/blog/six-parameters-affecting-cqlsh-copy-from-performance – Pentium10
您也可以通過使用Apache Beam創建數據管道並通過Cloud Dataflow運行此管道來完成此任務。
梁包括built-in IO connectors爲Apache Cassandra的和谷歌的BigQuery
利用基於波束方法,你也將有更多的選項來執行,你可能需要申請額外的數據清洗和/或轉換部分出口過程。
您有低利率。重要的是,您必須使用投票下方發佈答案左側的勾號標記接受的答案。這會增加你的速度。通過查看這個鏈接看看它是如何工作的:http://meta.stackoverflow.com/questions/5234/how-does-accepting-an-answer-work#5235 – Pentium10