다음을 통해 공유


IBM Db2 데이터베이스

요약

항목 설명
릴리스 상태 일반 공급
제품 Excel
Power BI(의미 체계 모델)
Power BI(데이터 흐름)
패브릭(데이터 흐름 Gen2)
Power Apps(데이터 흐름)
Dynamics 365 Customer Insights
지원되는 인증 유형 기본
데이터베이스
Windows
함수 참조 설명서 DB2. 데이터베이스

참고 항목

일부 기능은 한 제품에 있을 수 있지만 배포 일정 및 호스트별 기능으로 인해 다른 기능은 없을 수 있습니다.

필수 조건

기본적으로 IBM Db2 데이터베이스 커넥터는 Microsoft 드라이버를 사용하여 데이터에 연결합니다. 파워 쿼리 데스크톱의 고급 옵션에서 IBM 드라이버를 사용하도록 선택하는 경우 먼저 데이터에 연결하는 데 사용되는 컴퓨터에 .NET용 IBM Db2 드라이버를 설치해야 합니다. 이 드라이버의 이름은 수시로 변경되므로 .NET에서 작동하는 IBM Db2 드라이버를 설치해야 합니다. .NET용 IBM Db2 드라이버를 다운로드, 설치 및 구성하는 방법에 대한 지침은 초기 버전 11.5 클라이언트 및 드라이버 다운로드로 이동하세요. 추가 정보: 드라이버 제한 사항, IBM Db2 드라이버가 설치되어 있는지 확인

지원되는 기능

  • 가져오기
  • DirectQuery(Power BI 의미 체계 모델)
  • 고급 옵션
    • 드라이버(IBM 또는 Microsoft)
    • 명령 시간 제한(분)
    • 패키지 컬렉션
    • SQL statement
    • 관계 열 포함
    • 전체 계층 구조를 사용하여 탐색

파워 쿼리 데스크톱에서 IBM Db2 데이터베이스로 커넥트

연결을 만들려면 다음 단계를 수행합니다.

  1. 데이터 가져오기에서 IBM Db2 데이터베이스 옵션을 선택합니다.

  2. 서버에서 연결할 IBM Db2 서버를 지정합니다. 포트가 필요한 경우 포트 번호인 ServerName:Port 형식을 사용하여 지정합니다. 또한 데이터베이스에서 액세스하려는 IBM Db2 데이터베이스를 입력합니다. 이 예제에서는 서버 이름과 포트가 있고 TestIBMDb2server.contoso.com:4000 액세스 중인 IBM Db2 데이터베이스가 NORTHWD2있습니다.

    Enter IBM Db2 database connection.

  3. Power BI Desktop에서 연결하는 경우 가져오기 또는 DirectQuery 데이터 연결 모드를 선택합니다. 다음 예제 단계의 나머지 단계에서는 데이터 연결 가져오기 모드를 사용합니다. DirectQuery에 대해 자세히 알아보려면 Power BI Desktop에서 DirectQuery 사용으로 이동하세요.

    참고 항목

    기본적으로 IBM Db2 데이터베이스 대화 상자는 로그인하는 동안 Microsoft 드라이버를 사용합니다. IBM 드라이버를 사용하려면 고급 옵션을 열고 IBM을 선택합니다. 추가 정보: 고급 옵션을 사용하여 커넥트

    데이터 연결 모드로 DirectQuery를 선택하면 고급 옵션의 SQL 문이 비활성화됩니다. DirectQuery는 현재 IBM Db2 커넥터에 대한 네이티브 데이터베이스 쿼리 위에 쿼리 푸시다운을 지원하지 않습니다.

  4. 확인을 선택합니다.

  5. 이 IBM Db2 데이터베이스에 처음 연결하는 경우 사용할 인증 유형을 선택하고 자격 증명을 입력한 다음 커넥트 선택합니다. 인증에 대한 자세한 내용은 데이터 원본을 사용한 인증으로 이동하세요.

    Enter your IBM Db2 database credentials.

    기본적으로 파워 쿼리는 암호화된 연결을 사용하여 IBM Db2 데이터베이스에 연결하려고 시도합니다. 암호화된 연결을 사용하여 파워 쿼리를 연결할 수 없는 경우 "연결할 수 없음" 대화 상자가 나타납니다. 암호화되지 않은 연결을 사용하여 연결하려면 확인을 선택합니다.

    Unable to connect dialog box

  6. 탐색기에서 필요한 데이터를 선택한 다음 로드를 선택하여 데이터를 로드하거나 데이터 변환을 선택하여 데이터를 변환합니다.

    Select the data you require from the database

파워 쿼리 Online에서 IBM Db2 데이터베이스로 커넥트

연결을 만들려면 다음 단계를 수행합니다.

  1. 파워 쿼리 - 데이터 원본 페이지로 커넥트 IBM Db2 데이터베이스 옵션을 선택합니다.

  2. 서버에서 연결할 IBM Db2 서버를 지정합니다. 포트가 필요한 경우 포트 번호인 ServerName:Port 형식을 사용하여 지정합니다. 또한 데이터베이스에서 액세스하려는 IBM Db2 데이터베이스를 입력합니다. 이 예제에서는 서버 이름 및 포트가 있으며 TestIBMDb2server.contoso.com:4000 액세스 중인 IBM Db2 데이터베이스는 NORTHWD2

  3. 온-프레미스 데이터 게이트웨이의 이름을 선택합니다.

    참고 항목

    IBM Db2 데이터베이스가 로컬 네트워크에 있든 온라인이든 관계없이 이 커넥터에 대한 온-프레미스 데이터 게이트웨이를 선택해야 합니다.

  4. 이 IBM Db2 데이터베이스에 처음 연결하는 경우 인증 종류에서 연결에 대한 자격 증명 유형을 선택합니다. Windows 인증 대신 IBM Db2 데이터베이스에서 만든 계정을 사용하려는 경우 기본을 선택합니다.

  5. 자격 증명을 입력합니다.

  6. 암호화된 연결을 사용하려면 암호화된 커넥트ion 사용을 선택하거나 암호화되지 않은 연결을 사용하려는 경우 옵션을 선택 취소합니다.

    Enter IBM Db2 database online connection.

  7. 다음을 선택하여 작업을 계속할 수 있습니다.

  8. 탐색기에서 필요한 데이터를 선택한 다음 데이터 변환을 선택하여 파워 쿼리 편집기에서 데이터를 변환합니다.

    Select the data you want to transform in the Navigator

고급 옵션을 사용하여 연결

파워 쿼리는 필요한 경우 쿼리에 추가할 수 있는 고급 옵션 집합을 제공합니다.

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

다음 표에서는 파워 쿼리에서 설정할 수 있는 모든 고급 옵션을 나열합니다.

고급 옵션 설명
드라이버 IBM Db2 데이터베이스에 연결하는 데 사용되는 드라이버를 결정합니다. 선택 항목은 IBM 및 Windows(기본값)입니다. IBM 드라이버를 선택하는 경우 먼저 .NET용 IBM Db2 드라이버가 컴퓨터에 설치되어 있는지 확인해야 합니다. 이 옵션은 파워 쿼리 Desktop에서만 사용할 수 있습니다. 자세한 정보: IBM Db2 드라이버가 설치되어 있는지 확인
명령 시간 제한(분) 연결이 10분 이상 지속되는 경우(기본 시간 제한) 다른 값을 분 단위로 입력하여 연결을 더 오래 열어 둘 수 있습니다.
패키지 컬렉션 패키지를 찾을 위치를 지정합니다. 패키지는 SQL 문을 처리할 때 Db2에서 사용하는 제어 구조이며 필요한 경우 자동으로 만들어집니다. 기본적으로 이 옵션은 값을 NULLID사용합니다. Microsoft 드라이버를 사용하는 경우에만 사용할 수 있습니다. 추가 정보: DB2 패키지: 개념, 예제 및 일반적인 문제
SQL statement 자세한 내용은 네이티브 데이터베이스 쿼리를 사용하여 데이터베이스에서 데이터 가져오기를 참조하세요.
관계 열 포함 선택하면 다른 테이블과 관계가 있을 수 있는 열을 포함합니다. 이 상자를 선택 취소하면 해당 열이 표시되지 않습니다.
전체 계층 구조를 사용하여 탐색 선택하면 탐색기는 연결 중인 데이터베이스의 전체 테이블 계층을 표시합니다. 선택을 취소하면 탐색기는 열과 행에 데이터가 포함된 테이블만 표시합니다.

필요한 고급 옵션을 선택한 후 파워 쿼리 데스크톱에서 확인을 선택하거나 파워 쿼리 온라인의 다음을 선택하여 IBM Db2 데이터베이스에 연결합니다.

문제 및 제한 사항

드라이버 제한 사항

Microsoft 드라이버는 "ADO.NET Provider for DB2"라고 하는 Microsoft Host Integration Server에서 사용되는 것과 동일합니다. IBM 드라이버는 .NET에서 작동하는 IBM Db/2 드라이버입니다. 이 드라이버의 이름은 수시로 변경되므로 OLE/DB, ODBC 또는 JDBC에서 작동하는 IBM Db2 드라이버와는 다른 .NET에서 작동하는 드라이버인지 확인합니다.

파워 쿼리 데스크톱을 사용하는 경우 Microsoft 드라이버(기본값) 또는 IBM 드라이버를 사용하도록 선택할 수 있습니다. 현재 파워 쿼리 온라인은 Microsoft 드라이버만 사용합니다. 각 드라이버에는 제한 사항이 있습니다.

  • Microsoft 드라이버
    • TLS(전송 계층 보안)를 지원하지 않음
  • IBM 드라이버
    • IBM Db2 데이터베이스 커넥터는 .NET용 IBM Db2 드라이버를 사용하는 경우 메인프레임 또는 IBM i 시스템에서 작동하지 않습니다.
    • DirectQuery를 지원하지 않음

Microsoft는 Microsoft 드라이버에 대한 지원을 제공하지만 IBM 드라이버에 대해서는 지원하지 않습니다. 그러나 IT 부서가 컴퓨터에 이미 설정하고 구성한 경우 IT 부서는 IBM 드라이버 문제를 해결하는 방법을 알아야 합니다.

DirectQuery에서 지원되지 않는 네이티브 쿼리

파워 쿼리 데스크톱에서 데이터 연결 모드로 DirectQuery를 선택하면 고급 옵션의 SQL 문 텍스트 상자가 비활성화됩니다. 파워 쿼리 IBM Db2 커넥터는 현재 네이티브 데이터베이스 쿼리 위에 있는 쿼리 푸시다운을 지원하지 않으므로 사용하지 않도록 설정되었습니다.

문제 해결

IBM Db2 드라이버가 설치되어 있는지 확인합니다.

파워 쿼리 데스크톱에 IBM Db2 드라이버를 사용하도록 선택하는 경우 먼저 머신에서 드라이버를 다운로드, 설치 및 구성해야 합니다. IBM Db2 드라이버가 설치되었는지 확인하려면 다음을 수행합니다.

  1. 컴퓨터에서 Windows PowerShell을 엽니다.

  2. 다음 명령을 입력합니다.

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

  3. 열리는 대화 상자에 InvariantName 열에 다음 이름이 표시됩니다.

    IBM.Data.DB2

이 이름이 InvariantName 열에 있는 경우 IBM Db2 드라이버가 올바르게 설치 및 구성되었습니다.

SQLCODE -805 및 SQLCODE -551 오류 코드

IBM Db2 데이터베이스에 연결하려고 할 때 패키지를 찾을 수 없거나 다른 컬렉션(파워 쿼리 패키지 연결 구성에 지정됨)에서 찾을 NULLID 수 없음을 나타내는 일반적인 오류 SQLCODE -805가 발생할 수 있습니다. 패키지 바인딩 권한이 없기 때문에 패키지를 만들 수 없음을 나타내는 일반적인 오류 SQLCODE -551이 발생할 수도 있습니다.

일반적으로 SQLCODE -805 뒤에 SQLCODE -551이 표시되지만 두 번째 예외만 표시됩니다. 실제로 문제는 동일합니다. 패키지를 지정된 컬렉션에 NULLID 바인딩할 권한이 없습니다.

일반적으로 대부분의 IBM Db2 관리자는 특히 IBM z/OS(기본frame) 또는 IBM i(AS/400) 환경에서 최종 사용자에게 바인딩 패키지 권한을 제공하지 않습니다. Linux, Unix 또는 Windows의 Db2는 사용자 계정에 기본적으로 바인딩 권한이 있으므로 사용자의 컬렉션에 MSCS001(커서 안정성) 패키지를 만듭니다(이름 = 사용자 로그인 이름).

바인딩 패키지 권한이 없는 경우 Db2 관리자에게 패키지 바인딩 권한을 요청해야 합니다. 이 패키지 바인딩 기관을 사용하여 데이터베이스에 연결하고 데이터를 가져와 패키지를 자동으로 만듭니다. 그 후 관리자는 패키징 바인딩 기관을 해지할 수 있습니다. 또한 나중에 관리자는 패키지를 다른 컬렉션에 "바인딩"하여 동시성을 높이고 패키지가 바인딩된 위치에 대한 내부 표준과 더 잘 일치하도록 할 수 있습니다.

z/OS용 IBM Db2에 연결할 때 Db2 관리자는 다음 단계를 수행할 수 있습니다.

  1. 다음 명령 중 하나를 사용하여 사용자에게 새 패키지를 바인딩할 권한을 부여합니다.

    • 시스템에 BINDADD를 부여하여 <authorization_name>
    • COLLECTION_NAME AUTHORIZATION_NAME 부여 PACKADM <><>
  2. 파워 쿼리를 사용하여 IBM Db2 데이터베이스에 연결하고 스키마, 테이블 및 뷰 목록을 검색합니다. 파워 쿼리 IBM Db2 데이터베이스 커넥터는 패키지 NULLID를 자동으로 만듭니다. MSCS001 다음 패키지에 대한 실행을 공개에 부여합니다.

  3. 다음 명령 중 하나를 사용하여 사용자에게 새 패키지를 바인딩하도록 권한을 취소합니다.

    • AUTHORIZATION_NAME BINDADD 해 <>
    • authorization_name collection_name> PACKADM <취소<>

Linux, Unix 또는 Windows용 IBM Db2에 연결할 때 Db2 관리자는 다음 단계를 수행할 수 있습니다.

  1. 데이터베이스의 BINDADD를 사용자 <authorization_name> 부여합니다.

  2. 파워 쿼리를 사용하여 IBM Db2 데이터베이스에 연결하고 스키마, 테이블 및 뷰 목록을 검색합니다. 파워 쿼리 IBM Db2 커넥터는 패키지 NULLID를 자동으로 만듭니다. MSCS001 다음 패키지에 대한 실행을 공개에 부여합니다.

  3. 사용자 <authorization_name> 데이터베이스의 BINDADD를 해지합니다.

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

i용 IBM Db2에 연결할 때 Db2 관리자는 다음 단계를 수행할 수 있습니다.

  1. WRKOBJ QSYS/CRTSQLPKG. 개체 기관을 변경하려면 "2"를 입력합니다.

  2. 권한을 *EXCLUDE에서 PUBLIC 또는 <authorization_name> 변경합니다.

  3. 그런 다음 권한을 다시 *EXCLUDE로 변경합니다.

SQLCODE -360 오류 코드

IBM Db2 데이터베이스에 연결을 시도할 때 다음 오류가 발생할 수 있습니다.

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

이 오류 메시지는 데이터베이스 이름에 올바른 값을 넣지 않았음을 나타냅니다.

SQLCODE -1336 오류 코드

The specified host could not be found.

이름을 두 번 검사 호스트에 연결할 수 있는지 확인합니다. 예를 들어 명령 프롬프트에서 ping을 사용하여 서버에 도달하고 IP 주소가 올바른지 확인하거나 텔넷을 사용하여 서버와 통신합니다.

SQLCODE -1037 오류 코드

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

포트는 콜론으로 구분된 서버 이름의 끝에 지정됩니다. 생략하면 기본값인 50000이 사용됩니다.

Db2가 Linux, Unix 및 Windows에 사용하는 포트를 찾으려면 다음 명령을 실행합니다.

db2 get dbm cfg | findstr SVCENAME

출력에서 SVCENAME(및 TLS 암호화 연결에 대한 SSL_SVCENAME)에 대한 항목을 찾습니다. 이 값이 숫자인 경우 포트입니다. 그렇지 않으면 시스템의 "서비스" 테이블과 값을 상호 참조합니다. 일반적으로 Windows용 /etc/services 또는 c:\windows\system32\drivers\etc\services에서 찾을 수 있습니다.

다음 스크린샷은 Linux/Unix에서 이 명령의 출력을 보여줍니다.

Image with output of the db2 command in Linux and Unix

다음 스크린샷은 Windows에서 이 명령의 출력을 보여 줍니다.

Image with output of the db2 command in Windows

데이터베이스 이름 확인

사용할 데이터베이스 이름을 확인하려면 다음을 수행합니다.

  1. IBM i에서 실행 DSPRDBDIRE합니다.

    Image showing the output of the Display Relational Database Directory Entries

  2. 항목 중 하나에 *LOCAL의 원격 위치가 있습니다. 이 항목은 사용할 항목입니다.

포트 번호 확인

Microsoft 드라이버는 DRDA(Distributed Relational Database Architecture) 프로토콜을 사용하여 데이터베이스에 연결합니다. DRDA의 기본 포트는 포트 446입니다. 먼저 이 값을 사용해 보세요.

DRDA 서비스가 실행 중인 포트를 확실히 찾으려면 다음을 수행합니다.

  1. IBM i 명령을 WRKSRVTBLE실행합니다.

  2. DRDA에 대한 항목을 찾을 때까지 아래로 스크롤합니다.

    Service Table Entries

  3. DRDA 서비스가 해당 포트에서 수신 대기 중인지 확인하려면 실행 NETSTAT합니다.

    DRDA listening

  4. 옵션 3(IPv4의 경우) 또는 옵션 6(IPv6)을 선택합니다.

  5. F14 키를 눌러 이름 대신 포트 번호를 확인하고 해당 포트가 표시될 때까지 스크롤합니다. "수신 대기" 상태의 항목이 있어야 합니다.

    IP connection status

자세한 정보