Обработка данных
Для тюнинга производительности запросов в приложении предусмотрены профили исполнения.
Настройка профиля делается прямым INSERT или UPDATE в таблице meta.ref_execution_profile:
name- идентификатор профиляjob_options- опции профиля в формате jsonauthor- кто сделал запись (техническое поле)create_dttm- дата создания записи (техническое поле)updated_dttm- дата изменения записи (техническое поле)
Как высчитываются итоговые параметры исполнения с учетом дефолтных можно почитать в разделе "Execute job" документации Product Map, ниже приведена выжимка по основным:
async_factor- максимальное количество SQL запросов в параллель в рамках одного исполненияjobparams- раздел с перемеными, влияющий на логику работы узлаstorage_key- значения ключа дистрибуции по-умолчанию, если движок данных это поддерживает (default: [])create_index- создавать ли индекс по бизнес ключу, после создания таблицы (default: False)analyze- запускать ли сбор статистик после создания таблицы (default: True)
advanced- параметры сесии (SET опции) для различных СУБД, задаются как список строк, без ведущего SETgreenplum- любые SET опции greenplum, например"greenplum": ["max_statement_mem=4000MB", "gp_default_storage_options=orientation=column"]postgresql- любые SET опции postgresql, например"postgresql": ["idle_in_transaction_session_timeout=5min" ]
Дополнительные параметры
В данном разделе приведены дополнительные настройки для различных движков баз данных, позволяющие оптимизировать загрузку данных из внешних таблиц.
В режиме быстрой загрузки создается т.н. внешняя таблица, то есть данные физически не перемещаются в базу данных а остаются в S3, а в базе создается таблица, ссылающаяся на эти данные.
Создание внешней таблицы осуществляется узлом import.
Конфигурации такого режима отличаются для разных движков.
Greenplum
Для быстрой загрузки данных к кластере должен быть установлен и сконфигурирован Greenplum Platform Extension Framework (PXF).
Для создания внешней таблицы должно быть известно имя PXF профиля указывающего на S3 хранилище, из которого осуществляется загрузка.
Для создания внешней таблицы в узле import необходимо задать следующие параметры:
{
"type": "import", # быстрое чтение (создание внешней таблицы)
"body": {
"path": "s3://<file name>", # путь на s3
"columns": { # cписок стобцов в файле с типами
"column name": "fs_type",
"column name": "fs_type",
...
}
},
"options": {
"format": "csv" | "parquet", # file format
"delimiter": '<delimiter char>' # default: ',' только для csv
},
"params": {
"pxf_profile": '<имя pxf профиля>'
}
}
Задание кодировки и создание первичных ключей во внешних таблицах не поддерживается.
Кодировка предполагается utf8.
Spark
Для быстрой загрузки файлов кластер Spark должен быть настроен для работы с выбранным S3 провайдером, пример настроек.
Для создания внешней таблицы в узле import необходимо задать следующие параметры:
{
"type": "import", # быстрое чтение (создание внешней таблицы)
"body": {
"path": "s3://<file name>", # путь на s3
"columns": { # cписок стобцов в файле с типами
"column name": "fs_type",
"column name": "fs_type",
...
}
},
"options": {
"format": "csv", # file format
"delimiter": '<delimiter char>', # default: ','
"encoding": '<encoding>', # default: 'utf8'
},
"params": {
"s3a_mode": true,
}
}
На данный момент поддерживаются только csv файлы.