Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Ingest content with Elastic connectors ›Self-managed connectors

Учебник по самонастраиваемому коннектору PostgreSQL

В этом руководстве вы пройдете процесс создания автономного коннектора для источника данных PostgreSQL. Вы будете использовать рабочий процесс автономного коннектора в интерфейсе Kibana. Это означает, что вы будете развертывать коннектор на собственной инфраструктуре. Для получения дополнительной информации об этом коннекторе обратитесь к справке по коннектору Elastic PostgreSQL.

Вы будете использовать фреймворк коннекторов, чтобы создать коннектор. В этом упражнении вы будете работать как в терминале (или вашем IDE), так и в интерфейсе Kibana.

Если вы хотите развернуть автономный коннектор для другого источника данных, используйте это руководство как шаблон. Обратитесь к списку доступных автономных коннекторов.

Хотите быстро начать тестирование автономного коннектора с помощью Docker Compose? Обратитесь к этому файлу README в репозитории elastic/connectors для получения дополнительной информации.

Предварительные требования

Предварительные требования Elastic

Сначала убедитесь, что вы удовлетворяете предварительным требованиям к автономным коннекторам.

Предварительные требования PostgreSQL

Вам необходимо:

  • Версия PostgreSQL 11+.
  • Таблицы должны принадлежать пользователю PostgreSQL.
  • Требуются привилегии базы данных для индексации всех таблиц базы данных.

Вы должны включить запись времени коммита транзакций PostgreSQL. В противном случае все данные будут индексироваться при каждом синхронизации. По умолчанию track_commit_timestamp является off.

Включите это, выполнив следующую команду в командной строке сервера PostgreSQL:

ALTER SYSTEM SET track_commit_timestamp = on;

Затем перезапустите сервер PostgreSQL.

Шаги

Для завершения этого руководства вам необходимо выполнить следующие шаги:

  1. Создать индекс Elasticsearch
  2. Настроить коннектор
  3. Запустить службу коннектора
  4. Синхронизировать источник данных PostgreSQL

Создать индекс Elasticsearch

Коннекторы Elastic позволяют создавать индексируемые, только для чтения копии ваших источников данных в Elasticsearch. Первым шагом в настройке вашего автономного коннектора является создание индекса.

В интерфейсе Kibana перейдите к Поиск > Контент > Индексы Elasticsearch из главного меню или воспользуйтесь полем глобального поиска.

Создайте новый индекс коннектора:

  1. В разделе Выберите метод загрузки выберите Коннектор.
  2. Выберите PostgreSQL из списка коннекторов.
  3. Назовите свой индекс и, необязательно, измените анализатор языка, чтобы он соответствовал естественному языку вашего источника данных. (Имя индекса, которое вы укажете, автоматически префиксруется с search-.)
  4. Сохраните изменения.

Индекс создан и готов к настройке.

Сбор данных Elastic

Прежде чем вы сможете настроить коннектор, вам необходимо собрать некоторые данные о вашей развертке Elastic:

  • Конечная точка Elasticsearch.

    • Если вы являетесь пользователем Elastic Cloud, найдите конечную точку Elasticsearch вашей развертки в интерфейсе Cloud в разделе Облако > Развертывания > <ваша-развертка> > Elasticsearch.
    • Если вы запускаете свою развертку Elastic и службу коннектора в Docker, по умолчанию конечная точка Elasticsearch — http://host.docker.internal:9200.
  • Ключ API. Вам понадобится этот ключ для настройки коннектора. Используйте существующий ключ или создайте новый.
  • ID коннектора. Уникальный идентификатор вашего коннектора автоматически генерируется при создании коннектора. Найдите его в интерфейсе Kibana.

Настройка коннектора

После создания индекса вы можете настроить коннектор. Вы будете проходить этот процесс в интерфейсе.

  1. Измените имя и описание коннектора. Это поможет вашей команде идентифицировать коннектор.
  2. Скопируйте и измените код службы коннектора. Для этого примера мы будем использовать фреймворк Python. Следуйте этим шагам:

    • Скопируйте или создайте вилку этого репозитория локально с помощью следующей команды: git clone https://github.com/elastic/connectors.
    • Откройте файл конфигурации config.yml в вашем редакторе по выбору.
    • Замените значения для host, api_key и connector_id на значения, которые вы собрали ранее. Используйте значение service_type postgresql для этого коннектора.

      Развернуть чтобы увидеть пример файла config.yml

      Замените значения для host, api_key и connector_id на свои собственные значения. Используйте значение service_type postgresql для этого коннектора.

      elasticsearch:
        host: <https://<my-elastic-deployment.es.us-west2.gcp.elastic-cloud.com>> # Your Elasticsearch endpoint
        api_key: '<YOUR-API-KEY>' # Your top-level Elasticsearch API key
      ...
      connectors:
        -
          connector_id: "<YOUR-CONNECTOR-ID>"
          api_key: "'<YOUR-API-KEY>" # Your scoped connector index API key (optional). If not provided, the top-level API key is used.
          service_type: "postgresql"
      
      
      
      # Self-managed connector settings
      connector_id: '<YOUR-CONNECTOR-ID>' # Your connector ID
      service_type: 'postgresql'  # The service type for your connector
      
      sources:
        # mongodb: connectors.sources.mongo:MongoDataSource
        # s3: connectors.sources.s3:S3DataSource
        # dir: connectors.sources.directory:DirectoryDataSource
        # mysql: connectors.sources.mysql:MySqlDataSource
        # network_drive: connectors.sources.network_drive:NASDataSource
        # google_cloud_storage: connectors.sources.google_cloud_storage:GoogleCloudStorageDataSource
        # azure_blob_storage: connectors.sources.azure_blob_storage:AzureBlobStorageDataSource
        postgresql: connectors.sources.postgresql:PostgreSQLDataSource
        # oracle: connectors.sources.oracle:OracleDataSource
        # sharepoint: connectors.sources.sharepoint:SharepointDataSource
        # mssql: connectors.sources.mssql:MSSQLDataSource
        # jira: connectors.sources.jira:JiraDataSource

Запустить службу коннектора

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

В вашем терминале или IDE:

  1. cd в корневой каталог вашей вилки connectors.
  2. Запустите следующую команду: make run.

Служба коннектора должна быть запущена. В интерфейсе вы увидите сообщение о том, что коннектор успешно подключился к Elasticsearch.

Здесь мы работаем локально. В производственных установках вы развернете службу коннектора на собственной инфраструктуре. Если вы предпочитаете использовать Docker, обратитесь к документации репозитория для инструкций.

Синхронизировать источник данных PostgreSQL

Введите данные о вашем источнике данных PostgreSQL

После настройки коннектора вы можете использовать его для индексирования вашего источника данных.

Теперь вы можете ввести данные о вашем экземпляре PostgreSQL в интерфейсе Kibana.

Введите следующую информацию:

  • Хост. Адрес хоста сервера для вашего экземпляра PostgreSQL.
  • Порт. Номер порта для вашего экземпляра PostgreSQL.
  • Имя пользователя. Имя пользователя PostgreSQL.
  • Пароль. Пароль для этого пользователя.
  • База данных. Название базы данных PostgreSQL.
  • Список таблиц, разделенных запятыми. * получит данные из всех таблиц в настроенной базе данных.

После ввода всех этих данных выберите Сохранить конфигурацию.

Запустить синхронизацию

Если вы перейдете на вкладку Обзор в интерфейсе Kibana, вы сможете увидеть статус загрузки коннектора. Теперь он должен измениться на Настроен.

Пришло время запустить синхронизацию, выбрав кнопку Синхронизация.

Если вы перейдете в окно терминала, где вы запускаете службу коннектора, вы увидите вывод, подобный следующему:

[FMWK][13:22:26][INFO] Fetcher <create: 499 update: 0 |delete: 0>
[FMWK][13:22:26][INF0] Fetcher <create: 599 update: 0 |delete: 0>
[FMWK][13:22:26][INFO] Fetcher <create: 699 update: 0 |delete: 0>
...
[FMWK][23:22:28][INF0] [oRXQwYYBLhXTs-qYpJ9i] Sync done: 3864 indexed, 0 deleted.
(27 seconds)

Это подтверждает, что коннектор получил записи из вашей таблицы (таблиц) PostgreSQL и преобразовал их в документы в вашем индексе Elasticsearch.

Проверьте ваши документы Elasticsearch на вкладке Документы в интерфейсе Kibana.

Если вы удовлетворены результатами, установите график периодической синхронизации на вкладке Планирование. Это гарантирует, что ваши индексируемые данные в Elasticsearch всегда актуальны с изменениями в вашем источнике данных PostgreSQL.

Узнать больше

  • Обзор самостоятельно управляемых коннекторов и фреймворков
  • Репозиторий фреймворка коннекторов Elastic
  • Справочник по коннектору Elastic PostgreSQL
  • Обзор всех коннекторов Elastic
  • Управляемые коннекторы Elastic в Elastic Cloud

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/es-postgresql-connector-client-tutorial.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API