Перейти к содержанию

Команды плагина 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
К началу