Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

gpfdist

Загружает файлы данных на сегменты Greengage DB или выгружает файлы данных с сегментов Greengage DB. Подробное описание и примеры использования см. в статье Использование gpfdist.

Синтаксис

gpfdist [ -d <directory> ]
        [ -p <http_port> ]
        [ -P <last_http_port> ]
        [ -l <log_file> ]
        [ -t <timeout> ]
        [ -k <clean_up_timeout> ]
        [ -S ]
        [ -w <time> ]
        [ -v | -V ]
        [ -s ]
        [ -m <max_length> ]
        [ --ssl <certificate_path> ]
        [ --compress ]
        [ --multi_thread <num_threads> ]
        [ -I <input_transformation_name> ]
        [ -O <output_transformation_name> ]
        [ -c <config.yaml> ]

gpfdist -? | --help

gpfdist --version

Описание

gpfdist — это утилита Greengage DB для параллельного распространения файлов. Она используется читающими таблицами и утилитой gpload для загрузки файлов внешних таблиц на все сегменты Greengage DB в параллельном режиме. Также она используется с пишущими таблицами для приема потоков вывода с сегментов Greengage DB в параллельном режиме и записи их в файл.

ПРИМЕЧАНИЕ

Утилиты gpfdist и gpload совместимы только с мажорной версией Greengage DB, в комплекте с которой они поставляются. Например, утилита gpfdist, установленная с Greengage DB 6.x, не может использоваться с Greengage DB 7.x.

Чтобы утилита gpfdist могла использоваться внешней таблицей, выражение LOCATION в ее определении должно указывать источник данных с использованием протокола gpfdist://.

ПРИМЕЧАНИЕ

Если для включения SSL-шифрования указан параметр --ssl, внешнюю таблицу необходимо создавать с использованием протокола gpfdists://.

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

Для читающих таблиц gpfdist анализирует и равномерно распределяет файлы данных между всеми экземплярами сегментов в кластере Greengage DB при выполнении пользователями операции SELECT над внешней таблицей. Для пишущих таблиц gpfdist принимает параллельные потоки вывода от сегментов при выполнении пользователями операции INSERT во внешнюю таблицу и записывает данные в выходной файл.

ПРИМЕЧАНИЕ

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

Для читающих таблиц, если загружаемые файлы сжаты с помощью gzip, bzip2 или zstd (имеют расширения .gz, .bz2 или .zst), gpfdist распаковывает данные во время загрузки (на лету). Для пишущих таблиц gpfdist сжимает данные с помощью gzip, если целевой файл имеет расширение .gz, с помощью bzip2, если целевой файл имеет расширение .bz2, или с помощью zstd, если целевой файл имеет расширение .zst.

ПРИМЕЧАНИЕ

Сжатие не поддерживается для читающих и пишущих таблиц при запуске gpfdist на операционных системах семейства Windows.

При чтении или записи данных с использованием протоколов gpfdist или gpfdists Greengage DB добавляет заголовок HTTP-запроса X-GP-PROTO, указывая, что запрос отправлен Greengage DB. Утилита отклоняет HTTP-запросы, в заголовках которых отсутствует X-GP-PROTO.

Как правило, gpfdist запускают на ETL-серверах, а не на хостах, где установлен Greengage DB. Чтобы установить gpfdist на другом хосте, скопируйте утилиту на этот хост и добавьте gpfdist в переменную окружения PATH.

ПРИМЕЧАНИЕ

При использовании IPv6 всегда заключайте числовой IP-адрес в квадратные скобки.

Параметры

-d <directory>

Каталог, из которого gpfdist загружает файлы для читающих таблиц или в котором создает выходные файлы для пишущих таблиц. Если опция не указана, выбирается каталог, откуда запущена утилита gpfdist.

-p <http_port>

HTTP-порт, который используется для загрузки файлов. По умолчанию используется порт 8080.

-P <last_http_port>

Последний HTTP-порт в диапазоне от http_port до last_http_port включительно, которые gpfdist пытается использовать для загрузки файлов. gpfdist использует первый порт в диапазоне, к которому удалось успешно подключиться.

-l <log_file>

Полный путь и имя лог-файла, в который записываются сообщения стандартного вывода.

-t <timeout>

Устанавливает время, отведенное Greengage DB для установления подключения к процессу gpfdist. По умолчанию — 5 секунд. Допустимые значения: от 2 до 7200 секунд (2 часа). В системах с высокой сетевой нагрузкой может потребоваться увеличение этого значения.

-k <clean_up_timeout>

Задает количество секунд, в течение которых gpfdist ожидает перед очисткой сессии при отсутствии POST-запросов от сегментов. По умолчанию — 300 секунд. Допустимые значения: от 300 до 86400 секунд. При высокой сетевой нагрузке может потребоваться увеличение этого значения.

-m <max_length>

Задает максимально допустимую длину строки данных в байтах. Значение по умолчанию — 32768. Следует использовать, если пользовательские данные содержат очень длинные строки (или если возникает ошибка line too long). Не рекомендуется использовать в других случаях, так как это приводит к увеличению потребления ресурсов. Допустимый диапазон — от 32 КБ до 256 МБ. Для Windows верхний предел составляет 1 МБ.

ПРИМЕЧАНИЕ

Проблемы с памятью могут возникнуть, если задать большое значение для максимальной длины строки и запустить большое количество одновременных подключений gpfdist. Например, установка этого параметра в максимальное значение 256 МБ при 96 одновременных процессах gpfdist требует приблизительно 24 ГБ памяти ((96 + 1) x 256).

-s

Включает упрощенное логирование. Когда этот параметр указан, в лог-файл gpfdist записываются только сообщения уровня WARN и выше. Сообщения уровня INFO не записываются. Если параметр не указан, все сообщения gpfdist пишутся в лог-файл.

Вы можете использовать этот параметр, чтобы уменьшить объем записываемой информации.

-S

Открывает файл для синхронного ввода-вывода с флагом O_SYNC. Любые записи блокируют gpfdist до тех пор, пока данные не будут записаны физически.

-w <time>

Устанавливает количество секунд, которое Greengage DB ждет перед закрытием целевого файла (например, именованного канала). Значение по умолчанию — 0 (без задержки). Максимум — 7200 секунд (2 часа).

Для кластера с несколькими сегментами может возникнуть задержка между сегментами при записи данных в один файл. Укажите время ожидания, чтобы гарантировать полную запись всех данных.

--ssl <certificate_path>

Включает SSL-шифрование данных, передаваемых gpfdist. После запуска gpfdist с параметром --ssl certificate_path единственный способ загрузить данные с этого файлового сервера — использовать протокол gpfdists://.

Каталог, указанный в certificate_path, должен содержать следующие файлы:

  • Файл сертификата сервера (server.crt).

  • Файл закрытого ключа сервера (server.key).

  • Доверенные центры сертификации (root.crt).

    Корневой каталог (/) нельзя указывать в качестве certificate_path.

Более подробную информацию о создании внешних таблиц с помощью протокола GPFDISTS можно получить в разделе Создание внешних таблиц с помощью GPFDIST / GPFDISTS.

--compress

Включает сжатие данных при передаче. При указании этого параметра gpfdist использует алгоритм сжатия Zstandard (zstd). На платформах Windows этот параметр недоступен.

--multi_thread <num_threads>

Задает максимальное количество потоков, которое gpfdist использует для параллельной передачи данных. При указании этого параметра gpfdist автоматически выполняет параллельное сжатие данных. Максимальное количество потоков — 256. На платформах Windows этот параметр недоступен.

-I <input_transformation_name>

Устанавливает одну из входных трансформаций, описанных в файле конфигурации трансформации (-c), в качестве трансформации по умолчанию. Выбранная трансформация применяется ко всем записываемым файлам. Не используется, если трансформация указана на уровне таблицы. По умолчанию трансформация не применяется.

Более подробную информацию можно получить в разделе Загрузка с помощью gpfdist.

-O <output_transformation_name>

Устанавливает одну из выходных трансформаций, описанных в файле конфигурации трансформации (-c), в качестве трансформации по умолчанию. Выбранная трансформация применяется ко всем записываемым файлам. Не используется, если трансформация указана на уровне таблицы. По умолчанию трансформация не применяется.

Более подробную информацию можно получить в разделе Загрузка с помощью gpfdist.

-c <config.yaml>

Определяет правила gpfdist для выбора трансформации данных при загрузке или выгрузке. Файл конфигурации gpfdist должен быть в формате YAML 1.1.

В файле конфигурации трансформации может содержаться описание нескольких трансформаций; выбрать трансформацию по умолчанию можно с помощью опций gpfdist -I и -O. Опция -c недоступна для операционных систем семейства Windows.

Более подробную информацию можно получить в разделе Файл конфигурации трансформации.

-v

Включает подробный вывод с сообщениями о ходе выполнения и статусе.

-V

Включает максимально подробный вывод со всеми сообщениями, генерируемыми утилитой.

-?

Выводит справочную информацию.

--version

Отображает версию утилиты.

Примечания

Параметр конфигурации сервера verify_gpfdists_cert определяет, включена ли проверка SSL-сертификата при взаимодействии Greengage DB с утилитой gpfdist для чтения или записи внешних данных. Вы можете установить значение в false, чтобы отключить проверку при тестировании внешних таблиц Greengage DB с gpfdist. Если значение false, игнорируются следующие SSL-проверки:

  • Самоподписанный SSL-сертификат gpfdist не считается доверенным для Greengage DB.

  • Имя хоста в SSL-сертификате не совпадает с именем хоста, на котором запущен gpfdist.

ВНИМАНИЕ

Отключение проверки SSL-сертификата создает риск безопасности, так как SSL-сертификат gpfdists не проверяется.

Вы можете задать параметр конфигурации сервера gpfdist_retry_timeout, чтобы указать время ожидания Greengage DB перед возвратом ошибки, если сервер gpfdist не отвечает при попытке записи данных. Значение по умолчанию — 300 секунд.

Если gpfdist зависает без активности чтения или записи, можно настроить генерацию дампа ядра при следующем зависании для помощи в отладке. Для этого задайте в переменной среды GPFDIST_WATCHDOG_TIMER количество секунд бездействия, после которого процесс gpfdist будет принудительно завершен. Когда переменная установлена и gpfdist зависает, утилита останавливается по истечении указанного времени, создает дамп ядра и записывает информацию в лог-файл.

Пример установки переменной среды в Linux, чтобы gpfdist завершался после 300 секунд бездействия:

$ export GPFDIST_WATCHDOG_TIMER=300

При включенном сжатии gpfdist передает больший объем данных, сохраняя низкую нагрузку на сеть. Однако сжатие требует значительных ресурсов процессора и может снизить скорость передачи. Использование многопоточности уменьшает общее время сжатия, что обеспечивает более быструю передачу данных при сохранении низкой сетевой нагрузки и высокой скорости.

См. также