Команды плагина External Data
В документе представлены дополнительные команды для чтения и записи модуля External Data, поставляемый в приложении Dispatcher в виде библиотеки dispatcher-sdk.
readFile
Команда readFile читает любой формат файла, совместимый со Spark.
В таблице, которая будет прочитана, требуется наличие заголовков полей, особенно важно это для csv-формата.
Синтаксис команды
| readFile format=<format> path=<path>
Обязательные параметры:
-
format – формат файла. Возможные значения: parquet, orc, json, csv, avro.
-
path – путь к файлу, который надо прочитать.
Путь задается от папки /PLATFORM/external_data, где PLATFORM – папка, куда установлена WDC.Платформа.
Пример использования
| readFile format=parquet path=FS/openbpm/cases
| stats count by type_processing
writeFile
Команда writeFile записывает любой совместимый со Spark формат файла.
Таблица будет записана вместе с заголовками полей.
Синтаксис команды
| writeFile format=<format> path=<path>
Обязательные параметры:
-
format – формат файла. Возможные значения: parquet, orc, json, csv, avro.
-
path – путь к папке, в которую будут записаны файлы. Одна таблица может быть записана в несколько файлов – по одному на каждую партицию Spark.
Путь задается от папки /PLATFORM/external_data, где PLATFORM – папка, куда установлена WDC.Платформа.
Пример использования
| makeresults count=10
| streamstats count as x
| eval y = x*x
| writeFile format=parquet path=/tables/squares
sqlRead
Команда sqlRead выполняет SQL-запрос к таблице базы данных.
Команда совместима с базами данных: Oracle, Microsoft SQL, PostgreSQL.
Синтаксис команды
| sqlread base=<base> host=<host> user=<user> password=<password> [db=<database>] [table=<table>] [query="<query>"] [numPartitions=<numPartitions>] [partitionColumn=<partitionColumn> lowerBound=<lowerBound> upperBound=<upperBound>] [fetchSize=<fetchSize>]
Обязательные параметры:
-
base – тип базы данных. Возможные значения: oracle, mssql, postgres.
-
host – имя хоста SQL-сервера.
-
user – логин пользователя, осуществляющего подключение.
-
password – пароль пользователя, осуществляющего подключение.
Опциональные параметры:
-
db – имя базы данных – для Microsoft и Postgres.
-
table – таблица JDBC, из которой следует читать данные.
При использовании параметра table в пути чтения можно использовать всё, что допустимо в блоке FROM SQL-запроса. Например, вместо названия таблицы Вы можете использовать подзапрос в скобках.
Важно!
Не допускается указывать параметры table и query одновременно.
-
query – запрос, который будет использоваться для чтения данных в Spark.
При использовании этой опции приняты следующие ограничения:
-
Не допускается указывать одновременно параметры query и table.
-
Не допускается указывать одновременно параметры query и partitionColumn. Если параметр partitionColumn должен быть определён, то подзапрос можно указать с помощью параметра table, а столбцы раздела можно квалифицировать с помощью псевдонима подзапроса, представленного как часть параметра table.
-
-
numPartitions – максимальное количество разделов, которые можно использовать параллельно при чтении таблицы. Кроме того, параметр определяет максимальное количество одновременных подключений JDBC.
-
Группа параметров, описывающих способ разделения таблицы при параллельном чтении из нескольких рабочих процессов:
-
partitionColumn – числовой столбец, дата или отметка времени из рассматриваемой таблицы.
-
lowerBound – нижняя граница для определения шага раздела.
-
upperBound – верхняя граница для определения шага раздела.
Важно!
Параметры lowerBound и upperBound используются только для определения шага раздела, а не для фильтрации строк в таблице.
При использовании этой опции приняты следующие условия:
-
Параметры partitionColumn, lowerBound и upperBound должны быть указаны все, если указан какой-либо из них.
-
Вместе с перечисленными параметрами должен быть указан параметр numPartitions.
-
Не допускается задавать параметры query и partitionColumn одновременно.
Таким образом, все строки в таблице будут разделены и возвращены.
-
-
fetchSize – размер выборки JDBC, который определяет сколько строк следует извлекать за цикл. Это может повысить производительность драйверов JDBC, которые по умолчанию используют малый размер выборки (например, Oracle с 10ю строками).
Значение по умолчанию – 100000 строк.
Пример использования
|sqlRead base=postgres host=localhost user=dispatcher password=P@$$w0rd db=eva query=" SELECT textAnswer.id, dateAnswer.id, textAnswer.sid, dateAnswer.value FROM textAnswer JOIN dateAnswer ON dateAnswer.id=textAnswer.id