Freigeben über


IBM Db2 Datenbank

Zusammenfassung

Element Beschreibung
Freigabestatus Allgemeine Verfügbarkeit
Produkte Excel
Power BI (Semantikmodelle)
Power BI (Dataflows)
Fabric (Dataflow Gen2)
Power Apps (Dataflows)
Dynamics 365 Customer Insights
Unterstützte Authentifizierungstypen Basic
Datenbank
Windows
Referenzdokumentation zur Funktion DB2.Database

Hinweis

Einige Funktionen können in einem Produkt vorhanden sein, in anderen jedoch nicht, was an den Bereitstellungsplänen und hostspezifischen Funktionen liegt.

Voraussetzungen

Standardmäßig verwendet der IBM Db2 Datenbankkonnektor den Microsoft-Treiber, um sich mit Ihren Daten zu verbinden. Wenn Sie sich in den erweiterten Optionen von Power Query Desktop für die Verwendung des IBM-Treibers entscheiden, müssen Sie zunächst den IBM Db2-Treiber für .NET auf dem Computer installieren, der für die Verbindung mit den Daten verwendet wird. Der Name dieses Treibers ändert sich von Zeit zu Zeit. Stellen Sie also sicher, dass Sie den IBM Db2-Treiber installieren, der mit .NET funktioniert. Anweisungen zum Herunterladen, Installieren und Konfigurieren des IBM Db2-Treibers für .NET finden Sie unter Download anfänglicher Clients und Treiber der Version 11.5. Weitere Informationen: Treibereinschränkungen, Installation des IBM Db2-Treibers sicherstellen

Unterstützte Funktionen

  • Importieren
  • DirectQuery (Power BI-Semantikmodelle)
  • Erweiterte Optionen
    • Treiber (IBM oder Microsoft)
    • Befehlstimeout in Minuten
    • Paketauflistung
    • SQL-Anweisung
    • Beziehungsspalten einbeziehen
    • Unter Verwendung der vollständigen Hierarchie navigieren

Herstellen einer Verbindung mit einer IBM Db2-Datenbank aus Power Query Desktop

Gehen Sie wie folgt vor, um die Verbindung herzustellen:

  1. Wählen Sie unter Daten abrufen die Option IBM Db2-Datenbank aus.

  2. Geben Sie unter Server den IBM Db2-Server an, mit dem Sie sich verbinden möchten. Wenn ein Port erforderlich ist, geben Sie ihn im Format Servername:Port an, wobei Port die Port-Nummer ist. Geben Sie außerdem in Datenbank die IBM Db2-Datenbank ein, auf die Sie zugreifen möchten. In diesem Beispiel sind der Servername und der Port TestIBMDb2server.contoso.com:4000. Die IBM Db2-Datenbank, auf die zugegriffen wird, ist NORTHWD2.

    Enter IBM Db2 database connection.

  3. Wenn Sie die Verbindung von Power BI Desktop aus herstellen, wählen Sie entweder den Datenverbindungsmodus Import oder DirectQuery aus. Die übrigen Schritte in diesem Beispiel verwenden den Verbindungsmodus "Daten importieren". Um mehr über DirectQuery zu erfahren, gehen Sie zu DirectQuery in Power BI Desktop verwenden.

    Hinweis

    Standardmäßig verwendet das Dialogfeld „IBM Db2-Datenbank“ bei der Anmeldung den Microsoft-Treiber. Wenn Sie den IBM-Treiber verwenden möchten, öffnen Sie Erweiterte Optionen und wählen Sie IBM aus. Weitere Informationen: Herstellen einer Verbindung mithilfe der erweiterten Optionen

    Wenn Sie DirectQuery als Datenverbindungsmodus auswählen, wird die SQL-Anweisung in den erweiterten Optionen deaktiviert. DirectQuery unterstützt derzeit keine Abfragen, die über eine native Datenbankabfrage für den IBM Db2-Konnektor hinausgehen.

  4. Klickan Sie auf OK.

  5. Wenn Sie zum ersten Mal eine Verbindung zu dieser IBM Db2-Datenbank herstellen, wählen Sie den gewünschten Authentifizierungstyp aus, geben Sie Ihre Anmeldeinformationen ein, und wählen Sie dann Verbinden aus. Weitere Informationen zur Authentifizierung finden Sie unter Authentifizierung mit einer Datenquelle.

    Enter your IBM Db2 database credentials.

    Standardmäßig versucht Power Query, sich über eine verschlüsselte Verbindung mit der IBM Db2-Datenbank zu verbinden. Wenn Power Query keine verschlüsselte Verbindung herstellen kann, wird das Dialogfeld „Verbindung nicht möglich“ angezeigt. Um die Verbindung über eine unverschlüsselte Verbindung herzustellen, wählen Sie OK aus.

    Unable to connect dialog box

  6. Wählen Sie im Navigator die gewünschten Daten aus, und wählen Sie dann entweder Laden oder Daten transformieren aus, um die Daten zu laden oder zu transformieren.

    Select the data you require from the database

Herstellen einer Verbindung mit einer IBM Db2-Datenbank aus Power Query Online

Gehen Sie wie folgt vor, um die Verbindung herzustellen:

  1. Wählen Sie die Option IBM Db2-Datenbank auf der Seite Power Query – Mit Datenquelle verbinden aus.

  2. Geben Sie unter Server den IBM Db2-Server an, mit dem Sie sich verbinden möchten. Wenn ein Port erforderlich ist, geben Sie ihn im Format Servername:Port an, wobei Port die Port-Nummer ist. Geben Sie außerdem in Datenbank die IBM Db2-Datenbank ein, auf die Sie zugreifen möchten. In diesem Beispiel sind der Servername und der Port TestIBMDb2server.contoso.com:4000. Die IBM Db2-Datenbank, auf die zugegriffen wird, ist NORTHWD2

  3. Wahlen Sie den Namen Ihres lokalen Datengateways aus.

    Hinweis

    Sie müssen für diesen Konnektor ein lokales Datengateway auswählen, unabhängig davon, ob sich die IBM Db2-Datenbank in Ihrem lokalen Netzwerk oder online befindet.

  4. Wenn Sie zum ersten Mal eine Verbindung zu dieser IBM Db2-Datenbank herstellen, wählen Sie die Art der Anmeldeinformationen für die Verbindung in Authentifizierungsart aus. Wählen Sie Basis aus, wenn Sie planen, anstelle der Windows-Authentifizierung ein Konto zu verwenden, das in der IBM Db2-Datenbank erstellt wurde.

  5. Geben Sie Ihre Anmeldeinformationen ein.

  6. Wählen Sie Verschlüsselte Verbindung verwenden, wenn Sie eine verschlüsselte Verbindung verwenden möchten, oder deaktivieren Sie die Option, wenn Sie eine unverschlüsselte Verbindung verwenden möchten.

    Enter IBM Db2 database online connection.

  7. Klicken Sie auf Weiter, um fortzufahren.

  8. Wählen Sie in Navigator die erforderlichen Daten aus, und wählen Sie dann Daten transformieren aus, um die Daten in Power Query-Editor zu transformieren.

    Select the data you want to transform in the Navigator

Verbinden mithilfe erweiterter Optionen

Power Query bietet eine Reihe von erweiterten Optionen, die Sie bei Bedarf zu Ihrer Abfrage hinzufügen können.

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

In der folgenden Tabelle sind alle erweiterten Optionen aufgeführt, die Sie in Power Query einstellen können.

Erweiterte Option Beschreibung
Treiber Bestimmt, welcher Treiber für die Verbindung zu Ihrer IBM Db2-Datenbank verwendet wird. Sie haben die Wahl zwischen IBM und Windows (Standard). Wenn Sie den IBM-Treiber auswählen, müssen Sie zunächst sicherstellen, dass der IBM Db2-Treiber für .NET auf Ihrem Computer installiert ist. Diese Option ist nur in Power Query Desktop verfügbar. Weitere Informationen: Installation des IBM Db2-Treibers sicherstellen
Befehlstimeout in Minuten Wenn Ihre Verbindung länger als 10 Minuten dauert (das Standardtimeout), können Sie einen anderen Wert in Minuten eingeben, um die Verbindung länger geöffnet zu halten.
Paketauflistung Gibt an, wo nach Paketen gesucht werden soll. Pakete sind Kontrollstrukturen, die von Db2 bei der Verarbeitung einer SQL-Anweisung verwendet werden. Sie werden bei Bedarf automatisch erstellt. Der Standardwert für diese Option ist NULLID. Nur verfügbar, wenn Sie den Microsoft-Treiber verwenden. Weitere Informationen: DB2-Pakete: Konzepte, Beispiele und häufige Probleme
SQL-Anweisung Informationen hierzu erhalten Sie unter Importieren von Daten aus einer Datenbank mithilfe einer nativen Datenbankabfrage.
Beziehungsspalten einbeziehen Wenn aktiviert, enthält die Option Spalten, die möglicherweise Beziehungen zu anderen Tabellen haben. Wenn dieses Feld deaktiviert ist, werden diese Spalten nicht angezeigt.
Unter Verwendung der vollständigen Hierarchie navigieren Wenn aktiviert, zeigt der Navigator die vollständige Hierarchie von Tabellen in der Datenbank an, mit der Sie eine Verbindung herstellen. Wenn deaktiviert, zeigt der Navigator nur die Tabellen an, deren Spalten und Zeilen Daten enthalten.

Nachdem Sie die gewünschten erweiterten Optionen ausgewählt haben, wählen Sie in Power Query Desktop OK oder in Power Query Online Weiter aus, um eine Verbindung mit Ihrer IBM Db2-Datenbank herzustellen.

Probleme und Einschränkungen

Treiberbeschränkungen

Der Microsoft-Treiber ist derselbe, der auch in Microsoft Host Integration Server verwendet wird. Er heißt „ADO.NET Provider for DB2“. Der IBM-Treiber ist der IBM Db/2-Treiber, der mit .NET funktioniert. Der Name dieses Treibers ändert sich von Zeit zu Zeit. Vergewissern Sie sich also, dass es sich um den Treiber handelt, der mit .NET arbeitet (es gibt auch IBM Db2-Treiber für OLE/DB, ODBC oder JDBC).

Sie können entweder den Microsoft-Treiber (Standard) oder den IBM-Treiber verwenden, wenn Sie Power Query Desktop benutzen. Power Query Online verwendet derzeit nur den Microsoft-Treiber. Jeder Treiber hat seine Einschränkungen.

  • Microsoft-Treiber
    • Keine Unterstützung von Secure Socket Layer Security (TLS)
  • IBM-Treiber
    • Der IBM Db2-Datenbankkonnektor funktioniert bei Verwendung des IBM Db2-Treibers für .NET nicht mit Mainframe- oder IBM i-Systemen
    • Keine Unterstützung für DirectQuery

Microsoft bietet Support für den Microsoft-Treiber, aber nicht für den IBM-Treiber. Wenn Ihre IT-Abteilung ihn jedoch bereits auf Ihren Computern eingerichtet und konfiguriert hat, sollte sie wissen, wie Sie Probleme mit dem IBM-Treiber beheben können.

Native Abfragen werden in DirectQuery nicht unterstützt

Wenn Sie DirectQuery als Datenverbindungsmodus in Power Query Desktop auswählen, ist das Textfeld für SQL-Anweisungen in den erweiterten Optionen deaktiviert. Es ist deaktiviert, weil der IBM Db2-Konnektor von Power Query derzeit keine Unterstützung für Abfragen bietet, die über eine native Datenbankabfrage hinausgehen.

Problembehandlung

Installation des IBM Db2-Treibers sicherstellen

Wenn Sie den IBM Db2-Treiber für Power Query Desktop verwenden möchten, müssen Sie den Treiber zunächst herunterladen, installieren und auf Ihrem Computer konfigurieren. So stellen Sie sicher, dass der IBM Db2-Treiber installiert ist:

  1. Öffnen Sie Windows PowerShell auf dem Computer.

  2. Geben Sie den folgenden Befehl ein:

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

  3. In dem sich öffnenden Dialogfenster sollten Sie in der Spalte InvariantName den folgenden Namen sehen:

    IBM.Data.DB2

Wenn dieser Name in der Spalte InvariantName steht, wurde der IBM Db2-Treiber korrekt installiert und konfiguriert.

Fehlercodes SQLCODE -805 und SQLCODE -551

Wenn Sie versuchen, eine Verbindung zu einer IBM Db2-Datenbank herzustellen, kann manchmal der allgemeine Fehler SQLCODE -805 auftreten, der darauf hinweist, dass das Paket nicht in der Sammlung NULLID oder einer anderen Sammlung (die in der Paketverbindung-Konfiguration von Power Query angegeben ist) gefunden wurde. Möglicherweise tritt auch der allgemeine Fehler SQLCODE -551 auf, der darauf hinweist, dass Sie keine Pakete erstellen können, weil Ihnen die Berechtigung zur Paketbindung fehlt.

Normalerweise folgt auf SQLCODE -805 der Fehler SQLCODE -551. Es wird aber nur der zweite Ausnahmefehler angezeigt. Tatsächlich handelt es sich jedoch um dasselbe Problem. Sie haben nicht die Berechtigung, das Paket entweder an NULLID oder an die angegebene Sammlung zu binden.

In der Regel geben die meisten IBM Db2-Administrator*innen den Anwender*innen keine Berechtigung zum Binden von Paketen – insbesondere einer IBM z/OS- (Mainframe) oder IBM i-Umgebung (AS/400). Db2 unter Linux, Unix oder Windows unterscheidet sich dahingehend, dass Konten von Benutzer*innen standardmäßig über Bindungsrechte verfügen, die das Paket MSCS001 (Cursor Stability) in der eigenen Sammlung des/der Benutzer*in (Name = Anmeldename des/der Benutzer*in) erstellen.

Wenn Sie nicht über die Berechtigung zum Binden von Paketen verfügen, müssen Sie Ihren Db2-Admin um eine Berechtigung zum Binden von Paketen bitten. Mit dieser Paketbindungsberechtigung stellen Sie eine Verbindung zur Datenbank her und rufen Daten ab, woraufhin das Paket automatisch erstellt wird. Anschließend kann der/die Administrator*in die Paketbindungsberechtigung wieder entziehen. Außerdem kann der/die Administrator*in anschließend das Paket an andere Sammlungen „binden“ – um die Parallelität zu erhöhen, um die internen Standards für die Paketbindung einzuhalten und so weiter.

Bei der Verbindung mit IBM Db2 für z/OS kann der/die Db2-Administrator*in die folgenden Schritte durchführen.

  1. Erteilen Sie dem/der Benutzer*in mit einem der folgenden Befehle die Berechtigung, ein neues Paket zu binden:

    • GRANT BINDADD ON SYSTEM TO <authorization_name>
    • GRANT PACKADM ON <collection_name> TO <authorization_name>
  2. Stellen Sie mit Power Query eine Verbindung zur IBM Db2-Datenbank her, und rufen Sie eine Liste der Schemas, Tabellen und Ansichten ab. Der Datenbankkonnektor von Power Query IBM Db2 erstellt automatisch das Paket NULLID.MSCS001 und erteilt dann die Ausführungsberechtigung für das Paket an public.

  3. Entziehen Sie dem/der Benutzer*in mit einem der folgenden Befehle die Berechtigung, ein neues Paket zu binden:

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

Wenn Sie eine Verbindung zu IBM Db2 für Linux, Unix oder Windows herstellen, kann der/die Db2-Administrator*in die folgenden Schritte ausführen.

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

  2. Stellen Sie mit Power Query eine Verbindung zur IBM Db2-Datenbank her, und rufen Sie eine Liste der Schemas, Tabellen und Ansichten ab. Der Power Query IBM Db2-Konnektor erstellt automatisch das Paket NULLID.MSCS001 und erteilt dann die Ausführungsrechte für das Paket an public.

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

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

Bei der Verbindung mit IBM Db2 for i kann der/die Db2-Administrator*in die folgenden Schritte ausführen.

  1. WRKOBJ QSYS/CRTSQLPKG. Geben Sie „2“ ein, um die Objektberechtigung zu ändern.

  2. Ändern Sie die Berechtigung von *EXCLUDE auf PUBLIC oder <authorization_name>.

  3. Ändern Sie anschließend die Berechtigung wieder auf *EXCLUDE.

Fehlercode SQLCODE -360

Wenn Sie versuchen, eine Verbindung zur IBM Db2-Datenbank herzustellen, kann die folgende Fehlermeldung auftreten:

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

Diese Fehlermeldung zeigt an, dass Sie nicht den richtigen Wert für den Namen der Datenbank eingegeben haben.

Fehlercode SQLCODE -1336

The specified host could not be found.

Überprüfen Sie den Namen noch einmal, und stellen Sie sicher, dass der Host erreichbar ist. Verwenden Sie beispielsweise ping in einer Eingabeaufforderung, um zu versuchen, den Server zu erreichen und sicherzustellen, dass die IP-Adresse korrekt ist, oder verwenden Sie telnet, um mit dem Server zu kommunizieren.

Fehlercode SQLCODE -1037

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

Der Port wird am Ende des Servernamens angegeben, getrennt durch einen Doppelpunkt. Wenn nichts angeben wird, wird der Standardwert 50000 verwendet.

Um den Port zu ermitteln, den Db2 für Linux, Unix und Windows verwendet, führen Sie diesen Befehl aus:

db2 get dbm cfg | findstr SVCENAME

Suchen Sie in der Ausgabe nach einem Eintrag für SVCENAME (und SSL_SVCENAME für TLS-verschlüsselte Verbindungen). Wenn dieser Wert eine Zahl ist, handelt es sich um den Port. Andernfalls vergleichen Sie den Wert mit der „services“-Tabelle des Systems. Diese finden Sie normalerweise unter /etc/services oder unter c:\windows\system32\drivers\etc\services für Windows.

Der folgende Screenshot zeigt die Ausgabe dieses Befehls unter Linux/Unix.

Image with output of the db2 command in Linux and Unix

Der folgende Screenshot zeigt die Ausgabe dieses Befehls unter Windows.

Image with output of the db2 command in Windows

Bestimmen des Datenbanknamens

So ermitteln Sie den zu verwendenden Datenbanknamen:

  1. Führen Sie auf IBM i DSPRDBDIRE aus.

    Image showing the output of the Display Relational Database Directory Entries

  2. Einer der Einträge hat den Remote Location-Wert *LOCAL. Dieser Eintrag ist der zu verwendende.

Bestimmen der Port-Nummer

Der Microsoft-Treiber stellt die Verbindung zur Datenbank über das Protokoll Distributed Relational Database Architecture (DRDA) her. Der Standardport für DRDA ist der Port 446. Probieren Sie zunächst diesen Wert aus.

So finden Sie mit Sicherheit heraus, auf welchem Port der DRDA-Dienst ausgeführt wird:

  1. Führen Sie den IBM i-Befehl WRKSRVTBLE aus.

  2. Blättern Sie nach unten, bis Sie die Einträge für DRDA finden.

    Service Table Entries

  3. Führen Sie NETSTAT aus, um zu überprüfen, ob der DRDA-Dienst aktiv und auf diesem Port erreichbar ist.

    DRDA listening

  4. Wählen Sie entweder die Option 3 (für IPv4) oder die Option 6 (für IPv6).

  5. Drücken Sie F14, um die Port-Nummern anstelle der Namen anzuzeigen, und blättern Sie, bis Sie den fraglichen Port sehen. Er sollte einen Eintrag mit dem Status „Listen“ haben.

    IP connection status

Weitere Informationen