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

Итоги

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

Примечание.

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

Необходимые компоненты

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

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

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

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

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

  1. Выберите параметр базы данных IBM Db2 из команды Get Data.

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

    Enter IBM Db2 database connection.

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

    Примечание.

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

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

  4. Нажмите ОК.

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

    Enter your IBM Db2 database credentials.

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

    Unable to connect dialog box

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

    Select the data you require from the database

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

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

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

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

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

    Примечание.

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

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

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

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

    Enter IBM Db2 database online connection.

  7. Выберите Далее для продолжения.

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

    Select the data you want to transform in the Navigator

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

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

Advanced options included in the IBM Db2 database connection dialog box.

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

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

Выбрав необходимые дополнительные параметры, нажмите кнопку "ОК " в 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.
  • Драйвер 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. Предоставьте центру привязки нового пакета к пользователю с помощью одной из следующих команд:

    • GRANT 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 FROM <AUTHORIZATION_NAME>
    • ОТЗЫВ PACKADM ON <COLLECTION_NAME FROM AUTHORIZATION_NAME><>

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

  1. ПРЕДОСТАВЬТЕ ПРИВЯЗКУ К БАЗЕ ДАННЫХ ПОЛЬЗОВАТЕЛЮ <AUTHORIZATION_NAME>.

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

  3. ОТМЕНА ПРИВЯЗКИ BINDADD ON DATABASE FROM USER <AUTHORIZATION_NAME>.

  4. GRANT EXECUTE ON PACKAGE <collection.package> TO USER <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.

Дважды проверка имя и убедитесь, что узел доступен. Например, используйте связь в командной строке, чтобы попытаться связаться с сервером и убедиться, что 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.

Image with output of the db2 command in Linux and Unix

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

Image with output of the db2 command in Windows

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

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

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

    Image showing the output of the Display Relational Database Directory Entries

  2. Одна из записей будет иметь удаленное расположение *LOCAL. Эта запись используется.

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

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

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

  1. Выполните команду WRKSRVTBLEIBM i.

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

    Service Table Entries

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

    DRDA listening

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

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

    IP connection status

Дополнительные сведения