Вступление
OrientDB - это многомодельная база данных NoSQL с поддержкой баз данных графов и документов. Это приложение Java и может работать в любой операционной системе. Это также полностью ACID-жалоба с поддержкой репликации нескольких мастеров. Он разработан одноименной компанией с выпуском Enterprise и Community Edition.
В этой статье мы будем использовать базу данныхGratefulDeadConcerts, чтобы продемонстрировать, как экспортировать и импортировать базу данных OrientDB. Эта база данных поставляется с каждой установкой OrientDB, поэтому вам не нужно создавать новую.
Предпосылки
Для завершения урока вам понадобится следующее:
-
Ubuntu 14.04 Droplet (см.initial setup guide)
-
Последняя версия OrientDB, установленная с использованиемHow To Install and Configure OrientDB on Ubuntu 14.04
Если вы все эти вещи на месте, давайте начнем.
[[step-1 -—- export-an-existing-orientdb-database]] == Шаг 1. Экспорт существующей базы данных OrientDB
Чтобы импортировать базу данных OrientDB, вы должны сначала экспортировать базу данных для импорта. На этом этапе мы экспортируем базу данных, которую нам нужно импортировать.
Если OrientDB не запущен, запустите его:
sudo service orientdb start
Если вы не уверены, запущен он или нет, вы всегда можете проверить его статус:
sudo service orientdb status
Затем подключитесь к серверу с помощью консоли OrientDB:
sudo -u orientdb /opt/orientdb/bin/console.sh
Выход должен быть:
OutputOrientDB console v.2.1.3 (build UNKNOWN@r; 2015-10-04 10:56:30+0000) www.orientdb.com
Type 'help' to display all the supported commands.
Installing extensions for GREMLIN language v.2.6.0
orientdb>
Подключитесь к базе данных, которую вы хотите экспортировать. Здесь мы подключаемся к базе данныхGratefulDeadConcerts, используя пользователя базы данных по умолчаниюadmin и его парольadmin:
connect plocal:/opt/orientdb/databases/GratefulDeadConcerts admin admin
Вы должны увидеть результат вроде этого:
OutputConnecting to database [plocal:/opt/orientdb/databases/GratefulDeadConcerts] with user 'admin'...OK
orientdb {db=GratefulDeadConcerts}>
Кроме того, вы также можете подключиться к базе данных, используя удаленный режим, который позволяет нескольким пользователям получать доступ к одной и той же базе данных.
connect remote:127.0.0.1/GratefulDeadConcerts admin admin
Выходные данные соединения должны быть такими:
OutputDisconnecting from the database [null]...OK
Connecting to database [remote:127.0.0.1/GratefulDeadConcerts] with user 'admin'...OK
orientdb {db=GratefulDeadConcerts}>
Теперь экспортируйте базу данных. Командаexport
экспортирует текущую базу данных в сжатый gzip-файл JSON. В этом примере мы экспортируем его в каталог базы данных OrientDB/opt/orientdb/databases
:
export database /opt/orientdb/databases/GratefulDeadConcerts.export
Полный вывод команды экспорта для целевой базы данных:
OutputExporting current database to: database /opt/orientdb/databases/GratefulDeadConcerts.export in GZipped JSON format ...
Started export of database 'GratefulDeadConcerts' to /opt/orientdb/databases/GratefulDeadConcerts.export.gz...
Exporting database info...OK
Exporting clusters...OK (15 clusters)
Exporting schema...OK (14 classes)
Exporting records...
- Cluster 'internal' (id=0)...OK (records=3/3)
- Cluster 'index' (id=1)...OK (records=5/5)
- Cluster 'manindex' (id=2)...OK (records=1/1)
- Cluster 'default' (id=3)...OK (records=0/0)
- Cluster 'orole' (id=4)...OK (records=3/3)
- Cluster 'ouser' (id=5)...OK (records=3/3)
- Cluster 'ofunction' (id=6)...OK (records=0/0)
- Cluster 'oschedule' (id=7)...OK (records=0/0)
- Cluster 'orids' (id=8)...OK (records=0/0)
- Cluster 'v' (id=9).............OK (records=809/809)
- Cluster 'e' (id=10)...OK (records=0/0)
- Cluster 'followed_by' (id=11).............OK (records=7047/7047)
- Cluster 'written_by' (id=12).............OK (records=501/501)
- Cluster 'sung_by' (id=13).............OK (records=501/501)
- Cluster '_studio' (id=14)...OK (records=0/0)
Done. Exported 8873 of total 8873 records
Exporting index info...
- Index OUser.name...OK
- Index dictionary...OK
- Index ORole.name...OK
OK (3 indexes)
Exporting manual indexes content...
- Exporting index dictionary ...OK (entries=0)
OK (1 manual indexes)
Database export completed in 60498ms
Это завершает этап экспорта.
Откройте другой терминал для вашей Droplet и перечислите содержимое каталога базы данных:
ls -lh /opt/orientdb/databases
Вы должны увидеть исходную базу данных плюс сжатый файл для экспорта вашей базы данных:
Outputtotal 164K
drwxr-xr-x 2 orientdb orientdb 4.0K Nov 27 02:36 GratefulDeadConcerts
-rw-r--r-- 1 orientdb orientdb 158K Nov 27 14:19 GratefulDeadConcerts.export.gz
Вернувшись к терминалу с вашей консолью OrientDB, вы можете теперь отключиться от текущей базы данных, набрав:
disconnect
Если успешно отключен, вы должны получить вывод, похожий на:
OutputDisconnecting from the database [GratefulDeadConcerts]...OK
orientdb>
Оставьте соединение с консолью открытым, потому что вы будете использовать его на следующем шаге.
[[step-2 -—- import-database]] == Шаг 2 - Импорт базы данных
На этом шаге мы импортируем базу данных, которую мы экспортировали на шаге 1. По умолчанию импорт базы данных перезаписывает существующие данные в ту, в которую они импортируются. Итак, сначала подключитесь к целевой базе данных. В этом примере мы будем подключаться к базе данных по умолчанию, которую мы использовали в шаге 1.
connect plocal:/opt/orientdb/databases/GratefulDeadConcerts admin admin
Вы также можете подключиться с помощью:
connect remote:127.0.0.1/GratefulDeadConcerts admin admin
Любой вывод должен быть похож на это:
OutputConnecting to database [remote:127.0.0.1/GratefulDeadConcerts] with user 'admin'...OK
orientdb {db=GratefulDeadConcerts}>
Установив соединение, давайте импортируем экспортированный файл:
import database /opt/orientdb/databases/GratefulDeadConcerts.export.gz
В зависимости от количества импортируемых записей это может занять более нескольких минут. Так что откиньтесь на спинку кресла и расслабьтесь или достаньте чашку своей любимой жидкости.
Выходные данные для импорта должны быть (усеченные):
OutputImporting database database /opt/orientdb/databases/GratefulDeadConcerts.export.gz...
Started import of database 'remote:127.0.0.1/GratefulDeadConcerts' from /opt/orientdb/databases/GratefulDeadConcerts.export.gz...
Non merge mode (-merge=false): removing all default non security classes
...
Done. Imported 8,865 records in 915.51 secs
Importing indexes ...
- Index 'OUser.name'...OK
- Index 'dictionary'...OK
- Index 'ORole.name'...OK
Done. Created 3 indexes.
Importing manual index entries...
- Index 'dictionary'...OK (0 entries)
Done. Imported 1 indexes.
Rebuild of stale indexes...
Stale indexes were rebuilt...
Deleting RID Mapping table...OK
Database import completed in 1325943 ms
Теперь вы можете отключиться от базы данных:
disconnect
Выйдите из консоли OrientDB и вернитесь в обычное приглашение оболочки, введитеexit
:
exit
Заключение
Вы только что видели, как экспортировать и импортировать базу данных OrientDB. Обратите внимание, что функция импорта / экспорта не блокирует базу данных в течение всего процесса, поэтому она может получать записи во время процесса. Для получения дополнительной информации по этой теме см.official OrientDB export/import guide.