Banco de dados IBM Db2

Resumo

Item Descrição
Estado da liberação Disponibilidade geral
Produtos Excel
Power BI (Modelos semânticos)
Power BI (Fluxos de dados)
Malha (fluxo de dados Gen2)
Power Apps (Fluxos de dados)
Dynamics 365 Customer Insights
Tipos de autenticação compatíveis Basic
Backup de banco de dados
Windows
Documentação de referência da função DB2.Database

Observação

Alguns recursos podem estar presentes em um produto, mas não em outros devido a cronogramas de implantação e funcionalidades específicas do host.

Pré-requisitos

Por padrão, o conector de banco de dados IBM Db2 usa o driver da Microsoft para se conectar aos seus dados. Se você optar por usar o driver IBM nas opções avançadas no Power Query Desktop, primeiro instale o driver IBM Db2 para .NET no computador usado para se conectar aos dados. O nome desse driver é alterado de tempos em tempos, portanto, instale o driver IBM Db2 que funciona com o .NET. Para obter instruções sobre como baixar, instalar e configurar o driver IBM Db2 para .NET, acesse Baixar drivers e clientes da versão 11.5 iniciais. Mais informações: Limitações do driver, verifique se o driver IBM Db2 está instalado

Funcionalidades com suporte

  • Importação
  • DirectQuery (Modelos semânticos do Power BI)
  • Opções avançadas
    • Driver (IBM ou Microsoft)
    • Tempo limite do comando em minutos
    • Coleção de pacotes
    • SQL statement
    • Adicionar colunas de relação
    • Navegar usando hierarquia completa

Conectar-se a um banco de dados IBM Db2 do Power Query Desktop

Para fazer a conexão, execute as seguintes etapas:

  1. Selecione a opção de banco de dados IBM Db2 em Obter Dados.

  2. Especifique o IBM Db2 ao qual se conectar no Servidor. Se uma porta for necessária, especifique-a usando o formato ServerName:Port, em que a porta é o número da porta. Além disso, insira o banco de dados IBM Db2 que você deseja acessar no Banco de Dados. Neste exemplo, o nome e a porta do servidor são TestIBMDb2server.contoso.com:4000 e o banco de dados IBM Db2 que está sendo acessado é NORTHWD2.

    Enter IBM Db2 database connection.

  3. Se você estiver se conectando de Power BI Desktop, selecione o modo de conectividade de dados Importar ou DirectQuery. O restante dessas etapas de exemplo usa o modo de conectividade Importar dados. Para saber mais sobre o DirectQuery, vá até Usar o DirectQuery no Power BI Desktop.

    Observação

    Por padrão, a caixa de diálogo banco de dados IBM Db2 usa o driver da Microsoft durante a entrada. Se você quiser usar o driver IBM, abra opções avançadas e selecione IBM. Mais informações: Conectar usando opções avançadas

    Se você selecionar DirectQuery como seu modo de conectividade de dados, a instrução SQL nas opções avançadas será desabilitada. No momento, o DirectQuery não dá suporte a push de consulta em cima de uma consulta de banco de dados nativo para o conector IBM Db2.

  4. Selecione OK.

  5. Se esta for a primeira vez que você está se conectando a esse banco de dados IBM Db2, selecione o tipo de autenticação que deseja usar, insira suas credenciais e selecione Conectar. Para obter mais informações sobre a autenticação, acesse Autenticação com uma fonte de dados.

    Enter your IBM Db2 database credentials.

    Por padrão, Power Query tenta se conectar ao banco de dados IBM Db2 usando uma conexão criptografada. Se Power Query não puder se conectar usando uma conexão criptografada, uma caixa de diálogo "não é possível se conectar" será exibida. Para se conectar usando uma conexão não criptografada, selecione OK.

    Unable to connect dialog box

  6. No Navegador, selecione os dados necessários e selecione Carregar para carregar os dados ou Transformar dados para transformar os dados.

    Select the data you require from the database

Conectar-se a um banco de dados IBM Db2 do Power Query Online

Para fazer a conexão, execute as seguintes etapas:

  1. Selecione a opção de banco de dados IBM Db2 no Power Query – Conectar-se à página de fonte de dados.

  2. Especifique o IBM Db2 ao qual se conectar no Servidor. Se uma porta for necessária, especifique-a usando o formato ServerName:Port, em que a porta é o número da porta. Além disso, insira o banco de dados IBM Db2 que você deseja acessar no Banco de Dados. Neste exemplo, o nome e a porta do servidor são TestIBMDb2server.contoso.com:4000 e o banco de dados IBM Db2 que está sendo acessado é NORTHWD2

  3. Selecione o nome do gateway de dados local.

    Observação

    Você deve selecionar um gateway de dados local para esse conector, seja o banco de dados IBM Db2 em sua rede local ou online.

  4. Se essa for a primeira vez que você esta se conectando a esse banco de dados IBM Db2, selecione o tipo de credenciais para a conexão no Tipo de autenticação. Escolha Básico se você planeja usar uma conta criada com a autenticação do IBM Db2 em vez da autenticação do Windows.

  5. Insira suas credenciais.

  6. Selecione Usar Conexão Criptografada se você quiser usar uma conexão criptografada ou desmarque a opção se quiser usar uma conexão não criptografada.

    Enter IBM Db2 database online connection.

  7. Selecione Avançar para continuar.

  8. No Navegador, selecione os dados necessários e selecione Transformar dados para transformar os dados em Editor do Power Query.

    Select the data you want to transform in the Navigator

Conectar usando opções avançadas

O Power Query tem um conjunto de opções avançadas que você pode adicionar à sua consulta, se necessário.

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

A tabela a seguir lista todas as opções avançadas que você pode definir no Power Query.

Opção avançada Descrição
Driver Determina qual driver é usado para se conectar ao banco de dados IBM Db2. As opções são IBM e Windows (padrão). Se você selecionar o driver IBM, primeiro deverá garantir que o driver IBM Db2 para .NET esteja instalado em seu computador. Esta opção está disponível somente no Power Query Desktop. Mais informações: Verifique se o driver IBM Db2 está instalado
Tempo limite do comando em minutos Se a sua conexão durar mais de 10 minutos (o tempo limite padrão), você poderá inserir outro valor em minutos para manter a conexão aberta por mais tempo.
Coleção de pacotes Especifica onde procurar pacotes. Os pacotes são estruturas de controle usadas pelo Db2 ao processar uma instrução SQL e serão criados automaticamente, se necessário. Por padrão, essa opção usa o valor NULLID. Disponível somente ao usar o driver da Microsoft. Mais informações: Pacotes DB2: conceitos, exemplos e problemas comuns
Instrução SQL Para obter mais informações, acesse Importar dados de um banco de dados usando a consulta natuva de banco de dados.
Adicionar colunas de relação Se marcada, inclui colunas que podem ter relações com outras tabelas. Se essa caixa estiver desmarcada, você não verá essas colunas.
Navegar usando hierarquia completa Se marcada, o navegador exibirá a hierarquia completa de tabelas no banco de dados ao qual você está se conectando. Se desmarcada, o navegador exibe apenas as tabelas cujas colunas e linhas contêm dados.

Depois de selecionar as opções avançadas necessárias, selecione OK no Power Query Desktop ou Avançar no Power Query Online para conectar ao banco de dados IBM Db2.

Limitações e problemas

Limitações do driver

O driver da Microsoft é o mesmo usado no Microsoft Host Integration Server, chamado de "Provedor ADO.NET para DB2". O driver IBM é o driver IBM Db/2 que trabalha com o .NET. O nome desse driver muda de vez em quando, portanto, certifique-se de que ele funcione com o .NET, que é diferente dos drivers IBM Db2 que trabalham com OLE/DB, ODBC ou JDBC.

Você pode optar por usar o driver da Microsoft (padrão) ou o driver IBM se estiver usando Power Query Desktop. Atualmente, o Power Query Online usa apenas o driver da Microsoft. Cada driver tem suas limitações.

  • Driver da Microsoft
    • Não dá suporte ao TLS (Transport Layer Security)
  • Driver IBM
    • O conector de banco de dados IBM Db2, ao usar o driver IBM Db2 para .NET, não funciona com sistemas Mainframe ou IBM i
    • Não dá suporte ao DirectQuery

A Microsoft fornece suporte para o driver da Microsoft, mas não para o driver IBM. No entanto, se o departamento de TI já tiver configurado e configurado em seus computadores, seu departamento de TI deverá saber como solucionar problemas do driver IBM.

Consultas nativas sem suporte no DirectQuery

Quando você seleciona o DirectQuery como o modo de conectividade de dados no Power Query Desktop, a caixa de texto da instrução SQL nas opções avançadas é desabilitada. Ele está desabilitado porque o conector Power Query IBM Db2 não dá suporte ao envio por push de consulta em cima de uma consulta de banco de dados nativa.

Solução de problemas

Verifique se o driver IBM Db2 está instalado

Se você optar por usar o driver IBM Db2 para Power Query Desktop, primeiro precisará baixar, instalar e configurar o driver em seu computador. Para garantir que o driver IBM Db2 tenha sido instalado:

  1. Abra o Windows PowerShell em sua máquina.

  2. Insira o seguinte comando:

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

  3. Na caixa de diálogo que é aberta, você deve ver o seguinte nome na coluna InvariantName :

    IBM.Data.DB2

Se esse nome estiver na coluna InvariantName, o driver IBM Db2 foi instalado e configurado corretamente.

Códigos de erro SQLCODE -805 e SQLCODE -551

Ao tentar se conectar a um banco de dados IBM Db2, às vezes você pode se deparar com o erro comum SQLCODE -805, que indica que o pacote não foi encontrado na coleção NULLID ou em outras coleções (especificado na configuração de conexão do pacote Power Query). Você também pode encontrar o erro comum SQLCODE -551, que indica que você não pode criar pacotes porque não tem autoridade de associação de pacote.

Normalmente, SQLCODE -805 é seguido por SQLCODE -551, mas você verá apenas a segunda exceção. Na realidade, o problema é o mesmo. Você não tem autoridade para associar o pacote à NULLID ou à coleção especificada.

Normalmente, a maioria dos administradores do IBM Db2 não fornece autoridade de pacote de associação aos usuários finais, especialmente em um ambiente IBM z/OS (mainframe) ou IBM i (AS/400). O Db2 no Linux, Unix ou Windows é diferente porque as contas de usuário têm privilégios de associação por padrão, que criam o pacote MSCS001 (Estabilidade do Cursor) na própria coleção do usuário (nome = nome de logon do usuário).

Se você não tiver privilégios de pacote associado, precisará solicitar ao administrador do Db2 uma autoridade de associação de pacotes. Com essa autoridade de associação de pacotes, conecte-se ao banco de dados e busque dados, que criarão automaticamente o pacote. Posteriormente, o administrador pode revogar a autoridade de associação de empacotamento. Além disso, posteriormente, o administrador pode "associar a cópia" do pacote a outras coleções, para aumentar a simultaneidade, para corresponder melhor aos padrões internos para onde os pacotes estão associados e assim por diante.

Ao se conectar ao IBM Db2 para z/OS, o administrador do Db2 pode executar as etapas a seguir.

  1. Conceda autoridade para associar um novo pacote ao usuário com um dos seguintes comandos:

    • CONCEDER BINDADD NO SISTEMA PARA <authorization_name>
    • CONCEDER PACKADM EM <collection_name> PARA <authorization_name>
  2. Usando o Power Query, conecte-se ao banco de dados IBM Db2 e recupere uma lista de esquemas, tabelas e exibições. O conector de banco de dados Power Query IBM Db2 criará automaticamente o pacote NULLID. MSCS001 e, em seguida, concede a execução no pacote ao público.

  3. Revogue a autoridade para associar um novo pacote ao usuário com um dos seguintes comandos:

    • REVOGAR BINDADD EM <authorization_name>
    • REVOGAR PACKADM EM <collection_name> DE<authorization_name>

Ao se conectar ao IBM Db2 para Linux, Unix ou Windows, o administrador do Db2 pode executar as etapas a seguir.

  1. CONCEDER BINDADD NO BANCO DE DADOS AO <authorization_name DO USUÁRIO>.

  2. Usando o Power Query, conecte-se ao banco de dados IBM Db2 e recupere uma lista de esquemas, tabelas e exibições. O conector Power Query IBM Db2 criará automaticamente o pacote NULLID. MSCS001 e, em seguida, conceda a execução no pacote ao público.

  3. REVOGAR BINDADD NO BANCO DE DADOS DO <authorization_name> DE USUÁRIO.

  4. CONCEDER EXECUÇÃO DO PACOTE <collection.package> PARA O USUÁRIO <authorization_name>.

Ao se conectar ao IBM Db2 para i, o administrador do Db2 pode executar as etapas a seguir.

  1. WRKOBJ QSYS/CRTSQLPKG. Digite "2" para alterar a autoridade do objeto.

  2. Altere a autoridade de *EXCLUDE para PUBLIC ou <authorization_name>.

  3. Posteriormente, altere a autoridade de volta para *EXCLUDE.

Código de erro SQLCODE -360

Ao tentar se conectar ao banco de dados IBM Db2, você pode encontrar o seguinte erro:

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

Esta mensagem de erro indica que você não colocou o valor certo para o nome do banco de dados.

Código de erro SQLCODE -1336

The specified host could not be found.

Verifique o nome duas vezes e confirme se o host é acessível. Por exemplo, use ping em um prompt de comando para tentar alcançar o servidor e garantir que o endereço IP esteja correto ou usar telnet para se comunicar com o servidor.

Código de erro SQLCODE -1037

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

A porta é especificada no final do nome do servidor, separada por dois-pontos. Se ele for omitido, a estimativa padrão de 50000 será usada.

Para localizar a porta que o Db2 está usando para Linux, Unix e Windows, execute este comando:

db2 get dbm cfg | findstr SVCENAME

Procure na saída uma entrada para SVCENAME (e SSL_SVCENAME para conexões criptografadas TLS). Se esse valor for um número, essa será a porta. Caso contrário, faça referência cruzada ao valor com a tabela "serviços" do sistema. Normalmente, você pode encontrar isso em /etc/services ou em c:\windows\system32\drivers\etc\services para Windows.

A captura de tela a seguir mostra a saída desse comando no Linux/Unix.

Image with output of the db2 command in Linux and Unix

A captura de tela a seguir mostra a saída desse comando no Windows.

Image with output of the db2 command in Windows

Determinar o nome do banco de dados

Para determinar o nome do banco de dados a ser usado:

  1. No IBM i, execute DSPRDBDIRE.

    Image showing the output of the Display Relational Database Directory Entries

  2. Uma das entradas terá um Local Remoto de *LOCAL. Essa entrada é a que deve ser usada.

Determinar o número da porta

O driver da Microsoft se conecta ao banco de dados usando o protocolo DRDA (Distributed Relational Database Architecture). A porta padrão para DRDA é a porta 446. Experimente esse valor primeiro.

Para descobrir com certeza em qual porta o serviço DRDA está em execução:

  1. Execute o comando IBM i WRKSRVTBLE.

  2. Role para baixo até encontrar as entradas para DRDA.

    Service Table Entries

  3. Para confirmar se o serviço DRDA está ativado e escutando nessa porta, execute NETSTAT.

    DRDA listening

  4. Escolha a opção 3 (para IPv4) ou a opção 6 (para IPv6).

  5. Pressione F14 para ver os números da porta em vez de nomes e role até ver a porta em questão. Ele deve ter uma entrada com um estado "Ouvir".

    IP connection status

Mais informações