DATABASE_READER

DATABASE_READER считывает данные из базы данных. Поддерживает подключение к СУБД PostgreSQL, Oracle, MySQL. Подробнее про подключение к базам данных можно прочитать в разделе Соединения с базами данных.

DATABASE_READER считывает данные из базы данных

Порты DATABASE_READER:

Тип портаНомерОбязательныйОписаниеМетаданные
Output0даДля корректных записейЛюбые, но одинаковые на всех подключённых портах
1-nнет

Атрибуты DATABASE_READER:

АтрибутОбязательныйОписаниеВозможные значения
dbConnectionдаИдентификатор соединения с базой данных, которое будет использоваться для доступа к базе данных

<Connection id="conn0" dbURL="postgres://admin:admin@localhost:5432/dev"/>
sqlQueryдаSQL-запрос к базе, определенный в графе.

<attr name="sqlQuery">
<![CDATA[
    select * from table;
]]>
</attr>

Пример. Чтение записей из баз данных.

С помощью DATABASE_READER нужно прочитать данные из разных баз и записать ответы в текстовые файлы.

Решение:

  1. Для чтения данных понадобится три компонента DATABASE_READER и три компонента FLAT_FILE_WRITER - для записи данных в файлы.

  2. Создам подключения к базам postgres, sqlserver через локального клиента и к firebird через odbc. Везде буду подключаться к схеме onebridge, к таблице million_row.

  3. Для создания соединений с базами нужно на панели Outline выбрать в контекстном меню элемента Connection пункт New connection - для создания нового подключения или Link connection - для вставки ссылки на уже описанное в отдельном файле подключение. В редакторе новых соединений выбрать тип подключения и заполнить атрибут URL значениями параметров, необходимых для подключения.

Connection для postgres:

URL = "postgres://user:password@host:port/database;"

Connection для sqlserver:

URL = "sqlserver:server=sbar-dev-db02.sbar.local,port;user=username;password=password;"

Connection для firebird:

URL = "odbc:Driver={Firebird};User=username;Password=password;Database=sbar-dev-db03.sbar.local/3050:/opt/firebird/data/onebrige-dev.fdb;Charset=;Role=;ReadOnly=No;NoWait=No;"
  1. SQL-запрос для чтения данных из базы будет везде примерно одинаковый, его нужно вставить в атрибут sqlQuery внутри редактора каждого из шагов DATABASE_READER:
select BigIntColumn,
    BooleanColumn,
    CharColumn,
    DateColumn,
from onebridge.million_row
order by BigIntColumn
limit 10

Этот запрос считает значения полей BigIntColumn, BooleanColumn, CharColumn, DateColumn из таблицы million_row во внутреннюю память системы.

  1. С помощью метаданных, назначенных ребрам графа, данные будут переданы в FLAT_FILE_WRITER`ы, которые запишут их в текстовые файлы.