curl — Массовая вставка документов в базу данных couchbase, как?

Я немного экспериментирую с сервером couchbase.

Я попытался прочитать таблицу базы данных mysql, создать документ из каждой строки данных, а затем вставить документ с идентификатором, который я сгенерировал с

uniqid('table_name');

через cUrl, метод POST.

Пока это работает довольно хорошо, пока в сценарий не вставлено около 7050 документов. Затем выдается исключение -> «Нет места в буфере».

До сих пор мне не удавалось это исправить, поэтому я решил собрать 50 строк данных, построить строку json_encode (d) и снова отправить ее через cUrl.

До сих пор это работало, если я не установил идентификатор — но я не могу понять, как установить идентификатор вставленных документов.

На самом деле я пытаюсь отправить свои документы в таком формате:

{"docs": {
"_id": {
"geodata_de_54476f7e6adc57.14196038": {
"table": "geodata_de",
"country": "DE",
"postal_code": "01945",
"place_name": "Lindenau",
"state_name": "Brandenburg",
"state_code": "BB",
"province_name": "",
"province_code": "00",
"community_name": "Oberspreewald-Lausitz",
"community_code": "12066",
"lat": "51.4",
"lng": "13.7333",
"Xco": "3861.1",
"Yco": "943.614",
"Zco": "4979.07"}
},  ...
}

}

но это просто вставляет один документ с вышеуказанным объектом.

Может быть, здесь есть кто-то, кто может указать мне правильное направление.

0

Решение

Я бы использовал Couchbase PHP SDK вставить эти документы вместо использования curl. http://docs.couchbase.com/developer/php-2.0/storing.html

Также для CB вам не нужно устанавливать идентификатор в самом документе. это зависит. Вместо этого я мог бы взглянуть на него, используя идентификатор, который вы используете в своем примере («geodata_de_54476f7e6adc57.14196038»), и указать его в качестве ключа для объекта в Couchbase. Тогда вам не обязательно нужен _id. Ключ в Couchbase может содержать до 250 байт данных, и вы можете сделать его значимым для своего приложения, чтобы вы могли выполнять поиск по ключу очень быстро.

Другой вариант, если вы записали свои документы в файловую систему, вы также можете использовать утилиту cbdocloader, специально предназначенную для массовой загрузки документов. Если вы используете Linux, он находится в / opt / couchbase / bin / tools / cbdocloader.

0

Другие решения

Других решений пока нет …