[英]how to make 1 million inserts in cassandra
我正在從應用程序中解析成千上萬的csv文件,對於每個解析的行,我都會在Cassandra中插入一個文件。 似乎它運行后停止在2048次插入並拋出BusyConnection錯誤。
對我來說,制作大約一百萬個刀片的最佳方法是什么?
我應該將插入內容作為字符串導出到文件中,然后直接從CQL運行該文件以制作大量插入內容,這樣我實際上就不會通過網絡進行操作嗎?
1百萬個請求-確實不是一個很大的數目,您可以使用COPY FROM
命令從cqlsh
加載它。 但是您也可以通過Java代碼加載此數據。
根據錯誤消息,您似乎正在使用異步API。 您可以將其用於高性能插入,但是您需要控制同時處理多少個請求(所謂的進行中請求)。
這里有幾個方面:
session.executeAsync
來控制進行中的請求數量,例如本例 (不是最佳方法,因為它限制了每個會話的總請求數,而不是與單個主機的連接-這將需要更多的邏輯,尤其是圍繞令牌感知的請求)。 我們使用腳本解決了此類問題。
該腳本通過輸入數據並...
廣告1.對於我們的配置和數據(最多10列,大多數為數字和短文本),我們發現500到1000行是最佳的。
廣告2.我們將等待時間定義為n * t。 其中n是在腳本的單次運行中處理的行數。 t是時間常數,以毫秒為單位。 t的值在很大程度上取決於您的配置。 然而,對我們而言, t = 70 ms足以使過程順利進行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.