Database IBM Db2

Riepilogo

Articolo Descrizione
Stato di rilascio Disponibilità generale
Prodotti Excel
Power BI (modelli semantici)
Power BI (flussi di dati)
Infrastruttura (Dataflow Gen2)
Power Apps (flussi di dati)
Dynamics 365 Customer Insights
Tipi di autenticazione supportati Di base
Database
Finestre
Documentazione di riferimento sulle funzioni DB2.Database

Nota

Alcune funzionalità possono essere presenti in un prodotto, ma non altre a causa di pianificazioni di distribuzione e funzionalità specifiche dell'host.

Prerequisiti

Per impostazione predefinita, il connettore di database IBM Db2 usa il driver Microsoft per connettersi ai dati. Se si sceglie di usare il driver IBM nelle opzioni avanzate in Power Query Desktop, è prima necessario installare il driver IBM Db2 per .NET nel computer usato per connettersi ai dati. Il nome di questo driver cambia di volta in volta, quindi assicurarsi di installare il driver IBM Db2 che funziona con .NET. Per istruzioni su come scaricare, installare e configurare il driver IBM Db2 per .NET, vedere Scaricare i client e i driver della versione 11.5 iniziali. Altre informazioni: Limitazioni del driver, Verificare che il driver IBM Db2 sia installato

Funzionalità supportate

  • Import
  • DirectQuery (modelli semantici di Power BI)
  • Opzioni avanzate
    • Driver (IBM o Microsoft)
    • Timeout del comando in minuti
    • Raccolta pacchetti
    • SQL statement
    • Includi colonne relazioni
    • Esplora con gerarchia completa

Connessione a un database IBM Db2 da Power Query Desktop

Per stabilire la connessione, seguire questa procedura:

  1. Selezionare l'opzione di database IBM Db2 da Recupera dati.

  2. Specificare il server IBM Db2 a cui connettersi in Server. Se è necessaria una porta, specificarla usando il formato NomeServer:Porta, dove Port è il numero di porta. Immettere anche il database IBM Db2 a cui si vuole accedere in Database. In questo esempio il nome del server e la porta sono TestIBMDb2server.contoso.com:4000 e il database IBM Db2 a cui si accede è NORTHWD2.

    Enter IBM Db2 database connection.

  3. Se ci si connette da Power BI Desktop, selezionare la modalità di connettività dati Importa o DirectQuery . Nella parte restante di questi passaggi di esempio viene usata la modalità di connettività dei dati di importazione. Per altre informazioni su DirectQuery, vedere Usare DirectQuery in Power BI Desktop.

    Nota

    Per impostazione predefinita, la finestra di dialogo del database IBM Db2 usa il driver Microsoft durante l'accesso. Se si vuole usare il driver IBM, aprire Opzioni avanzate e selezionare IBM. Altre informazioni: Connessione usando le opzioni avanzate

    Se si seleziona DirectQuery come modalità di connettività dei dati, l'istruzione SQL nelle opzioni avanzate verrà disabilitata. DirectQuery attualmente non supporta il push delle query su una query di database nativa per il connettore IBM Db2.

  4. Seleziona OK.

  5. Se è la prima volta che ci si connette a questo database IBM Db2, selezionare il tipo di autenticazione da usare, immettere le credenziali e quindi selezionare Connessione. Per altre informazioni sull'autenticazione, vedere Autenticazione con un'origine dati.

    Enter your IBM Db2 database credentials.

    Per impostazione predefinita, Power Query tenta di connettersi al database IBM Db2 usando una connessione crittografata. Se Power Query non riesce a connettersi usando una connessione crittografata, verrà visualizzata una finestra di dialogo "Impossibile connettersi". Per connettersi usando una connessione non crittografata, selezionare OK.

    Unable to connect dialog box

  6. In Strumento di navigazione selezionare i dati necessari, quindi selezionare Carica per caricare i dati o Trasforma dati per trasformare i dati.

    Select the data you require from the database

Connessione a un database IBM Db2 da Power Query Online

Per stabilire la connessione, seguire questa procedura:

  1. Selezionare l'opzione database IBM Db2 nella pagina Power Query - Connessione all'origine dati.

  2. Specificare il server IBM Db2 a cui connettersi in Server. Se è necessaria una porta, specificarla usando il formato NomeServer:Porta, dove Port è il numero di porta. Immettere anche il database IBM Db2 a cui si vuole accedere in Database. In questo esempio il nome e la porta del server sono TestIBMDb2server.contoso.com:4000 e il database IBM Db2 a cui si accede è NORTHWD2

  3. Selezionare il nome del gateway dati locale.

    Nota

    È necessario selezionare un gateway dati locale per questo connettore, indipendentemente dal fatto che il database IBM Db2 si trovi nella rete locale o online.

  4. Se è la prima volta che ci si connette a questo database IBM Db2, selezionare il tipo di credenziali per la connessione in Tipo di autenticazione. Scegliere Basic se si prevede di usare un account creato nel database IBM Db2 anziché autenticazione di Windows.

  5. Immetti le tue credenziali.

  6. Selezionare Usa Connessione crittografato se si vuole usare una connessione crittografata oppure deselezionare l'opzione se si vuole usare una connessione non crittografata.

    Enter IBM Db2 database online connection.

  7. Selezionare Avanti per continuare.

  8. In Strumento di navigazione selezionare i dati necessari, quindi selezionare Trasforma i dati per trasformare i dati in editor di Power Query.

    Select the data you want to transform in the Navigator

Connessione con opzioni avanzate

Power Query offre un set di opzioni avanzate che è possibile aggiungere alla query, se necessario.

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

Nella tabella seguente sono elencate tutte le opzioni avanzate che è possibile impostare in Power Query.

Opzione Avanzate Descrizione
Driver Determina il driver usato per connettersi al database IBM Db2. Le scelte sono IBM e Windows (impostazione predefinita). Se si seleziona il driver IBM, è prima necessario assicurarsi che nel computer sia installato il driver IBM Db2 per .NET. Questa opzione è disponibile solo in Power Query Desktop. Altre informazioni: Verificare che il driver IBM Db2 sia installato
Timeout del comando in minuti Se la connessione dura più di 10 minuti (timeout predefinito), è possibile immettere un altro valore in minuti per mantenere la connessione aperta più a lungo.
Raccolta pacchetti Specifica dove cercare i pacchetti. I pacchetti sono strutture di controllo usate da Db2 durante l'elaborazione di un'istruzione SQL e verranno create automaticamente, se necessario. Per impostazione predefinita, questa opzione usa il valore NULLID. Disponibile solo quando si usa il driver Microsoft. Altre informazioni: Pacchetti DB2: Concetti, esempi e problemi comuni
SQL statement Per informazioni, vedere Importare dati da un database usando una query di database nativa.
Includi colonne relazioni Se selezionata, include colonne che potrebbero avere relazioni con altre tabelle. Se questa casella è deselezionata, queste colonne non verranno visualizzate.
Esplora con gerarchia completa Se selezionata, lo strumento di navigazione visualizza la gerarchia completa delle tabelle nel database a cui ci si connette. Se deselezionato, lo strumento di navigazione visualizza solo le tabelle le cui colonne e righe contengono dati.

Dopo aver selezionato le opzioni avanzate necessarie, selezionare OK in Power Query Desktop o Avanti in Power Query Online per connettersi al database IBM Db2.

Problemi e limitazioni

Limitazioni del driver

Il driver Microsoft è lo stesso usato in Microsoft Host Integration Server, denominato "provider di ADO.NET per DB2". Il driver IBM è il driver IBM Db/2 che funziona con .NET. Il nome di questo driver cambia di volta in volta, quindi assicurarsi che sia quello che funziona con .NET, che è diverso dai driver IBM Db2 che funzionano con OLE/DB, ODBC o JDBC.

È possibile scegliere di usare il driver Microsoft (impostazione predefinita) o il driver IBM se si usa Power Query Desktop. Attualmente, Power Query Online usa solo il driver Microsoft. Ogni driver presenta le sue limitazioni.

  • Driver Microsoft
    • Non supporta Transport Layer Security (TLS)
  • Driver IBM
    • Il connettore di database IBM Db2, quando si usa il driver IBM Db2 per .NET, non funziona con i sistemi Mainframe o IBM i
    • Non supporta DirectQuery

Microsoft fornisce supporto per il driver Microsoft, ma non per il driver IBM. Tuttavia, se il reparto IT ha già configurato e configurato nei computer, il reparto IT deve sapere come risolvere i problemi del driver IBM.

Query native non supportate in DirectQuery

Quando si seleziona DirectQuery come modalità di connettività dei dati in Power Query Desktop, la casella di testo istruzione SQL nelle opzioni avanzate è disabilitata. È disabilitato perché il connettore IBM Db2 di Power Query attualmente non supporta il push delle query in basso sopra una query di database nativa.

Risoluzione dei problemi

Verificare che il driver IBM Db2 sia installato

Se si sceglie di usare il driver IBM Db2 per Power Query Desktop, è prima necessario scaricare, installare e configurare il driver nel computer. Per assicurarsi che il driver IBM Db2 sia stato installato:

  1. Aprire Windows PowerShell nel computer.

  2. Immettere il comando seguente:

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

  3. Nella finestra di dialogo visualizzata verrà visualizzato il nome seguente nella colonna InvariantName :

    IBM.Data.DB2

Se questo nome si trova nella colonna InvariantName , il driver IBM Db2 è stato installato e configurato correttamente.

Codici di errore SQLCODE -805 e SQLCODE -551

Quando si tenta di connettersi a un database IBM Db2, a volte si verifica l'errore comune SQLCODE -805, che indica che il pacchetto non viene trovato nell'insieme o in un'altra NULLID raccolta (specificata nella configurazione della connessione al pacchetto di Power Query). È anche possibile riscontrare l'errore comune SQLCODE -551, che indica che non è possibile creare pacchetti perché manca l'autorità di associazione del pacchetto.

In genere, SQLCODE -805 è seguito da SQLCODE -551, ma verrà visualizzata solo la seconda eccezione. In realtà, il problema è lo stesso. Manca l'autorità per associare il pacchetto a o alla NULLID raccolta specificata.

In genere, la maggior parte degli amministratori IBM Db2 non fornisce l'autorità di associazione dei pacchetti agli utenti finali, in particolare in un ambiente IBM z/OS (mainframe) o IBM i (AS/400). Db2 in Linux, Unix o Windows è diverso in quanto gli account utente dispongono di privilegi di associazione per impostazione predefinita, che creano il pacchetto MSCS001 (stabilità cursore) nella raccolta dell'utente (nome = nome account di accesso utente).

Se non si dispone dei privilegi del pacchetto di associazione, è necessario chiedere all'amministratore db2 l'autorità di associazione dei pacchetti. Con questa autorità di associazione di pacchetti, connettersi al database e recuperare i dati, che creeranno automaticamente il pacchetto. Successivamente, l'amministratore può revocare l'autorità di associazione di creazione pacchetti. Inoltre, in seguito, l'amministratore può "associare la copia" al pacchetto ad altre raccolte, per aumentare la concorrenza, per soddisfare meglio gli standard interni per cui sono associati i pacchetti e così via.

Quando ci si connette a IBM Db2 per z/OS, l'amministratore db2 può eseguire la procedura seguente.

  1. Concedere l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:

    • GRANT BINDADD ON SYSTEM TO <authorization_name>
    • GRANT PACKADM ON <collection_name> TO <authorization_name>
  2. Usando Power Query, connettersi al database IBM Db2 e recuperare un elenco di schemi, tabelle e viste. Il connettore di database IBM Db2 di Power Query creerà automaticamente il pacchetto NULLID. MSCS001 e quindi concedere l'esecuzione sul pacchetto al pubblico.

  3. Revocare l'autorità per associare un nuovo pacchetto all'utente con uno dei comandi seguenti:

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

Quando ci si connette a IBM Db2 per Linux, Unix o Windows, l'amministratore db2 può eseguire la procedura seguente.

  1. GRANT BINDADD ON DATABA edizione Standard TO U edizione Standard R <authorization_name>.

  2. Usando Power Query, connettersi al database IBM Db2 e recuperare un elenco di schemi, tabelle e viste. Il connettore IBM Db2 di Power Query creerà automaticamente il pacchetto NULLID. MSCS001 e quindi concedere l'esecuzione sul pacchetto al pubblico.

  3. REVOKE BINDADD ON DATABA edizione Standard FROM U edizione Standard R <authorization_name>.

  4. GRANT EXECUTE ON PACKAGE <collection.package> TO U edizione Standard R< authorization_name>.

Quando ci si connette a IBM Db2 per i, l'amministratore db2 può eseguire la procedura seguente.

  1. WRKOBJ QSYS/CRTSQLPKG. Digitare "2" per modificare l'autorità dell'oggetto.

  2. Modificare l'autorità da *EXCLUDE a PUBLIC o <authorization_name>.

  3. Successivamente, modificare l'autorità in *EXCLUDE.

Codice errore SQLCODE -360

Quando si tenta di connettersi al database IBM Db2, è possibile che venga visualizzato l'errore seguente:

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

Questo messaggio di errore indica che non è stato inserito il valore corretto in per il nome del database.

Codice di errore SQLCODE -1336

The specified host could not be found.

Controllare il nome e verificare che l'host sia raggiungibile. Ad esempio, usare ping in un prompt dei comandi per tentare di raggiungere il server e assicurarsi che l'indirizzo IP sia corretto oppure usare telnet per comunicare con il server.

Codice errore SQLCODE -1037

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

La porta viene specificata alla fine del nome del server, separata da due punti. Se omesso, viene utilizzato il valore predefinito 50000.

Per trovare che la porta Db2 usa per Linux, Unix e Windows, eseguire questo comando:

db2 get dbm cfg | findstr SVCENAME

Cercare nell'output una voce per SVCENAME (e SSL_SVCENAME per le connessioni crittografate TLS). Se questo valore è un numero, questa è la porta. In caso contrario, fare riferimento incrociato al valore con la tabella "services" del sistema. In genere è possibile trovare questo valore in /etc/services o in c:\windows\system32\drivers\etc\services per Windows.

Lo screenshot seguente mostra l'output di questo comando in Linux/Unix.

Image with output of the db2 command in Linux and Unix

Lo screenshot seguente mostra l'output di questo comando in Windows.

Image with output of the db2 command in Windows

Determinare il nome del database

Per determinare il nome del database da usare:

  1. In IBM i eseguire DSPRDBDIRE.

    Image showing the output of the Display Relational Database Directory Entries

  2. Una delle voci avrà un percorso remoto *LOCAL. Questa voce è quella da usare.

Determinare il numero di porta

Il driver Microsoft si connette al database usando il protocollo DRDA (Distributed Relational Database Architecture). La porta predefinita per DRDA è la porta 446. Provare prima questo valore.

Per individuare la porta in cui è in esecuzione il servizio DRDA:

  1. Eseguire il comando WRKSRVTBLEIBM i .

  2. Scorrere verso il basso fino a trovare le voci per DRDA.

    Service Table Entries

  3. Per verificare che il servizio DRDA sia attivo e in ascolto su tale porta, eseguire NETSTAT.

    DRDA listening

  4. Scegliere l'opzione 3 (per IPv4) o l'opzione 6 (per IPv6).

  5. Premere F14 per visualizzare i numeri di porta anziché i nomi e scorrere fino a visualizzare la porta in questione. Deve avere una voce con lo stato "Listen".

    IP connection status

Altre informazioni