База данных IBM Db2

Сводка

Пункт Описание
Состояние выпуска Общая доступность
Продукция Эксель
Power BI (семантические модели)
Power BI (потоки данных)
Fabric (Dataflow 2-го поколения)
Power Apps (потоки данных)
Dynamics 365 Customer Insights
Поддерживаемые типы проверки подлинности Основной
База данных
Виндоус
Справочная документация по функциям база данных DB2.

Заметка

Некоторые возможности могут присутствовать в одном продукте, но не другие из-за расписаний развертывания и возможностей для конкретного узла.

Необходимые условия

По умолчанию соединитель базы данных IBM Db2 использует драйвер Майкрософт для подключения к данным. Если вы решили использовать драйвер IBM в расширенных параметрах в Power Query Desktop, необходимо сначала установить драйвер IBM Db2 для .NET на компьютере, используемом для подключения к данным. Имя этого драйвера изменяется со времени, поэтому обязательно установите драйвер IBM Db2, который работает с .NET. Инструкции по загрузке, установке и настройке драйвера IBM Db2 для .NET см. в статье Скачивание начальных клиентов и драйверов версии 11.5. Дополнительные сведения: ограничения драйвераубедитесь, что драйвер IBM Db2 установлен

Поддерживаемые возможности

  • Импорт
  • DirectQuery (семантические модели Power BI)
  • Дополнительные параметры
    • Драйвер (IBM или Microsoft)
    • Время ожидания команды в минутах
    • Коллекция пакетов
    • Инструкция SQL
    • Включите столбцы связей
    • Навигация с помощью полной иерархии

Подключение к базе данных IBM Db2 из Power Query Desktop

Чтобы сделать подключение, выполните следующие действия.

  1. Выберите опцию IBM Db2 в меню Get Data.

  2. Укажите сервер IBM Db2 для подключения к Server. Если требуется порт, укажите его с помощью формата ServerName:Port, где порт номер порта. Кроме того, введите базу данных IBM Db2, к которой вы хотите получить доступ в Базе данных. В этом примере имя сервера и порт TestIBMDb2server.contoso.com:4000, а доступ к базе данных IBM Db2 осуществляется NORTHWD2.

    Снимок экрана: диалоговое окно подключения к базе данных IBM Db2, в котором вы вводите сведения о подключении.

  3. Если вы подключаетесь из Power BI Desktop, выберите режим подключения к данным: либо Импорт, либо DirectQuery. В остальных примерах действий используется режим подключения к данным импорта. Дополнительные сведения о DirectQuery см. в разделе Использование DirectQuery в Power BI Desktop.

    Заметка

    По умолчанию диалоговое окно базы данных IBM Db2 использует драйвер Майкрософт во время входа. Если вы хотите использовать драйвер IBM, откройте дополнительные параметры и выберите IBM. Для получения дополнительной информации перейдите на Connect с помощью дополнительных параметров.

    Если выбрать DirectQuery в качестве режима подключения к данным, инструкция SQL в расширенных параметрах отключена. DirectQuery в настоящее время не поддерживает отправку запроса вниз поверх собственного запроса базы данных для соединителя IBM Db2.

  4. Выберите ОК.

  5. Если вы впервые подключаетесь к этой базе данных IBM Db2, выберите тип проверки подлинности, который вы хотите использовать, введите учетные данные и нажмите кнопку "Подключить". Дополнительные сведения о проверке подлинности см. в аутентификации с помощью источника данных.

    Снимок экрана: диалоговое окно проверки подлинности, в котором вы вводите учетные данные базы данных IBM Db2.

    По умолчанию Power Query пытается подключиться к базе данных IBM Db2 с помощью зашифрованного подключения. Если Power Query не удается подключиться с помощью зашифрованного подключения, появится диалоговое окно "Не удается подключиться". Чтобы подключиться с помощью незашифрованного подключения, нажмите кнопку ОК.

    Снимок экрана: сообщение о поддержке шифрования, в котором можно выбрать использование незашифрованного подключения.

  6. В навигаторевыберите необходимые данные, а затем выберите Загрузить данные для загрузки данных или Преобразовать данные для преобразования данных.

    Снимок экрана: навигатор, в котором вы выбираете необходимые данные из базы данных.

Подключение к базе данных IBM Db2 из Power Query Online

Чтобы сделать подключение, выполните следующие действия.

  1. Выберите параметр базы данных IBM Db2 на странице Power Query - Подключение к источнику данных.

  2. Укажите сервер IBM Db2 для подключения к Server. Если требуется порт, укажите его с помощью формата ServerName:Port, где порт номер порта. Кроме того, введите базу данных IBM Db2, к которой вы хотите получить доступ в Базе данных. В этом примере имя сервера и порт TestIBMDb2server.contoso.com:4000, а доступ к базе данных IBM Db2 осуществляется NORTHWD2

  3. Выберите имя локального шлюза данных.

    Заметка

    Для этого соединителя необходимо выбрать локальный шлюз данных, независимо от того, находится ли база данных IBM Db2 в локальной сети или в сети.

  4. Если вы впервые подключаетесь к этой базе данных IBM Db2, выберите тип учетных данных для подключения в типе проверки подлинности. Выберите "Базовый", если вы планируете использовать учетную запись, созданную в базе данных IBM Db2 вместо проверки подлинности Windows.

  5. Введите свои учетные данные.

  6. Выберите Использовать зашифрованное подключение, если вы хотите использовать зашифрованное подключение, или снимите флажок, если вы хотите использовать незашифрованное подключение.

    Снимок экрана: параметры подключения к базе данных IBM Db2 с заданными параметрами.

  7. Нажмите кнопку Далее, чтобы продолжить.

  8. В Навигаторевыберите необходимые данные, а затем выберите Преобразовать данные для преобразования данных в редакторе Power Query.

    Снимок экрана: онлайн-навигатор, в котором вы выбираете данные, которые нужно преобразовать.

Подключение с помощью дополнительных параметров

Power Query предоставляет набор дополнительных параметров, которые можно добавить в запрос при необходимости.

Снимок экрана: дополнительные параметры, включенные в диалоговое окно подключения к базе данных IBM Db2.

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

Расширенный параметр Описание
Водитель Определяет, какой драйвер используется для подключения к базе данных IBM Db2. Выбор — IBM и Windows (по умолчанию). При выборе драйвера IBM необходимо сначала убедиться, что на компьютере установлен драйвер IBM Db2 для .NET. Этот параметр доступен только в Power Query Desktop. Дополнительные сведения: убедитесь, что драйвер IBM Db2 установлен
Время ожидания команды в минутах Если подключение длится дольше 10 минут (время ожидания по умолчанию), можно ввести другое значение в минутах, чтобы сохранить подключение открытым дольше.
Коллекция пакетов Указывает, где искать пакеты. Пакеты — это структуры управления, используемые Db2 при обработке инструкции SQL, и автоматически создаются при необходимости. По умолчанию этот параметр использует значение NULLID. Доступно только при использовании драйвера Майкрософт. Дополнительные сведения: пакеты DB2 : основные понятия, примеры и распространенные проблемы
Инструкция SQL Для получения информации обратитесь к Импортирование данных из базы данных с помощью встроенного запроса.
Включите столбцы связей Если установлен флажок, содержит столбцы, которые могут иметь связи с другими таблицами. Если это поле снято, эти столбцы не отображаются.
Навигация с помощью полной иерархии Если флажок отмечен, навигатор отображает полную иерархию таблиц в базе данных, к которой вы подключаетесь. При очистке навигатор отображает только таблицы, столбцы и строки которых содержат данные.

Выбрав необходимые дополнительные параметры, нажмите кнопку "ОК " в Power Query Desktop или "Далее " в Power Query Online, чтобы подключиться к базе данных IBM Db2.

Ограничения и рекомендации

Ограничения драйвера

Драйвер Майкрософт — это тот же драйвер, который используется в Сервере интеграции узлов Майкрософт, который называется "поставщиком ADO.NET для DB2". Драйвер IBM — это драйвер IBM Db/2, который работает с .NET. Имя этого драйвера изменяется от времени, поэтому убедитесь, что он работает с .NET, который отличается от драйверов IBM Db2, работающих с OLE/DB, ODBC или JDBC.

Вы можете использовать драйвер Майкрософт (по умолчанию) или драйвер IBM, если вы используете Power Query Desktop. В настоящее время Power Query Online использует только драйвер Майкрософт. Каждый драйвер имеет свои ограничения.

  • Драйвер Майкрософт
    • Поддерживает протокол TLS только с выпуском Power BI Desktop за декабрь 2024 г. или более поздних версий.
  • Драйвер IBM
    • Соединитель базы данных IBM Db2 при использовании драйвера IBM Db2 для .NET не работает с системами Mainframe или IBM i
    • Не поддерживает DirectQuery

Корпорация Майкрософт предоставляет поддержку драйвера Майкрософт, но не для драйвера IBM. Однако если ваш ИТ-отдел уже установил и настроил его на ваших компьютерах, ваш ИТ-отдел должен знать, как устранить проблемы с функционированием драйвера IBM.

Собственные запросы не поддерживаются в DirectQuery

При выборе DirectQuery в качестве режима подключения к данным в Power Query Desktop текстовое поле инструкции SQL в дополнительных параметрах отключено. Поле отключено, так как соединитель IBM Db2 Power Query в настоящее время не поддерживает запрос вниз поверх собственного запроса базы данных.

Устранение неполадок

Убедитесь, что установлен драйвер IBM Db2

Если вы решили использовать драйвер IBM Db2 для Power Query Desktop, сначала необходимо скачать, установить и настроить драйвер на компьютере. Чтобы обеспечить установку драйвера IBM Db2, выполните следующие действия.

  1. Откройте Windows PowerShell на компьютере.

  2. Введите следующую команду:

    [System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv

  3. В открывшемся диалоговом окне должно появиться следующее имя в столбце InvariantName:

    IBM.Data.DB2

Если это имя находится в столбце InvariantName , драйвер IBM Db2 установлен и настроен правильно.

Коды ошибок SQLCODE -805 и SQLCODE -551

При попытке подключиться к базе данных IBM Db2 иногда возникает общая ошибка SQLCODE -805, которая указывает, что пакет не найден в NULLID или другой коллекции (указанной в конфигурации подключения пакета Power Query). Вы также можете столкнуться с распространенной ошибкой SQLCODE -551, что указывает на то, что вы не можете создавать пакеты из-за отсутствия полномочий для привязки пакетов.

Как правило, сначала идет SQLCODE -805, за которым следует SQLCODE -551, но отображается только второе исключение. В действительности проблема одинакова. У вас нет полномочий привязывать пакет к NULLID или указанной коллекции.

Как правило, большинство администраторов IBM Db2 не предоставляют полномочия на связывание пакета пользователям — особенно конечным пользователям в среде IBM z/OS (мейнфрейм) или IBM i (AS/400). Db2 в Linux, Unix или Windows отличаются в том, что учетные записи пользователей имеют привилегии привязки по умолчанию, которые создают пакет MSCS001 (стабильность курсоров) в собственной коллекции пользователя (имя = имя пользователя).

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

При подключении к IBM Db2 для z/OS администратор Db2 может выполнить следующие действия.

  1. Предоставьте полномочия на привязку нового пакета к пользователю с помощью одной из следующих команд:

    • ПРЕДОСТАВИТЬ BINDADD ON SYSTEM TO <authorization_name>
    • GRANT PACKADM ON <COLLECTION_NAME> TO <AUTHORIZATION_NAME>
  2. С помощью Power Query подключитесь к базе данных IBM Db2 и получите список схем, таблиц и представлений. Соединитель базы данных IBM Db2 Power Query автоматически создаёт пакет NULLID.MSCS001, а затем предоставляет права на выполнение пакета всем пользователям.

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

    • ОТЗЫВ BINDADD ИЗ <AUTHORIZATION_NAME>
    • ОТМЕНИТЬ PACKADM ДЛЯ <collection_name> ОТ <authorization_name>

При подключении к IBM Db2 для Linux, Unix или Windows администратор Db2 может выполнить следующие действия.

  1. ПРЕДОСТАВИТЬ ПРАВА BINDADD НА БАЗЕ ДАННЫХ ПОЛЬЗОВАТЕЛЮ <authorization_name>.

  2. С помощью Power Query подключитесь к базе данных IBM Db2 и получите список схем, таблиц и представлений. Соединитель IBM Db2 Power Query автоматически создаёт пакет NULLID.MSCS001 и предоставляет право на выполнение пакета всем пользователям.

  3. ОТМЕНИТЬ BINDADD НА БАЗЕ ДАННЫХ ОТ ПОЛЬЗОВАТЕЛЯ <authorization_name>.

  4. ПРЕДОСТАВИТЬ ВЫПОЛНЕНИЕ НА ПАКЕТ <collection.package> ПОЛЬЗОВАТЕЛЮ <authorization_name>.

При подключении к IBM Db2 для i администратор Db2 может выполнить следующие действия.

  1. WRKOBJ QSYS/CRTSQLPKG. Введите "2", чтобы изменить права доступа к объекту.

  2. Измените право с *EXCLUDE на PUBLIC или <authorization_name>.

  3. После этого измените права доступа на *EXCLUDE.

SQLCODE код ошибки -360

При попытке подключиться к базе данных IBM Db2 может возникнуть следующая ошибка:

Microsoft Db2 Client: The host resource could not be found. Check that the Initial Catalog value matches the host resource name. SQLSTATE=HY000 SQLCODE=-360

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

Код ошибки SQLCODE -1336

The specified host could not be found.

Дважды проверьте имя и убедитесь, что хост доступен. Например, используйте ping в командной строке, чтобы попытаться связаться с сервером и убедиться, что IP-адрес правильный, или используйте telnet для подключения к серверу.

SQLCODE код ошибки -1037

Host is reachable, but is not responding on the specified port.

Порт указывается в конце имени сервера, разделенного двоеточием. Если опущено, используется значение по умолчанию 50000.

Чтобы найти порт, который используется Db2 в системах Linux, Unix и Windows, выполните следующую команду:

db2 get dbm cfg | findstr SVCENAME

Ищите в выводе запись SVCENAME (и SSL_SVCENAME для подключений с шифрованием TLS). Если это значение равно числу, это порт. В противном случае сверьте значение с таблицей "службы" системы. Обычно эту таблицу можно найти по адресу /etc/services или по адресу c:\windows\system32\drivers\etc\services для Windows.

На следующем снимке экрана показаны выходные данные этой команды в Linux/Unix.

Снимок экрана: выходные данные команды db2 в Linux и Unix.

На следующем снимке экрана показаны выходные данные этой команды в Windows.

Снимок экрана: выходные данные команды db2 в Windows.

Определение имени базы данных

Чтобы определить имя базы данных, используемое:

  1. В IBM i запустите DSPRDBDIRE.

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

  2. Одна из записей содержит удаленное расположение *LOCAL. Используйте эту запись.

Определение номера порта

Драйвер Майкрософт подключается к базе данных с помощью протокола DRDA. Порт по умолчанию для DRDA — порт 446. Сначала попробуйте использовать это значение.

Чтобы найти определенный порт, на котором выполняется служба DRDA, выполните следующие действия.

  1. Запустите команду IBM i WRKSRVTBLE.

  2. Прокрутите вниз, пока не найдете записи для DRDA.

    Снимок экрана с записями таблицы услуг и отображаемыми записями DRDA.

  3. Чтобы убедиться, что служба DRDA готова и прослушивает указанный порт, запустите NETSTAT.

    Снимок экрана: параметры NETSTAT для выбора.

  4. Выберите вариант 3 (для IPv4) или вариант 6 (для IPv6).

  5. Нажмите клавишу F14, чтобы вывести список номеров портов вместо имен, и прокрутите страницу, пока не найдете этот порт. Он должен иметь запись с состоянием "Прослушивание".

    Снимок экрана: состояние подключения IPv4 с состоянием прослушивания.