Установка ADB ClickHouse Connector

Для установки ADB ClickHouse Connector выполните следующие шаги:

  1. Убедитесь, что сервисы PXF и ADB ClickHouse Connector установлены в кластере ADB. Информацию о добавлении сервисов в кластер можно получить в статье Добавление сервисов.

  2. Добавьте новый кастомный профиль с именем Tkh_clickhouse:text в конфигурационный файл PXF /var/lib/pxf/conf/pxf-profiles.xml на хосте Master. Для редактирования файла можно воспользоваться командой vi или vim:

    $ sudo vi /var/lib/pxf/conf/pxf-profiles.xml

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

    <profiles>
        <profile>
            <name>Tkh_clickhouse:text</name>
            <description>Clickhouse</description>
            <plugins>
                <accessor>io.arenadata.tkh.pxf.TkhFdwAccessor</accessor>
                <resolver>io.arenadata.tkh.pxf.TkhResolver</resolver>
            </plugins>
        </profile>
    </profiles>
    ПРИМЕЧАНИЕ

    Директория, в которой расположены конфигурационные файлы PXF, определяется переменной окружения $PXF_BASE. Значение переменной по умолчанию — /var/lib/pxf. В общем случае путь может быть иным.

  3. Подключитесь к Master-серверу ADB под пользователем gpadmin, который создается по умолчанию. Все команды, приведенные на шагах ниже, запускаются исключительно на хосте Master:

    $ sudo su - gpadmin
  4. Для синхронизации конфигурационных файлов PXF на всех хостах кластера ADB выполните команду:

    $ pxf cluster sync

    Результат:

    Syncing PXF configuration files from master host to standby master host and 2 segment hosts...
    PXF configs synced successfully on 3 out of 3 hosts
  5. Перезапустите сервис PXF:

    $ pxf cluster restart

    Результат:

    Restarting PXF on master host, standby master host, and 2 segment hosts...
    PXF restarted successfully on 4 out of 4 hosts
  6. Подключитесь к базе данных через psql (или иную клиентскую программу):

    $ psql adb
  7. Убедитесь, что расширения gptkh, pxf_fdw, tkh_fdw успешно добавлены. Для этого можно использовать команду psql \dx:

    \dx

    Результат содержит расширения gptkh, pxf_fdw, tkh_fdw:

                                              List of installed extensions
           Name        | Version |   Schema   |                             Description
    -------------------+---------+------------+---------------------------------------------------------------------
     arenadata_toolkit | 1.0     | public     | extension is used for manipulation of objects created by adb-bundle
     dblink            | 1.1     | public     | connect to other PostgreSQL databases from within a database
     diskquota         | 2.2     | public     | Disk Quota Main Program
     gptkh             | 0.14    | public     | gptkh
     kadb_fdw          | 0.16    | kadb       | Kafka-ADB foreign data wrapper
     plpgsql           | 1.0     | pg_catalog | PL/pgSQL procedural language
     postgis           | 2.5.4   | public     | PostGIS geometry, geography, and raster spatial types and functions
     pxf               | 2.0     | public     | Extension which allows to access unmanaged data
     pxf_fdw           | 1.0     | public     | PXF Foreign Data Wrapper for Greenplum
     tkh_fdw           | 1.0     | public     | ClickHouse Foreign Data Wrapper for Greenplum
    (10 rows)
  8. Также можно проверить наличие новой обертки внешних данных (foreign data wrapper) tkh_fdw, обратившись к таблице системного каталога pg_catalog.pg_foreign_data_wrapper:

    SELECT * FROM pg_catalog.pg_foreign_data_wrapper;

    Результат:

        fdwname    | fdwowner | fdwhandler | fdwvalidator | fdwacl |                                         fdwoptions
    ---------------+----------+------------+--------------+--------+--------------------------------------------------------------------------------------------
     dblink_fdw    |       10 |          0 |        16480 |        |
     kadb_fdw      |       10 |      20308 |        20310 |        | {"mpp_execute=all segments",k_initial_offset=0,k_automatic_offsets=true,k_latency_ms=2000}
     jdbc_pxf_fdw  |       10 |      20377 |        20378 |        | {protocol=jdbc,"mpp_execute=all segments"}
     hdfs_pxf_fdw  |       10 |      20377 |        20378 |        | {protocol=hdfs,"mpp_execute=all segments"}
     hive_pxf_fdw  |       10 |      20377 |        20378 |        | {protocol=hive,"mpp_execute=all segments"}
     hbase_pxf_fdw |       10 |      20377 |        20378 |        | {protocol=hbase,"mpp_execute=all segments"}
     s3_pxf_fdw    |       10 |      20377 |        20378 |        | {protocol=s3,"mpp_execute=all segments"}
     gs_pxf_fdw    |       10 |      20377 |        20378 |        | {protocol=gs,"mpp_execute=all segments"}
     adl_pxf_fdw   |       10 |      20377 |        20378 |        | {protocol=adl,"mpp_execute=all segments"}
     wasbs_pxf_fdw |       10 |      20377 |        20378 |        | {protocol=wasbs,"mpp_execute=all segments"}
     file_pxf_fdw  |       10 |      20377 |        20378 |        | {protocol=file,"mpp_execute=all segments"}
     tkh_fdw       |       10 |      20392 |        20391 |        | {protocol=tkh_clickhouse,"mpp_execute=all segments",format=text}
    (12 rows)
Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней