Диагностика и устранение неисправностей узла ODBC
Сообщения об ошибках в ODBC
Если при выборе источника данных ODBC вы получаете сообщение с текстом "Ошибка ODBC", свяжитесь с технической поддержкой компании Мегапьютер. Либо попробуйте изменить значения таймаутов ODBC в настройках сервера PolyAnalyst.
В этом случае также можно изменить реакцию PolyAnalyst на определенные сообщения об ошибках, что описывается ниже.
Настройка реакции PolyAnalyst на ошибки базы данных при доступе к базам данных через ODBC
По умолчанию сервер PolyAnalyst настроен так, что он будет продолжать импорт данных при возникновении некоторых ошибок, сообщаемых базой данных при использовании соединения ODBC. Базы данных могут создавать сообщения о тысячах видов ошибок. Драйверы ODBC также могут сообщать о многих типах ошибок, некоторые из которых могут приходить от базы данных, а некоторые – от самого драйвера. Некоторые ошибки являются значимыми, но другие ошибки по сути являются лишь предупреждениями. Конечно, это зависит от вашей цели и от данных, которые вы пытаетесь импортировать. Например, ошибка может относиться к точности числовой колонки (например, к количеству цифр после запятой). Каждая база сохраняет такие данные, как числовые значения, по-разному. Когда драйвер ODBC получает доступ к этим данным, значения могут изменяться. Каждый драйвер несколько видоизменяет данные. Например, драйвер может поддерживать только шесть цифр после запятой в числовых значениях, хотя сама база данных поддерживает двадцать, и при передаче данных на экране может отобразиться ошибка или предупреждение о том, что данные изменились. Потенциально это может привести к снижению качества данных в ходе импорта. Как правило, пользователи стараются избегать подобных ситуаций. Очевиден тот факт, что использование неточных данных в ходе анализа может привести к ошибочным результатам, и пользователи должны знать о возможном искажении данных. Однако следует отметить, что некоторые сообщения об ошибках менее важны, чем другие. В каждой системе (базе данных, драйвере ODBC, PolyAnalyst) действует собственная политика определения важности сообщений об ошибках. Если вы опасаетесь некорректного импорта данных и намерены проверять каждую ошибку, сообщаемую базой данных или драйвером ODBC, вы можете настроить PolyAnalyst так, чтобы выполнение узлов ODBC или Экспорт в ODBC останавливалось при возникновении ошибки.
Чтобы настроить остановку обработки данных в случае возникновения ошибки ODBC:
-
Откройте Административный клиент.
-
В меню Действия выберите Настройки сервера. Появится окно Настройки.
-
В списке разделов слева выберите раздел Подключение к данным, затем выберите ODBC/JDBC.
-
Снимите галочку с опции Пропускать определенные ошибки JDBC/ODBC.
-
Нажмите OK.
Если вы обнаружите, что импортировать данные из базы данных через ODBC при такой настройке стало неудобно, вы всегда можете вернуться в данный раздел настроек и включить опцию заново.
Драйвер ODBC недоступен в Windows
Если вы не видите соответствующий драйвер базы данных в списке (после нажатия на кнопку Выбрать драйвер в Мастере создания источника данных), то, скорее всего, драйвер не установлен на компьютере. Выйдите из Мастера создания источника данных, найдите и установите соответствующий драйвер для своей базы данных.
Каждый разработчик базы данных имеет свою политику предоставления доступа к установочным файлам драйвера ODBC. Драйверы базы данных ODBC, как правило, можно загрузить из сети и установить без всяких проблем. При этом может понадобиться перезагрузка компьютера. Вам может потребоваться помощь системного администратора вашей компании. Для получения дополнительной информации обратитесь к документации по базе данных или вебсайту разработчика базы данных, либо свяжитесь с технической поддержкой компании Мегапьютер для получения консультации о том, какой драйвер необходимо установить. В некоторых случаях разработчики базы данных могут предложить вам купить драйвер.
Драйвер Microsoft Access ODBC недоступен
При импорте файлов Microsoft Access может выясниться, что ODBC-драйвера для Microsoft Access не установлены на сервере. В таком случае импорт не будет выполнен. Обратитесь к администратору с просьбой установить соответствующие драйвера на сервере или изменить серверную настройку Платформа драйвера ODBC/MS Access и переключиться на 32/64-битную платформу. Затем повторите операцию импорта.
Источник данных ODBC Windows не отображается в PolyAnalyst
Если вы не видите в списке свой источник данных ODBC, убедитесь, что вы настроили его на нужном компьютере. Помните, что источник данных должен быть создан на компьютере, на котором работает сервер PolyAnalyst, он должен быть системным (а не пользовательским) DSN.
Проблемы импорта через MySQL
Для импорта данных из MySQL PolyAnalyst использует распространенный протокол ODBC. Импорт данных из MySQL требует установки драйвера ODBC MySQL.
В случае с драйвером ODBC MySQL может возникнуть следующая системная ошибка. Драйвер возвращает все значения булевых колонок (BIT) как ложные. В результате, если в таблице MySQL имеются поля BIT, данные импортируются некорректно.
Решение 1: Использование запроса SQL для изменения типа данных
При настройке узла ODBC, вместо загрузки всей таблицы введите запрос SQL, который будет загружать все колонки и записи из соответствующей таблицы. Исправьте колонки BIT, преобразовав их в данные другого типа в SQL. Ниже приводится пример запроса SQL, позволяющего преобразовать данные одной колонки:
Решение 2: Выбор данных строкового типа
Импортируйте булевые колонки как строки. Для этого:
-
Выберите таблицу на первой вкладке в настройках узла.
-
Перейдите на вкладку Настройки колонки
-
Для каждой колонки измените тип данных на строки. После обновления предварительного просмотра колонка будет отображаться как пустая, но на самом деле в каждой колонке будет содержаться значение.
-
Выполните узел ODBC.
-
Добавьте узел Производные колонки.
-
Соедините узлы Производные колонки и ODBC.
-
Для каждой колонки создайте новую колонку с выражением, похожим на len(mycolumn)>0
-
При этом генерируется истинное или ложное значение для новой колонки на основе количества символов в исходных колонках.
-
Добавьте узел Фильтрация колонок (или Модификация колонок).
-
Соедините узлы Производные колонки и Фильтрация колонок.
-
Настройте узел Фильтрация колонок для удаления исходных колонок. Вы получите корректно сохраненную таблицу с соответствующими булевскими колонками.
Дополнительные комментарии
PolyAnalyst не может исправить подобную ошибку только для MySQL в связи с тем, что ODBC API имеет универсальный характер. Вам нужно будет повторять эти шаги каждый раз при импорте булевских колонок из базы данных MySQL до тех пор, пока MySQL не выпустит улучшенную версию драйвера базы данных ODBC.
Диагностика и устранение ошибок синтаксиса SQL
Как правило, компания Мегапьютер не оказывает своим клиентам помощь в написании SQL-запросов. Исключение составляют случаи, когда клиенты подписывают с компанией Мегапьютер договор о консультационных услугах. PolyAnalyst не проверяет правильность синтаксиса SQL. PolyAnalyst извлекает именно те данные, которые отвечают условиям запроса SQL, который вы отправили в базу данных. Затем база данных интерпретирует запрос. Если обнаружится, что синтаксис неверен, база данных возвращает сообщение об ошибке. PolyAnalyst не может изменять это сообщение об ошибке, и даже не пытается его интерпретировать. Вместо этого, PolyAnalyst просто сообщает, что при выполнении SQL-запроса произошла ошибка, и отображает ответ базы данных. В случае ошибки никакие записи из базы данных не извлекаются. Если сообщение об ошибке содержит какие-то детали, попробуйте обратиться к документации разработчика базы данных.
Обратите внимание, что некоторые драйверы ODBC разработаны таким образом, что они оценивают SQL-запрос прежде, чем отправить его в базу данных. Сам драйвер может создавать сообщения об ошибке. Возможно, вам потребуется обратиться к документации по драйверу ODBC, поскольку сведений разработчика базы данных может быть недостаточно.
Некоторые базы данных не сообщают системе PolyAnalyst об ошибке синтаксиса SQL, даже если такая ошибка возникает. Вместо этого они просто возвращают пустую таблицу. Вместо того, чтобы решать проблему с запросами SQL на основе сообщения об ошибке, рекомендуется обратиться к журналу диагностики базы данных. Для получения дополнительной информации изучите документацию разработчика базы данных.
В некоторых случаях ваш запрос может и не содержать ошибки, но вы все равно не получите ожидаемых результатов. Например, база данных может не содержать ни одной записи, отвечающей условиям вашего запроса (при этом возвращается пустая таблица), либо запрос может вернуть не те записи, которые вы рассчитывали получить. Возможно, данные, которые вы импортируете, на самом деле хранятся не в том формате, который вам нужен. Попробуйте просмотреть данные из базы, используя собственные инструменты разработчика базы данных, если таковые имеются. Вы также можете создать SQL-запрос, используя инструменты самой базы данных, если таковые имеются.