Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Среда MongoDB:
Host: 127.0.0.1
Port: 5888
User: mongo_user
Database: mongo_pass
Войдите в YMatrix и используйте mongo_fdw для подключения к MongoDB:
Библиотека клиента MongoDB должна быть установлена на всех хостах кластера.
Сначала создайте расширение mongo_fdw:
mxadmin=# CREATE EXTENSION mongo_fdw;
CREATE EXTENSION
Создайте определение сервера для MongoDB:
mxadmin=# CREATE SERVER mongo_server FOREIGN DATA WRAPPER mongo_fdw OPTIONS (address '127.0.0.1', port '5888');
CREATE SERVER
Создайте отображение пользователя:
mxadmin=# CREATE USER MAPPING FOR postgres
SERVER mongo_server
OPTIONS (username 'mongo_user', password 'mongo_pass');
CREATE USER MAPPING
Создайте внешнюю таблицу:
mxadmin=# CREATE FOREIGN TABLE warehouse
(
_id name,
warehouse_id int,
warehouse_name text,
warehouse_created timestamptz
)
SERVER mongo_server
OPTIONS (database 'db', collection 'warehouse');
CREATE FOREIGN TABLE
После успешного создания внешней таблицы вы можете напрямую запрашивать и изменять данные в коллекции MongoDB warehouse через внешнюю таблицу.
Запрос данных из MongoDB:
db.warehouse.find
(
{
"warehouse_id" : 1
}
).pretty()
{
"_id" : ObjectId("53720b1904864dc1f5a571a0"),
"warehouse_id" : 1,
"warehouse_name" : "UPS",
"warehouse_created" : ISODate("2014-12-12T07:12:10Z")
}
Запрос тех же данных с использованием mongo_fdw в YMatrix:
mxadmin=# SELECT * FROM warehouse WHERE warehouse_id = 1;
_id | warehouse_id | warehouse_name | warehouse_created
--------------------------+--------------+----------------+---------------------------
53720b1904864dc1f5a571a0 | 1 | UPS | 2014-12-12 12:42:10+05:30
(1 row)
Вставка данных во внешнюю таблицу:
mxadmin=# INSERT INTO warehouse VALUES (0, 2, 'Laptop', '2015-11-11T08:13:10Z');
INSERT 0 1