Base de données IBM Db2

Résumé

Élément Description
État de publication Disponibilité générale
PRODUITS Excel
Power BI (Modèles sémantiques)
Power BI (Dataflows)
Fabric (Dataflow Gen2)
Power Apps (Dataflows)
Dynamics 365 Customer Insights
Types d'authentification pris en charge De base
Base de données
Windows
Documentation de référence sur les fonctions DB2.Database

Remarque

Certaines fonctionnalités peuvent être présentes dans un produit, mais pas dans d'autres en raison de planifications de déploiement et de fonctionnalités spécifiques à l'hôte.

Prérequis

Par défaut, le connecteur de base de données IBM Db2 utilise le pilote Microsoft pour se connecter à vos données. Si vous choisissez d’utiliser le pilote IBM dans les options avancées dans Power Query Desktop, vous devez d’abord installer le pilote IBM Db2 pour .NET sur l’ordinateur utilisé pour se connecter aux données. Le nom de ce pilote change de temps en temps. Veillez donc à installer le pilote IBM Db2 qui fonctionne avec .NET. Pour obtenir des instructions sur le téléchargement, l’installation et la configuration du pilote IBM Db2 pour .NET, accédez à Télécharger les clients et pilotes 11.5 initiaux. Plus d’informations : Limitations du pilote, vérifiez que le pilote IBM Db2 est installé

Fonctionnalités prises en charge

  • Importer
  • DirectQuery (pour les modèles sémantiques Power BI)
  • Options avancées
    • Pilote (IBM ou Microsoft)
    • Délai de commande en minutes
    • Collection package
    • SQL statement
    • Inclure des colonnes de relation
    • Naviguer avec la hiérarchie complète

Se connecter à une base de données IBM Db2 à partir de Power Query Desktop

Pour établir la connexion, effectuez les étapes suivantes :

  1. Sélectionnez l’option base de données IBM Db2 dans Obtenir les données.

  2. Dans Serveur, spécifiez le serveur IBM Db2 auquel se connecter. Si un port est requis, spécifiez-le à l’aide du format ServerName:Port, où port est le numéro de port. Entrez également la base de données IBM Db2 que vous souhaitez accéder dans Base de données. Dans cet exemple, le nom et le port du serveur sont TestIBMDb2server.contoso.com:4000 et la base de données IBM Db2 accessible est NORTHWD2.

    Enter IBM Db2 database connection.

  3. Si vous vous connectez à partir de Power BI Desktop, sélectionnez le mode de Connectivité de données Importer ou DirectQuery. Le reste de ces exemples d’étapes utilisent le mode de connectivité des données d’importation. Pour en savoir plus sur DirectQuery, consultez Utiliser DirectQuery dans Power BI Desktop.

    Remarque

    Par défaut, la boîte de dialogue de base de données IBM Db2 utilise le pilote Microsoft lors de la connexion. Si vous souhaitez utiliser le pilote IBM, ouvrez les options Avancées et sélectionnez IBM. Informations supplémentaires : Se connecter à l’aide d’options avancées

    Si vous sélectionnez DirectQuery comme mode de connectivité des données, l’instruction SQL dans les options avancées est désactivée. DirectQuery ne prend actuellement pas en charge la transmission push de requêtes au-dessus d’une requête de base de données native pour le connecteur IBM Db2.

  4. Cliquez sur OK.

  5. Si vous vous connectez à cette base de données IBM Db2 pour la première fois, sélectionnez le type d’authentification que vous souhaitez utiliser, sélectionnez vos informations d’identification, puis sélectionnez ensuite Se connecter. Pour plus d’informations sur l’authentification, consultez Authentification avec une source de données.

    Enter your IBM Db2 database credentials.

    Par défaut, Power Query tente de se connecter à la base de données IBM Db2 à l’aide d’une connexion chiffrée. Si Power Query ne peut pas se connecter à l’aide d’une connexion chiffrée, une boîte de dialogue « impossible de se connecter » s’affiche. Pour vous connecter à l’aide d’une connexion non chiffrée, sélectionnez OK.

    Unable to connect dialog box

  6. Dans Navigateur, sélectionnez les données dont vous avez besoin, puis Charger pour charger les données, ou Transformer les données pour les transformer.

    Select the data you require from the database

Se connecter à une base de données IBM Db2 à partir de Power Query Online

Pour établir la connexion, effectuez les étapes suivantes :

  1. Sélectionnez l’option base de données IBM Db2 dans la page Power Query - Se connecter à la source de données.

  2. Dans Serveur, spécifiez le serveur IBM Db2 auquel se connecter. Si un port est requis, spécifiez-le à l’aide du format ServerName:Port, où port est le numéro de port. Entrez également la base de données IBM Db2 que vous souhaitez accéder dans Base de données. Dans cet exemple, le nom et le port du serveur sont TestIBMDb2server.contoso.com:4000 et la base de données IBM Db2 accessible est NORTHWD2

  3. Sélectionnez le nom de votre passerelle de données locale.

    Remarque

    Vous devez sélectionner une passerelle de données locale pour ce connecteur, que la base de données IBM Db2 se trouve sur votre réseau local ou en ligne.

  4. Si vous vous connectez à cette base de données IBM Db2 pour la première fois, dans Type d’authentification, sélectionnez le type d’informations d’identification pour la connexion. Choisissez De base si vous envisagez d’utiliser un compte créé dans la base de données IBM Db2 plutôt que l’authentification Windows.

  5. Entrez vos informations d’identification.

  6. Sélectionnez Utiliser une connexion chiffrée si vous souhaitez utiliser une connexion chiffrée ou désactivez l’option si vous souhaitez utiliser une connexion non chiffrée.

    Enter IBM Db2 database online connection.

  7. Sélectionnez Suivant pour continuer.

  8. Dans Navigateur, choisissez les données dont vous avez besoin, puis sélectionnez Transformer les données pour transformer les données dans l’Éditeur Power Query.

    Select the data you want to transform in the Navigator

Se connecter à l’aide d’options avancées

Power Query fournit un ensemble d’options avancées que vous pouvez ajouter à votre requête si nécessaire.

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

Le tableau suivant répertorie toutes les options avancées que vous pouvez définir dans Power Query.

Option avancée Description
Pilote Détermine le pilote utilisé pour se connecter à votre base de données IBM Db2. Les choix sont IBM et Windows (par défaut). Si vous sélectionnez le pilote IBM, vous devez d’abord vérifier que le pilote IBM Db2 pour .NET est installé sur votre ordinateur. Cette option n’est disponible que dans Power Query Desktop. Plus d’informations : vérifiez que le pilote IBM Db2 est installé
Délai de commande en minutes Si votre connexion dure plus de 10 minutes (délai d’expiration par défaut), vous pouvez entrer une autre valeur en minutes pour garder la connexion ouverte plus longtemps.
Collection package Spécifie où rechercher des packages. Les packages sont des structures de contrôle utilisées par Db2 lors du traitement d’une instruction SQL et seront automatiquement créés si nécessaire. Par défaut, cette option utilise la valeur NULLID. Disponible uniquement lors de l’utilisation du pilote Microsoft. Plus d’informations : Packages DB2 : concepts, exemples et problèmes courants
Instruction SQL Pour plus d’informations, consultez Importer des données à partir d’une base de données à l’aide d’une requête de base de données native.
Inclure des colonnes de relation Si cette option est activée, elle inclut des colonnes qui peuvent avoir des relations avec d’autres tables. Si elle est désactivée, vous ne verrez pas ces colonnes.
Naviguer avec la hiérarchie complète Si cette option est activée, le navigateur affiche la hiérarchie complète des tables dans la base de données à laquelle vous vous connectez. Si elle est désactivée, le navigateur affiche uniquement les tables dont les colonnes et les lignes contiennent des données.

Une fois que vous avez sélectionné les options avancées dont vous avez besoin, sélectionnez OK dans Power Query Desktop, ou Suivant dans Power Query Online, pour vous connecter à votre base de données IBM Db2.

Problèmes et limitations

Limitations du pilote

Le pilote Microsoft est le même que celui utilisé dans Microsoft Host Integration Server, appelé « fournisseur ADO.NET pour DB2 ». Le pilote IBM est le pilote IBM Db/2 qui fonctionne avec .NET. Le nom de ce pilote change de temps en temps. Assurez-vous qu’il s’agit de celui qui fonctionne avec .NET, qui est différent des pilotes IBM Db2 qui fonctionnent avec OLE/DB, ODBC ou JDBC.

Vous pouvez choisir d’utiliser le pilote Microsoft (par défaut) ou le pilote IBM si vous utilisez Power Query Desktop. Actuellement, Power Query Online utilise uniquement le pilote Microsoft. Chaque pilote a ses limites.

  • Pilote Microsoft
    • Ne prend pas en charge le protocole TLS (Transport Layer Security)
  • Pilote IBM
    • Le connecteur de base de données IBM Db2, quand vous utilisez le pilote IBM Db2 pour .NET, ne fonctionne pas avec les systèmes Mainframe ou IBM i
    • Ne prend pas en charge DirectQuery

Microsoft prend en charge le pilote Microsoft, mais pas pour le pilote IBM. Toutefois, si votre service informatique l’a déjà configuré et configuré sur vos machines, votre service informatique doit savoir comment dépanner le pilote IBM.

Requêtes natives non prises en charge dans DirectQuery

Lorsque vous sélectionnez DirectQuery comme mode de connectivité des données dans Power Query Desktop, la zone de texte de l’instruction SQL dans les options avancées est désactivée. Elle est désactivée, car le connecteur Power Query IBM Db2 ne prend pas actuellement en charge la transmission push de requêtes au-dessus d’une requête de base de données native.

Dépannage

Vérifier que le pilote IBM Db2 est installé

Si vous choisissez d’utiliser le pilote IBM Db2 pour Power Query Desktop, vous devez d’abord télécharger, installer et configurer le pilote sur votre ordinateur. Pour vous assurer que le pilote IBM Db2 a été installé :

  1. Ouvrez Windows PowerShell sur votre ordinateur.

  2. Entrez la commande suivante :

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

  3. Dans la boîte de dialogue qui s’ouvre, vous devez voir le nom suivant dans la colonne InvariantName :

    IBM.Data.DB2

Si ce nom se trouve dans la colonne InvariantName, le pilote IBM Db2 a été installé et configuré correctement.

Codes d’erreur SQLCODE -805 et SQLCODE -551

Lorsque vous tentez de vous connecter à une base de données IBM Db2, vous pouvez parfois rencontrer l’erreur courante SQLCODE -805, ce qui indique que le package n’est pas trouvé dans la collection NULLID ou une autre collection (spécifiée dans la configuration Connexion de package de Power Query). Vous pouvez également rencontrer l’erreur courante SQLCODE -551, ce qui indique que vous ne pouvez pas créer de packages, car vous n’avez pas d’autorité de liaison de package.

En règle générale, SQLCODE -805 est suivi de SQLCODE -551, mais vous ne verrez que la deuxième exception. En réalité, le problème est le même. Vous n’avez pas l’autorisation de lier le package la collection NULLID ou autre collection spécifiée.

En règle générale, la plupart des administrateurs IBM Db2 ne fournissent pas d’autorité de package de liaison aux utilisateurs finaux, en particulier dans un environnement IBM z/OS (ordinateur central) ou IBM i (AS/400). Db2 sur Linux, Unix ou Windows est différent dans le cas où les comptes d’utilisateur disposent de privilèges de liaison par défaut, ce qui crée le package MSCS001 (Cursor Stability) dans la propre collection de l’utilisateur (nom = nom de connexion utilisateur).

Si vous n’avez pas de privilèges de package de liaison, vous devez demander à votre administrateur Db2 d’obtenir l’autorité de liaison de package. Avec cette autorité de liaison de package, connectez-vous à la base de données et extrayez les données, ce qui crée automatiquement le package. Ensuite, l’administrateur peut révoquer l’autorité de liaison d’empaquetage. Par ailleurs, par la suite, l’administrateur peut « lier la copie » du package à d’autres collections, afin d’augmenter la concurrence, afin de mieux correspondre à vos normes internes pour l’endroit où les packages sont liés, et ainsi de suite.

Lors de la connexion à IBM Db2 pour z/OS, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. Accordez l’autorité pour lier un nouveau package à l’utilisateur avec l’une des commandes suivantes :

    • GRANT BINDADD ON SYSTEM TO <authorization_name>
    • GRANT PACKADM ON <collection_name> TO <authorization_name>
  2. À l’aide de Power Query, connectez-vous à la base de données IBM Db2 et récupérez une liste de schémas, de tables et de vues. Le connecteur de base de données IBM Db2 Power Query crée automatiquement le NULLID du package. MSCS001, puis accordez l’exécution sur le package au public.

  3. Révoquez l’autorité pour lier un nouveau package à l’utilisateur avec l’une des commandes suivantes :

    • REVOKE BINDADD FROM <authorization_name>
    • REVOKE PACKADM ON <collection_name> FROM <authorization_name>

Lors de la connexion à IBM Db2 pour Linux, Unix, ou Windows, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. GRANT BINDADD ON DATABASE TO USER <authorization_name>.

  2. À l’aide de Power Query, connectez-vous à la base de données IBM Db2 et récupérez une liste de schémas, de tables et de vues. Le connecteur IBM Db2 Power Query crée automatiquement le NULLID du package. MSCS001, puis accordez l’exécution sur le package au public.

  3. REVOKE BINDADD ON DATABASE FROM USER <authorization_name>.

  4. GRANT EXECUTE ON PACKAGE <collection.package> TO USER <authorization_name>.

Lors de la connexion à IBM Db2 pour i, l’administrateur Db2 peut effectuer les étapes suivantes.

  1. WRKOBJ QSYS/CRTSQLPKG. Tapez « 2 » pour modifier l’autorité de l’objet.

  2. Modifiez l’autorité de *EXCLUDE en PUBLIC ou <authorization_name>.

  3. Ensuite, remplacez l’autorité par *EXCLUDE.

Code d’erreur SQLCODE -360

Lorsque vous tentez de vous connecter à la base de données IBM Db2, vous pouvez rencontrer l’erreur suivante :

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

Ce message d’erreur indique que vous n’avez pas placé la valeur appropriée pour le nom de la base de données.

Code d’erreur SQLCODE -1336

The specified host could not be found.

Vérifiez le nom et vérifiez que l’hôte est accessible. Par exemple, utilisez ping dans une invite de commandes pour tenter d’atteindre le serveur et vérifier que l’adresse IP est correcte ou utilisez telnet pour communiquer avec le serveur.

Code d’erreur SQLCODE -1037

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

Le port est spécifié à la fin du nom du serveur, séparé par un signe deux-points. En cas d’omission, la valeur par défaut de 50000 est utilisée.

Pour rechercher le port Db2 est utilisé pour Linux, Unix et Windows, exécutez cette commande :

db2 get dbm cfg | findstr SVCENAME

Recherchez dans la sortie une entrée pour SVCENAME (et SSL_SVCENAME pour les connexions chiffrées TLS). Si cette valeur est un nombre, il s’agit du port. Sinon, faites référence à la valeur avec la table « services » du système. Vous pouvez généralement le trouver à l’adresse /etc/services, ou à c:\windows\system32\drivers\etc\services pour Windows.

La capture d’écran suivante montre la sortie de cette commande dans Linux/Unix.

Image with output of the db2 command in Linux and Unix

La capture d’écran suivante montre la sortie de cette commande dans Windows.

Image with output of the db2 command in Windows

Déterminer le nom de la base de données

Pour déterminer le nom de la base de données à utiliser :

  1. Sur IBM i, exécutez DSPRDBDIRE.

    Image showing the output of the Display Relational Database Directory Entries

  2. L’une des entrées aura un emplacement distant de *LOCAL. Cette entrée est celle à utiliser.

Déterminer le numéro de port

Le pilote Microsoft se connecte à la base de données à l’aide du protocole DRDA (Distributed Relational Database Architecture). Le port par défaut pour DRDA est le port 446. Essayez d’abord cette valeur.

Pour trouver le port sur lequel le service DRDA s’exécute :

  1. Exécutez la commande IBM i WRKSRVTBLE.

  2. Faites défiler vers le bas jusqu’à ce que vous trouviez les entrées pour DRDA.

    Service Table Entries

  3. Pour vérifier que le service DRDA est en cours d’écoute sur ce port, exécutez NETSTAT.

    DRDA listening

  4. Choisissez l’option 3 (pour IPv4) ou l’option 6 (pour IPv6).

  5. Appuyez sur F14 pour afficher les numéros de port au lieu des noms, puis faites défiler jusqu’à ce que vous voyiez le port en question. Elle doit avoir une entrée avec l’état « Écouter ».

    IP connection status

Plus d’informations