Массовый импорт. json файлов в arangodb с python - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть огромная коллекция. json файлов, содержащих сотни или тысячи документов, которые я хочу импортировать в коллекции arangodb. Могу ли я сделать это, используя python, и если ответ «да», может ли кто-нибудь прислать пример того, как это сделать, из списка файлов? то есть:

for i in filelist:
    import i to collection

Я прочитал документацию, но не смог найти ничего похожего на

Ответы [ 2 ]

0 голосов
/ 26 апреля 2020

Итак, после многих проб и ошибок я узнал, что передо мной стоит ответ. Поэтому мне не нужно было импортировать файл. json, мне просто нужно было прочитать его, а затем выполнить массовый импорт документов. Код выглядит так:

a = db.collection('collection_name')
for x in list_of_json_files:
    with open(x,'r') as json_file:
        data = json.load(json_file)
        a.import_bulk(data)

Так что на самом деле все было довольно просто. В моей реализации я собираю файлы. json из нескольких папок и импортирую их в несколько коллекций. Я использую драйвер python -aran go 5.4.0

0 голосов
/ 23 апреля 2020

У меня была такая же проблема. Хотя ваша реализация будет немного отличаться, ответ, который вам нужен (возможно, не тот, который вам нужен), заключается в использовании функции «массового импорта».

Поскольку у ArangoDB нет «официального» * Драйвер 1027 * (о котором я знаю), вам придется просмотреть другие источники, чтобы дать вам хорошее представление о том, как решить эту проблему.

  • Массовый импорт / экспорт HTTP документы предоставляют curl команды, которые могут быть аккуратно переведены в Python веб-запросы. Также см. Раздел о заголовках и значениях .

  • Aran goJS имеет функцию массового импорта , которая работает с массив объектов, поэтому никакой специальной обработки или подготовки не требуется.

Я также использовал инструмент arangoimport , чтобы добиться большого эффекта. Это командная строка, поэтому ее можно контролировать с Python или использовать автономно в скрипте. Для меня ключевым моментом здесь было убедиться, что мои данные были в формате JSONL или "JSON Lines" (каждая строка файла представляет собой автономный объект JSON, без ограничивающего массива или разделителей запятых ).

...