IBM Db2-Datenbank
Zusammenfassung
Element | Beschreibung |
---|---|
Releasestatus | 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 |
Anmerkung
Einige Funktionen sind möglicherweise in einem Produkt vorhanden, aber in anderen nicht, was auf Bereitstellungszeitpläne und hostspezifische Funktionen zurückzuführen ist.
Voraussetzungen
Standardmäßig verwendet der IBM Db2-Datenbankconnector den Microsoft-Treiber, um eine Verbindung mit Ihren Daten herzustellen. Wenn Sie den IBM-Treiber in den erweiterten Optionen in Power Query Desktop verwenden möchten, müssen Sie zuerst den IBM Db2-Treiber für .NET auf dem Computer installieren, der zum Herstellen einer Verbindung mit den Daten verwendet wird. Der Name dieses Treibers ändert sich von Zeit zu Zeit. Installieren Sie daher unbedingt den IBM Db2-Treiber, 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: Treiberbeschränkungen, Stellen Sie sicher, dass der IBM Db2-Treiber installiert ist
Unterstützte Funktionen
- Importieren
- DirectQuery (Power BI-Semantikmodelle)
- Erweiterte Optionen
- Treiber (IBM oder Microsoft)
- Befehlstimeout in Minuten
- Paketauflistung
- SQL-Anweisung
- Beziehungsspalten einbeziehen
- Navigieren mithilfe der vollständigen Hierarchie
Herstellen einer Verbindung mit einer IBM Db2-Datenbank über Power Query Desktop
Führen Sie die folgenden Schritte aus, um die Verbindung herzustellen:
Wählen Sie unter Daten abrufen die Option IBM Db2-Datenbank aus.
Geben Sie den IBM Db2-Server an, zu dem in Servereine Verbindung hergestellt werden soll. Wenn ein Port erforderlich ist, geben Sie ihn mithilfe des Formats ServerName:Portan, wobei Port die Portnummer ist. Geben Sie auch die IBM Db2-Datenbank ein, auf die Sie in Databasezugreifen möchten. In diesem Beispiel sind der Servername und der Port
TestIBMDb2server.contoso.com:4000
und die zugegriffene IBM Db2-Datenbank istNORTHWD2
.Wenn Sie eine Verbindung über Power BI Desktop herstellen, wählen Sie entweder den Datenverbindungsmodus Import oder DirectQuery aus. In den restlichen Beispielschritten wird der Importdatenkonnektivitätsmodus verwendet. Weitere Informationen zu DirectQuery finden Sie unter Verwenden von DirectQuery in Power BI Desktop.
Anmerkung
Standardmäßig verwendet das Ibm Db2-Datenbankdialogfeld den Microsoft-Treiber bei der Anmeldung. Wenn Sie den IBM-Treiber verwenden möchten, öffnen Sie Advanced-Optionen, und wählen Sie IBMaus. Weitere Informationen: Herstellen einer Verbindung mit erweiterten Optionen
Wenn Sie DirectQuery- als Datenkonnektivitätsmodus auswählen, wird der SQL-Befehl in den erweiterten Optionen deaktiviert. DirectQuery unterstützt derzeit keine Abfragen, die über eine native Datenbankabfrage für den IBM Db2-Connector hinausgehen.
Wählen Sie OKaus.
Wenn Sie zum ersten Mal eine Verbindung mit dieser IBM Db2-Datenbank herstellen, wählen Sie den Authentifizierungstyp aus, den Sie verwenden möchten, geben Sie Ihre Anmeldeinformationen ein, und wählen Sie dann Connectaus. Weitere Informationen zur Authentifizierung finden Sie unter Authentifizierung mit einer Datenquelle.
Power Query versucht standardmäßig, mithilfe einer verschlüsselten Verbindung eine Verbindung mit der IBM Db2-Datenbank herzustellen. Wenn Power Query keine Verbindung mit einer verschlüsselten Verbindung herstellen kann, wird ein Dialogfeld "Keine Verbindung herstellen" angezeigt. Wenn Sie eine Verbindung mit einer unverschlüsselten Verbindung herstellen möchten, wählen Sie OKaus.
Wählen Sie in 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.
Verbindung zu einer IBM Db2-Datenbank mit Power Query Online herstellen
Führen Sie die folgenden Schritte aus, um die Verbindung herzustellen:
Wählen Sie auf der Seite Power Query – Mit Datenquelle verbinden die Option IBM Db2-Datenbank aus.
Geben Sie in Server den IBM Db2-Server an, mit dem eine Verbindung hergestellt werden soll. Wenn ein Port erforderlich ist, geben Sie ihn mithilfe des Formats ServerName:Portan, wobei Port die Portnummer ist. Geben Sie auch die IBM Db2-Datenbank ein, auf die Sie in Databasezugreifen möchten. In diesem Beispiel sind der Servername und der Port
TestIBMDb2server.contoso.com:4000
und die zugegriffene IBM Db2-Datenbank istNORTHWD2
Wählen Sie den Namen Ihres lokalen Datengateways aus.
Anmerkung
Sie müssen ein lokales Datengateway für diesen Connector auswählen, unabhängig davon, ob sich die IBM Db2-Datenbank in Ihrem lokalen Netzwerk oder online befindet.
Wenn Sie zum ersten Mal eine Verbindung mit dieser IBM Db2-Datenbank herstellen, wählen Sie den Typ der Anmeldeinformationen für die Verbindung in Authentifizierungsart aus. Wählen Sie Basic aus, wenn Sie ein Konto verwenden möchten, das in der IBM Db2-Datenbank anstelle der Windows-Authentifizierung erstellt wurde.
Geben Sie Ihre Anmeldeinformationen ein.
Wählen Sie Verschlüsselte Verbindung verwenden aus, wenn Sie eine verschlüsselte Verbindung verwenden möchten, oder deaktivieren Sie die Option, wenn Sie eine unverschlüsselte Verbindung verwenden möchten.
Wählen Sie Weiter aus, um fortzufahren.
Wählen Sie im Dialogfeld Navigator die benötigten Daten und dann Daten transformieren aus, um die Daten im Power Query-Editor zu transformieren.
transformieren möchten.
Herstellen einer Verbindung mit erweiterten Optionen
Power Query bietet bei Bedarf eine Reihe erweiterter Optionen, die Sie Ihrer Abfrage hinzufügen können.
In der folgenden Tabelle sind alle erweiterten Optionen aufgeführt, die Sie in Power Query festlegen können.
Erweiterte Option | Beschreibung |
---|---|
Fahrer | Bestimmt, welcher Treiber für die Verbindung mit Ihrer IBM Db2-Datenbank verwendet wird. Die Auswahlmöglichkeiten sind IBM und Windows (Standard). Wenn Sie den IBM-Treiber auswählen, müssen Sie zuerst 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: Stellen Sie sicher, dass der IBM Db2-Treiber installiert ist. |
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, und werden bei Bedarf automatisch erstellt. Standardmäßig verwendet diese Option den Wert 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 der native 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. |
Navigieren mithilfe der vollständigen Hierarchie | Wenn diese Option aktiviert ist, 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 erforderlichen erweiterten Optionen ausgewählt haben, wählen Sie OK in Power Query Desktop oder Next in Power Query Online aus, um eine Verbindung mit Ihrer IBM Db2-Datenbank herzustellen.
Probleme und Einschränkungen
Treiberbeschränkungen
Der Microsoft-Treiber ist derselbe, der in Microsoft Host Integration Server verwendet wird, der als "ADO.NET Anbieter für DB2" bezeichnet wird. Der IBM-Treiber ist der IBM Db/2-Treiber, der mit .NET arbeitet. Der Name dieses Treibers ändert sich von Zeit zu Zeit. Stellen Sie also sicher, dass es sich um den handelt, der mit .NET funktioniert, da er sich von den IBM Db2-Treibern unterscheidet, die mit OLE/DB, ODBC oder JDBC arbeiten.
Sie können entweder den Microsoft-Treiber (Standard) oder den IBM-Treiber verwenden, wenn Sie Power Query Desktop verwenden. Derzeit verwendet Power Query Online nur den Microsoft-Treiber. Jeder Treiber hat seine Einschränkungen.
- Microsoft-Treiber
- Unterstützt Transport Layer Security (TLS) erst ab der Version von Power BI Desktop vom Dezember 2024 oder später.
- IBM-Treiber
- Der IBM Db2-Datenbankconnector funktioniert bei Verwendung des IBM Db2-Treibers für .NET nicht mit Mainframe- oder IBM i-Systemen
- Unterstützt DirectQuery nicht
Microsoft bietet Unterstützung für den Microsoft-Treiber, aber nicht für den IBM-Treiber. Wenn Ihre IT-Abteilung sie jedoch bereits auf Ihren Computern eingerichtet und konfiguriert hat, sollte Ihre IT-Abteilung wissen, wie Sie probleme mit dem IBM-Treiber beheben können.
In DirectQuery werden native Abfragen nicht unterstützt.
Wenn Sie DirectQuery als Datenkonnektivitätsmodus in Power Query Desktop auswählen, ist das Textfeld der SQL-Anweisung in den erweiterten Optionen deaktiviert. Es ist deaktiviert, weil der IBM Db2-Connector von Power Query derzeit keine Unterstützung für Abfragen bietet, die über eine native Datenbankabfrage hinausgehen.
Fehlerbehebung
Stellen Sie sicher, dass der IBM Db2-Treiber installiert ist.
Wenn Sie den IBM Db2-Treiber für Power Query Desktop verwenden möchten, müssen Sie zuerst den Treiber auf Ihrem Computer herunterladen, installieren und konfigurieren. So stellen Sie sicher, dass der IBM Db2-Treiber installiert wurde:
Öffnen Sie Windows PowerShell auf Ihrem Computer.
Geben Sie den folgenden Befehl ein:
[System.Data.Common.DbProviderFactories]::GetFactoryClasses() | ogv
In Dialogfenster, das geöffnet wird, sollten Sie in der Spalte InvariantName den folgenden Namen sehen:
IBM.Data.DB2
Wenn sich dieser Name in der Spalte "InvariantName" befindet, wurde der IBM Db2-Treiber installiert und ordnungsgemäß konfiguriert.
Fehlercodes SQLCODE -805 und SQLCODE -551
Wenn Sie versuchen, eine Verbindung mit 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 Konfiguration der Paketverbindung von Power Query angegeben ist) gefunden wurde. Möglicherweise tritt auch der häufige Fehler SQLCODE -551 auf, der angibt, dass Sie keine Pakete erstellen können, da Sie keine Paketbindungsautorität besitzen.
In der Regel folgt auf SQLCODE -805 der SQLCODE -551, aber nur die zweite Ausnahme wird angezeigt. In wirklichkeit ist das Problem dasselbe. Sie sind nicht berechtigt, das Paket entweder an NULLID
oder an die angegebene Sammlung zu binden.
In der Regel verleihen die meisten IBM Db2-Administratoren den Endbenutzern keine Bind-Paket-Autorität – insbesondere in einer IBM z/OS (Mainframe) oder IBM i (AS/400)-Umgebung. Db2 unter Linux, Unix oder Windows unterscheidet sich dahingehend, dass Benutzerkonten standardmäßig über Bindungsrechte verfügen, die das Paket MSCS001 (Cursor Stability) in der eigenen Sammlung von Benutzenden (Name = Benutzeranmeldename) erstellen.
Wenn Sie keine Berechtigungen für das Binden von Paketen haben, müssen Sie Ihren Db2-Administrator um die Berechtigung zur Paketbindung bitten. Mit dieser Paketbindungsberechtigung stellen Sie eine Verbindung mit der Datenbank her und rufen Daten ab, woraufhin das Paket automatisch erstellt wird. Anschließend kann der Administrator die Verpackungsbindungsautorität widerrufen. Außerdem kann die Administration anschließend eine Kopie des Pakets an andere Sammlungen „binden“ – um die Parallelität zu erhöhen, um die internen Standards für die Paketbindung einzuhalten und so weiter.
Beim Herstellen einer Verbindung mit IBM Db2 für z/OS kann der Db2-Administrator die folgenden Schritte ausführen.
Erteilen Sie die Berechtigung, ein neues Paket mit einem der folgenden Befehle einem Benutzer zuzuordnen.
- GRANT BINDADD ON SYSTEM TO <Name_der_Autorisierung>
- GRANT PACKADM ON <Name_der_Sammlung> TO <Name_der_Autorisierung>
Stellen Sie mithilfe von Power Query eine Verbindung mit der IBM Db2-Datenbank her, und rufen Sie eine Liste von Schemas, Tabellen und Ansichten ab. Der Power Query-Datenbankconnector für IBM Db2 erstellt automatisch das Paket „NULLID.MSCS001“ und erteilt dann die öffentliche Ausführungsberechtigung für das Paket.
Widerrufen Sie die Berechtigung, ein neues Paket an Benutzende zu binden, mit einem der folgenden Befehle:
- REVOKE BINDADD FROM <Name_der_Autorisierung>
- REVOKE PACKADM ON <Name_der_Sammlung> FROM <authorization_name>
Beim Herstellen einer Verbindung mit IBM Db2 für Linux, Unix oder Windows kann der Db2-Administrator die folgenden Schritte ausführen.
GRANT BINDADD ON DATABASE TO USER <Name_der_Autorisierung>.
Stellen Sie mithilfe von Power Query eine Verbindung mit der IBM Db2-Datenbank her, und rufen Sie eine Liste von Schemas, Tabellen und Ansichten ab. Der Power Query-Connector für IBM Db2 erstellt automatisch das Paket „NULLID.MSCS001“ und erteilt dann die öffentliche Ausführungsberechtigung für das Paket.
REVOKE BINDADD ON DATABASE FROM USER <Name_der_Autorisierung>.
GRANT EXECUTE ON PACKAGE <Sammlung.Paket> TO USER <authorization_name>.
Beim Herstellen einer Verbindung mit IBM Db2 für i kann der Db2-Administrator die folgenden Schritte ausführen.
WRKOBJ QSYS/CRTSQLPKG. Geben Sie "2" ein, um die Objektautorität zu ändern.
Ändern Sie die autoritative Stelle von *EXCLUDE in PUBLIC oder <Name_der-Autorisierung>.
Ändern Sie anschließend die autoritative Stelle wieder in *EXCLUDE zurück.
Fehlercode „SQLCODE -360“
Beim Versuch, eine Verbindung mit der IBM Db2-Datenbank herzustellen, tritt möglicherweise der folgende Fehler auf:
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 gibt an, dass Sie den richtigen Wert für den Namen der Datenbank nicht angegeben haben.
Fehlercode „SQLCODE -1336“
The specified host could not be found.
Überprüfen Sie den Namen, und vergewissern Sie sich, 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- für die Kommunikation mit dem Server.
SQLCODE -1037-Fehlercode
Host is reachable, but is not responding on the specified port.
Der Port wird am Ende des Servernamens angegeben, getrennt durch einen Doppelpunkt. Wird dieser Wert nicht angegeben, wird der Standardwert 50000 verwendet.
Um den Port Db2 zu finden, der für Linux, Unix und Windows verwendet wird, führen Sie den folgenden 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, ist dies der Port. Andernfalls vergleichen Sie den Wert mit der Tabelle „Dienste“ des Systems. Dies finden Sie in der Regel unter "/etc/services" oder unter "c:\windows\system32\drivers\etc\services für Windows".
Der folgende Screenshot zeigt die Ausgabe dieses Befehls in Linux/Unix.
Der folgende Screenshot zeigt die Ausgabe dieses Befehls in Windows.
Ermitteln des Datenbanknamens
So bestimmen Sie den zu verwendenden Datenbanknamen:
Führen Sie
DSPRDBDIRE
unter auf IBM i aus.relationalen Datenbankverzeichniseinträge anzeigen
Einer der Einträge hat den Remote Location-Wert *LOCAL. Dieser Eintrag ist der zu verwendende.
Portnummer ermitteln
Der Microsoft-Treiber stellt mithilfe des DRDA-Protokolls (Distributed Relational Database Architecture) eine Verbindung mit der Datenbank bereit. Der Standardport für DRDA ist Port 446. Versuchen Sie es zuerst mit diesem Wert.
Um sicher herauszufinden, auf welchem Port der DRDA-Dienst ausgeführt wird:
Führen Sie den IBM i-Befehl
WRKSRVTBLE
aus.Scrollen Sie nach unten, bis Sie die Einträge für DRDA finden.
Führen Sie
NETSTAT
aus, um zu bestätigen, dass der DRDA-Dienst aktiviert ist und diesen Port überwacht.Wählen Sie entweder Option 3 (für IPv4) oder Option 6 (für IPv6) aus.
Drücken Sie F14, um die Portnummern anstelle von Namen anzuzeigen, und scrollen Sie, bis der betreffende Port angezeigt wird. Er sollte einen Eintrag mit dem Status „Listen“ (Zuhören) haben.