回答
刪除一整套可以刪除設置使用
asinfo -v "set-config:context=namespace;id=namespace_name;set=set_name;set-delete=true;"
此鏈接詳細解釋了該組如何刪除
http://www.aerospike.com/docs/operations/manage/sets/#deleting-a-set-in-a-namespace
請注意,您需要重新啓動節點(逐個避免停機),因爲您不會檢索剩餘空間的垃圾箱。
我的意思是Aerospike中箱子的最大限制是32,767。如果您只是刪除並重新創建了多次設置,如果每次創建10000個分檔,則第四次將無法創建超過2,767個分檔,因爲分檔計數器保存在內存中。
如果你重新啓動你的羣集,它將被釋放。
限制在bin _names_上,當然不是實際的bin。 地圖沒有限制。如果您在垃圾箱內使用地圖,則可以使用盡可能多的名稱。 – 2017-03-30 23:36:06
您也可以刪除一組與Java客戶端如下:
(1)使用客戶端 「執行」 的方法,這對所有查詢行施加一個UDF
AerospikeClient.execute(WritePolicy policy, Statement statement, String packageName, String functionName, Value... functionArgs) throws AerospikeException
( 2)定義語句,以包括給定的所有行:
Statement statement = new Statement();
statement.setNamespace("my_namespace");
statement.setSetName("my_set");
(3)指定刪除定記錄一個UDF:
function delete_rec(rec)
aerospike:remove(rec)
end
(4)調用方法:
ExecuteTask task = AerospikeClient.execute(null, statement, "myUdf", "delete_rec")
task.waitTillComplete(timeout);
它是高性能?不清楚,但我的猜測是asinfo
比較好。但是對於測試/調試/設置非常方便。
我建議查看3.12中介紹的新「截斷」功能:http://www.aerospike.com/docs/reference/info#truncate – 2017-03-30 02:37:56
您不能動態地從RDMS中的「drop table」這樣的名稱空間中刪除一個集合。
使用asinfo只有一套裏面懶洋洋地刪除數據下面的命令:
asinfo -v "set-config:context=namespace;id=namespace_name;set=set_name;set-delete=true;"
有一個post關於它的討論塞的網站,我沒有看到這個問題上取得進展呢。
您可以從Aerospike 3.12開始。 – 2017-03-30 02:36:27
@BrianBulkowski酷〜 – 2017-03-30 11:09:40
您不能刪除一個集合,但可以通過掃描所有記錄並逐個刪除,刪除集合中存在的所有記錄。 C#示例代碼,將這樣的伎倆:
AerospikeClient.ScanAll(null, AerospikeNameSpace, category, DeleteAllRecordsCallBack);
這裏DeleteAllRecordsCallBack
是一個回調函數在那裏你可以刪除記錄一個接一個。這個回調函數被所有記錄調用。
private void DeleteAllRecordsCallBack(Key key, Record record)
{
AerospikeClient.Delete(null, key);
}
在我們的生產經驗,特別java deletion utility作品相當不錯,即使沒有近期推出durable deletes。您可以從源構建它,把某處集羣附近,這樣運行的:
java -jar delete-set-1.0.0-jar-with-dependencies.jar -h <aerospike_host> -p 3000 -s <set_to_delete> -n <namespace_name>
在我們的督促環境冷重啓是非常罕見的事件,基本上塞崩潰時。數據流量非常高,因此碎片整理在早期開始,我們甚至沒有殭屍記錄問題。
BTW asinfo
前面提到的方式對我們不起作用。記錄在那裏呆了幾天,所以我們使用delete-set
工具馬上工作。
從2017年3月發佈的Aerospike 3.12開始,數據庫現在支持刪除集合或名稱空間中所有數據的功能。
請參閱下列文件: http://www.aerospike.com/docs/reference/info#truncate
它提供了命令行命令,看起來像: asinfo截斷:命名空間=;設置=; LUT =
也可以從客戶端截斷API,這裏是java文檔: http://www.aerospike.com/apidocs/java/com/aerospike/client/AerospikeClient.html 並向下滾動到「截斷」方法。
請注意,此功能可以選擇時間規格。這允許您刪除記錄,然後開始插入新記錄。隨着時間戳的使用,請確保您的服務器時鐘很好地同步。
還有就是要做到這一點作爲塞式服務器3.12.0版本的新和更好的方式,於2017年月發佈:
asinfo -v "truncate:namespace=namespace_name;set=set_name"
此之前的命令已被棄用,並且只能達到3.12塞式。 1,發佈了2017年4月:
asinfo -v "set-config:context=namespace;id=namespace_name;set=set_name;set-delete=true;"
新的命令是在幾個方面較好:
- 可以b而數據被寫入到該組
- 是足夠的遷移期間上運行它只是一個集羣
我用它在這些條件下的節點(遷移
詳細here
- 1. 命名空間從XSLT中刪除
- 2. XSLT刪除命名空間
- 3. 刪除命名空間
- 4. 如何從PowerShell輸出中刪除屬性命名空間?
- 5. 如何使用XSLT從XML中刪除命名空間
- 6. 如何從輸出xml中刪除命名空間?
- 7. 如何從元素中刪除的命名空間
- 8. 如何列出Citrusleaf/AeroSpike主機的命名空間?
- 9. 如何在多個命名空間中命名空間函數?
- 10. 如何刪除命名空間和一個XML
- 11. 如何從文件名中刪除空白空間
- 12. 刪除命名空間在datacontract
- 13. 嵌套命名空間刪除
- 14. 刪除命名空間前綴
- 15. 如何刪除Zend_Soap中的命名空間?
- 16. 從FxCop代碼分析中排除完整的命名空間?
- 17. 從WebService中刪除名稱空間
- 18. aerospike:刪除集合中的所有記錄
- 19. 使用.runsettings從程序集中排除命名空間
- 20. 從wcf中刪除不必要的xsi和xsd命名空間
- 21. 從soapenv中刪除多餘的XML命名空間:Body
- 22. 從生成的XML在.NET中刪除命名空間
- 23. 從Spyne響應變量中刪除命名空間
- 24. 從不同命名空間的插件類中刪除操作
- 25. 從Savon SOAP請求中刪除命名空間
- 26. 如何從mongodb集合中刪除空字符串?
- 27. 在整個項目中刪除名稱空間的一部分
- 28. 如何從最終刪除空空間
- 29. 如何使用命名空間系統:集合
- 30. 如何從使用C#的XML元素中刪除命名空間
有刪除組的新途徑,在塞式3.12可用的,這裏記載: http://www.aerospike.com/docs/reference/info#truncate – 2017-03-30 02:37:20