Настройка узла Экспорт в ODBC

Окно настроек узла Экспорт в ODBC содержит следующие вкладки: Выбор таблицы, Типы данных, SQL-выражение и Общие. В некоторых случаях достаточно настроить только первую вкладку. Вкладка Общие позволяет вам настроить имя и описание узла.

odbc export wizard.rus
Настройка вкладки Выбор таблицы назначения

Вкладка Выбор таблицы содержит опции для настройки соединения с базой данных ODBC. Данная вкладка позволяет выбрать источник данных ODBC и настроить процесс записи данных в этот источник.

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

odbc export connect.rus

Введите имя пользователя и пароль для установки соединения. Нажмите OK, чтобы вернуться к основному окну настройки. Нажмите Отмена, если хотите закрыть окно, не сохранив изменений.

Базы данных, показанные в выпадающем меню База данных, должны быть настроены администратором баз данных Windows ODBC на том же компьютере, на котором установлен и запущен сервер PolyAnalyst.
Когда имя пользователя и/или пароль содержат символы, которые недопустимы в синтаксисе строки соединения ODBC, пользователю необходимо вручную заключить их в фигурные скобки {}. ODBC-драйвера некоторых баз данных не распознают фигурные скобки, поэтому соединение не будет установлено, даже если нативная библиотека позволяет установить соединение, используя введенные вами учетные данные. В таком случае попробуйте упростить логин и пароль так, чтобы они отвечали общим правилам, согласно которым допускается использование только буквенно-цифровых символов ANSI и подчеркивания.

После того, как вы вернетесь к основному окну настройки, источник данных будет отображаться в поле слева от кнопки Установить соединение:

odbc export established.rus

Следующий шаг – выбор способа именования таблицы. Выпадающее меню Соглашение об именовании таблиц позволяет выбрать один из нескольких вариантов. Различия в реализации ODBC-драйверов обуславливают различия в политике именования таблиц. Выберите нужный способ именования в соответствии с выбранным источником данных.

odbc export tablename.rus

Далее PolyAnalyst устанавливает соединение с выбранной базой данных и сканирует ее. Проверить правильность выбора способа именования таблиц можно, убедившись в том, что выпадающее меню Таблица не является пустым. Это будет означать, что база данных содержит таблицы.

Подключите опцию Перевести все имена в верхний регистр, чтобы в выражении SQL использовались только символы верхнего регистра. Этого требуют некоторые типы ODBC-драйверов.

В некоторых случаях также заполняется поле Владелец. Обычно это имя базы данных или отдельного раздела источника данных. Если ODBC-драйвер не поддерживает данное поле, оно не заполняется. Меню Владелец будет содержать несколько вариантов только в том случае, если источник данных имеет нескольких владельцев. Если же владелец один, он выбирается автоматически. Выбор владельца иногда требуется для того, чтобы можно было составить перечень таблиц, входящих в базу данных.

Настройка режима записи данных

При экспорте таблицы в базу данных вы можете обновить имеющуюся таблицу путем добавления к ней новых строк, замены существующих строк новыми, полностью заменить таблицу, созданную ранее, или создать новую.

Если вы планируете создать новую таблицу, введите ее имя в поле Таблица.

odbc export table name.rus

В таком случае узел проигнорирует выбранный в поле ниже режим записи данных и создаст новую таблицу в базе данных.

Если вы выберете одну из существующих в базе таблиц, ее можно обновить, указав один из способов записи данных в меню Режим записи:

  • опция Добавить данные дает команду PolyAnalyst добавить новые строки к существующей таблице данных;

  • опция Удалить строки удаляет все существующие строки и заполняет их новыми данными;

  • опция Удалить таблицу удаляет существующую таблицу и создает новую с тем же именем.

Использование блочных операций

При экспорте во внешнюю базу данные передаются из системы PolyAnalyst в базу данных и сохраняются одним из указанных способов, например, путем вставки новых записей в ранее созданную таблицу. Очевидно, что экспорт будет выполнен быстрее, если экспортировать не отдельные записи, а целый блок. Чтобы использовать эту возможность, включите опцию Блочная вставка.

Количество записей, которые по умолчанию можно включить в один такой блок, составляет 10 000. Это должно быть целое число больше 1. Данное число зависит от архитектуры системы PolyAnalyst: важно знать, запущен ли сервер PolyAnalyst на отдельном компьютере, а не вместе с базой данных, и др. Значение, используемое по умолчанию, оптимально в большинстве случаев. Значение по умолчанию, а также другие настройки могут быть изменены либо для конкретного проекта, либо для всех проектов (см. далее).

Если количество записей для выполнения блочной операции превышает общее количество записей, вся таблица записывается в базу данных в ходе одной операции.

Скорость обработки большого количества записей зависит от версии ODBC-драйвера. В настоящий момент блочные операции поддерживаются, например, Сервером MS SQL 2005 и старше и DB2-11. Если опция Блочная вставка включена, используется выражение SQLBulkOperations() вместо INSERT. В качестве аргумента используется размер буфера (количество строк, которое необходимо вставить в таблицу). Чем оно больше, тем быстрее завершится операция. Однако некоторые ODBC-драйвера не позволяют позволяют копировать большое количество записей в буфер.
Выбор способа коммита

Используйте меню Способ коммита, чтобы управлять процессом экспорта данных во внешнюю базу данных. Здесь доступны следующие опции:

  • Вся таблица – операция выполняется быстро, но в случае, если узел не завершит выполнение, экспортируемые данные не будут сохранены в базе данных.

  • Каждая строка – операция выполняется медленно, но ранее экспортированные данные сохраняются в базе данных, даже если узел не завершит выполнение.

  • Согласно настройке сервера – используется параметр, заданный в настройках сервера.

Если вы работаете с существующей в базе данных таблицей, достаточно настроить только первую вкладку. Нажмите Выполнить, чтобы экспортировать данные.

PolyAnalyst проверит, действительно ли в выбранной базе данных имеется таблица с указанным именем и с теми же колонками, что и экспортируемая таблица. Если такая таблица не будет найдена, экспорт не будет выполнен. В противном случае операция будет успешно завершена.

Если вы планируете создать новую таблицу в базе данных, необходимо настроить вкладки Типы данных и SQL-выражение.

О работе с вкладками Типы данных и SQL-выражение

Если вам нужно создать новую таблицу в базе данных, прежде чем экспортировать в нее таблицу PolyAnalyst (т.е. база данных пока еще не содержит таблицы с нужным именем, или она была удалена с помощью опции Удалить таблицу), узел проверяет наличие SQL-выражения на третьей вкладке.

Если выражение задано, оно выполняется, и в базе данных создается новая таблица, в которую затем экспортируется таблица PolyAnalyst. В противном случае пользователь должен составить SQL-выражение. Это можно сделать вручную на вкладке SQL-выражение, или настроив вкладку Типы данных. Во втором случае SQL-выражение генерируется автоматически.

Вкладка Типы данных инициализируется после того, как вы соедините узел Экспорт в ODBC с родительской таблицей данных, предназначенной для экспорта:

odbc export data.rus

Обратите внимание на то, что на этой вкладке поля Определение размера, Резерв и Размер могут быть отредактированы только для строковых колонок и колонок со строковыми идентификаторами.

PolyAnalyst отправляет запрос в систему управления базы данных (с помощью ODBC API), чтобы определить, каким типам данных SQL оптимально соответствуют внутренние типы данных системы PolyAnalyst. По умолчанию длина строковых значений и строковых ID составляет 100 символов. Для всех колонок по умолчанию выставлено значение NULL.

Если в колонке Определение размера не выставлен флажок для строковых колонок и строковых ID, поле Размер будет отображать количество символов, которое будет сохранено в этих колонках в базе данных. В противном случае (т.е. если включено определение размера), PA считывает все значения этих колонок в исходной таблице и находит строку с максимальным количеством символов. Эта длина, к которой добавляется дополнительный резерв символов в процентах из соседнего поля Резерв, и будет определять, сколько символов будет сохранено в значениях выбранных колонок в ходе экспорта:

odbc export data changed.rus

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

Поле NULL на вкладке Типы данных позволяет управлять экспортом отсутствующих значений.

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

При выборе опции "NOT NULL" и при наличии отсутствующих значений в колонке экспорт не будет выполнен.

Если выбрана опция "AUTO", PolyAnalyst считывает целую колонку исходной таблицы и пытается подобрать наиболее подходящий сценарий. Если при этом обнаружится, что в колонке имеется хотя бы одно отсутствующее значение, эта колонка экспортируется в базу данных как колонка со свойством "NULL", в противном случае используется сценарий "NOT NULL".

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

Переключитесь на вкладку SQL-выражение, чтобы просмотреть выражение:

odbc export expression.rus

Данное выражение вы можете редактировать вручную.

Иногда необходимо изменить SQL-запрос для соответствия правилам синтаксиса используемой базы данных.

Обратите внимание на то, что после нажатия на кнопку Обработать, SQL-выражение изменяется в соответствии с настройками вкладки Типы данных. Если получившееся выражение вас не устраивает, нажмите правой кнопкой мыши в любом месте в поле выражения и выберите опцию Отменить выражение:

odbc export expression undo.rus

Также можно нажать Отмена. При этом окно настроек узла закроется. Если после отмены выражения вы захотите его восстановить, выберите опцию Вернуть выражение в контекстном меню. Обратите внимание на то, что опции Отменить/Вернуть выражение могут быть заблокированы. Это происходит в том случае, если вы не нажали на кнопку Обработать на предыдущей вкладке и не внесли изменения в выражение.

Опции Отменить и Вернуть в верхней части контекстного меню могут использоваться для отмены и восстановления всех изменений в SQL-выражении, внесенных вручную.

При использовании драйвера Microsoft Excel ODBC страницы 1, 2 и 3 не будут отображены по умолчанию в списке таблиц. Microsoft Excel рассматривает эти таблицы как системные. В отличие от других версий ODBC, Microsoft Excel не позволяет добавлять записи в существующую таблицу, если это одна из таких страниц по умолчанию. Вам нужно будет создать новую таблицу, т.е. новую страницу в журнале. При последующей настройке узла Экспорт в ODBC вы сможете выбрать эту новую страницу и добавить в нее новые записи.
Если при экспорте данных в базу Oracle возникает ошибка "ORA-01461", включите опцию Дополнить строки пробелами в разделе Настройки узлов по умолчанию для данного узла.

Обратите внимание, что при экспорте в базу данных Vertica необходимо учитывать следующие особенности:

  • Vertica поддерживает 8-байтные числа с плавающей точкой в формате IEEE-754.

  • Числа с плавающей точкой поддерживают 15 цифр, имеют переменную точность и представляют числовые значения приблизительно. Некоторые значения не могут быть точно представлены и хранятся в виде приближений.

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

  • Сравнение двух чисел с плавающей точкой может сработать не так, как ожидается.