好了,問題是,我需要做的塞的AQL控制檯上聚集查詢。具體而言,我想對一組中的記錄進行平均,並計算一組中的所有記錄。我不知道如何甚至開始...塞式AQL COUNT(*)SQL腳本模擬
0
A
回答
0
aql> SHOW SETS
會給你在你的對象集的數量,與列n_objects
然後,您可以使用n_objects
值來計算你的平均
0
類似SQL的聚合函數在Aerospike中使用stream UDFs實現,這些編寫在Lua中。流UDF是一個map-reduce操作,該操作應用於從掃描或secondary index查詢返回的記錄流。
流UDF模塊(讓我們假設它包含在文件aggr_funcs.lua
中)將通過返回1
爲它看到的每個記錄實現COUNT(*),並減少到一個聚合的整數值。
local function one(record)
return 1
end
local function sum(v1, v2)
return v1 + v2
end
function count_star(stream)
return stream : map(one) : reduce(sum)
end
你會register the UDF module與服務器,然後調用它。這裏有一個如何你在使用Python aerospike.Query.apply
做一個例子:
import aerospike
from aerospike import predicates as p
config = {'hosts': [('127.0.0.1', 3000)],
'lua': {'system_path':'/usr/local/aerospike/lua/',
'user_path':'/usr/local/aerospike/usr-lua/'}}
client = aerospike.client(config).connect()
query = client.query('test', 'demo')
#query.where(p.between('my_val', 1, 9)) optionally use a WHERE predicate
query.apply('aggr_funcs', 'count_star')
num_records = query.results()
client.close()
但是,你應該得到metrics如使用info command對象的數量。塞具有所使用的命令行工具,如asinfo的AMC儀表盤,以及語言的客戶端的info方法的信息子系統。
要獲取的對象的數量集羣中:
asinfo -h 33.33.33.91 -v 'objects'
23773
您也可以在特定的命名空間中的對象的數量。我有一個雙節點羣集,我會詢問每個人:
asinfo -h 33.33.33.91 -v 'namespace/test'
type=device;objects=23773;sub-objects=0;master-objects=12274;master-sub-objects=0;prole-objects=11499;prole-sub-objects=0;expired-objects=0;evicted-objects=0;set-deleted-objects=0;nsup-cycle-duration=0;nsup-cycle-sleep-pct=0;used-bytes-memory=2139672;data-used-bytes-memory=618200;index-used-bytes-memory=1521472;sindex-used-bytes-memory=0;free-pct-memory=99;max-void-time=202176396;non-expirable-objects=0;current-time=201744558;stop-writes=false;hwm-breached=false;available-bin-names=32765;used-bytes-disk=6085888;free-pct-disk=99;available_pct=99;memory-size=2147483648;high-water-disk-pct=50;high-water-memory-pct=60;evict-tenths-pct=5;evict-hist-buckets=10000;stop-writes-pct=90;cold-start-evict-ttl=4294967295;repl-factor=2;default-ttl=432000;max-ttl=0;conflict-resolution-policy=generation;single-bin=false;ldt-enabled=false;ldt-page-size=8192;enable-xdr=false;sets-enable-xdr=true;ns-forward-xdr-writes=false;allow-nonxdr-writes=true;allow-xdr-writes=true;disallow-null-setname=false;total-bytes-memory=2147483648;read-consistency-level-override=off;write-commit-level-override=off;migrate-order=5;migrate-sleep=1;migrate-tx-partitions-initial=4096;migrate-tx-partitions-remaining=0;migrate-rx-partitions-initial=4096;migrate-rx-partitions-remaining=0;migrate-tx-partitions-imbalance=0;total-bytes-disk=8589934592;defrag-lwm-pct=50;defrag-queue-min=0;defrag-sleep=1000;defrag-startup-minimum=10;flush-max-ms=1000;fsync-max-sec=0;max-write-cache=67108864;min-avail-pct=5;post-write-queue=0;data-in-memory=true;file=/opt/aerospike/data/test.dat;filesize=8589934592;writethreads=1;writecache=67108864;obj-size-hist-max=100
asinfo -h 33.33.33.92 -v 'namespace/test'
type=device;objects=23773;sub-objects=0;master-objects=11499;master-sub-objects=0;prole-objects=12274;prole-sub-objects=0;expired-objects=0;evicted-objects=0;set-deleted-objects=0;nsup-cycle-duration=0;nsup-cycle-sleep-pct=0;used-bytes-memory=2139672;data-used-bytes-memory=618200;index-used-bytes-memory=1521472;sindex-used-bytes-memory=0;free-pct-memory=99;max-void-time=202176396;non-expirable-objects=0;current-time=201744578;stop-writes=false;hwm-breached=false;available-bin-names=32765;used-bytes-disk=6085888;free-pct-disk=99;available_pct=99;memory-size=2147483648;high-water-disk-pct=50;high-water-memory-pct=60;evict-tenths-pct=5;evict-hist-buckets=10000;stop-writes-pct=90;cold-start-evict-ttl=4294967295;repl-factor=2;default-ttl=432000;max-ttl=0;conflict-resolution-policy=generation;single-bin=false;ldt-enabled=false;ldt-page-size=8192;enable-xdr=false;sets-enable-xdr=true;ns-forward-xdr-writes=false;allow-nonxdr-writes=true;allow-xdr-writes=true;disallow-null-setname=false;total-bytes-memory=2147483648;read-consistency-level-override=off;write-commit-level-override=off;migrate-order=5;migrate-sleep=1;migrate-tx-partitions-initial=4096;migrate-tx-partitions-remaining=0;migrate-rx-partitions-initial=4096;migrate-rx-partitions-remaining=0;migrate-tx-partitions-imbalance=0;total-bytes-disk=8589934592;defrag-lwm-pct=50;defrag-queue-min=0;defrag-sleep=1000;defrag-startup-minimum=10;flush-max-ms=1000;fsync-max-sec=0;max-write-cache=67108864;min-avail-pct=5;post-write-queue=0;data-in-memory=true;file=/opt/aerospike/data/test.dat;filesize=8589934592;writethreads=1;writecache=67108864;obj-size-hist-max=100
注意的master-objects
在每個節點的值一起加起來羣集範圍objects
值。
要獲取對象的數量在一組:
asinfo -h 33.33.33.91 -v 'sets/test/demo'
n_objects=23771:n-bytes-memory=618046:stop-writes-count=0:set-enable-xdr=use-default:disable-eviction=false:set-delete=false;
相關問題
- 1. 入門使用Lua和塞AQL
- 2. 以非阻塞模式從cronjob執行PHP腳本
- 3. 用虛擬腳本模擬sendmail
- 4. 從sql腳本中提取模式
- 5. 基本T-SQL COUNT
- 6. SQL COUNT COUNT
- 7. AutoIt模擬新的腳本行
- 8. 使用非阻塞腳本
- 9. Apple腳本模擬鍵盤事件
- 10. 模擬Ctrl-C到python腳本
- 11. 將OpenSSL BIO從阻塞模式更改爲非阻塞模式
- 12. Sql select count with count
- 13. Sql select count with count
- 14. SQL腳本格式化
- 15. 模擬一個崩潰的bash腳本
- 16. 通過腳本運行模擬器
- 17. 如何模擬CGI腳本的隊列?
- 18. 在ns2中執行腳本模擬
- 19. 腳本來模擬Guest Mode的
- 20. Perl單線程模擬awk腳本
- 21. 用於windows的shell腳本模擬器
- 22. 如何在阻塞send()時模擬WSAEWOULDBLOCK?
- 23. 塞班belle模擬器瀏覽器版本
- 24. 在AQL
- 25. Shell腳本模式識別
- 26. bash腳本。模式匹配
- 27. shell腳本模式匹配?
- 28. Bash腳本模式匹配
- 29. DatagramChannel,阻塞模式和cpu
- 30. NIO非阻塞模式