Набор аэроспайков - сброс в JSON (L) - PullRequest
0 голосов
/ 12 июня 2018

Как мне выгрузить set в Aerospike в JSON (разделенный символом новой строки JSON)?

Я пробовал

aql -h 10.0.0.1 --no-config-file --outputmode=json -c "select * fromnamespace.set_name" >> whatever.json

и

(echo "select * from namespace.set_name" && cat) | aql -h 10.0.0.1 --no-config-file --outputmode=json > whatever.txt

, нооба зависают после сброса ~ 25 МБ (по неизвестным причинам).

Редактировать: форматирование.

1 Ответ

0 голосов
/ 14 июня 2018

Короче говоря, я взял длинный путь (написал сценарий):

import aerospike
import json

config = {
    'hosts': [ ('10.0.0.1', 3000) ]
}

try:
    client = aerospike.client(config).connect()
except:
    import sys
    print("rekt lol dump yourself", config['hosts'])
    sys.exit(1)

query = client.query('dmp', 'whatever')
query.select('id', 'not_id', 'not_id_at_all')

with open('whatever.json', 'w') as out:
    def processRecord(arg):
        key, metadata, record = arg
        out.write(json.dumps(record))
        out.write('\n')

    query.foreach(processRecord)
...