변환 및 평가를 위한 메타데이터 생성

이 문서에서는 dwh-migration-dumper 명령줄 추출 도구를 사용하여 메타데이터를 만들고 로그 파일을 쿼리하는 방법을 설명합니다. 메타데이터 파일은 소스 시스템의 SQL 객체를 설명합니다.

BigQuery Migration Service는 이 정보를 사용하여 소스 시스템 언어에서 GoogleSQL로의 SQL 스크립트 번역을 개선합니다.

BigQuery 마이그레이션 평가는 메타데이터 파일을 사용하고 로그 파일을 쿼리하여 기존 데이터 웨어하우스를 분석하고 데이터 웨어하우스를 BigQuery로 이전하는 작업을 평가합니다.

개요

dwh-migration-dumper 도구를 사용하여 BigQuery로 마이그레이션하려는 데이터베이스 플랫폼에서 메타데이터 정보를 추출할 수 있습니다. 변환에는 추출 도구가 필요하지 않지만 BigQuery 마이그레이션 평가에는 필수이므로 모든 마이그레이션 태스크에 사용하는 것이 좋습니다.

자세한 내용은 메타데이터 파일 만들기를 참조하세요.

dwh-migration-dumper 도구를 사용하여 다음 데이터베이스 플랫폼에서 메타데이터를 추출할 수 있습니다.

  • Teradata
  • Amazon Redshift
  • Apache Hive
  • Apache Spark
  • Azure Synapse
  • Greenplum
  • Microsoft SQL Server
  • IBM Netezza
  • Oracle
  • PostgreSQL
  • Snowflake
  • Trino 또는 PrestoSQL
  • Vertica

이러한 데이터베이스에서는 대부분 쿼리 로그를 추출할 수도 있습니다.

dwh-migration-dumper 도구는 시스템 테이블을 쿼리하여 사용자 및 시스템 데이터베이스와 관련된 데이터 정의 언어(DDL) 문을 수집합니다. 사용자 데이터베이스의 콘텐츠는 쿼리하지 않습니다. 이 도구는 시스템 테이블의 메타데이터 정보를 CSV 파일로 저장한 후 이러한 파일을 단일 패키지로 압축합니다. 그런 다음 변환 또는 평가를 위해 소스 파일을 업로드할 때 이 zip 파일을 Cloud Storage에 업로드합니다.

쿼리 로그 옵션을 사용하면 dwh-migration-dumper 도구가 시스템 테이블을 쿼리하여 사용자 및 시스템 데이터베이스와 관련된 DDL 문과 쿼리 로그를 가져옵니다. 파일은 CSV 또는 yaml 형식으로 하위 디렉터리에 저장된 후 zip 패키지로 압축됩니다. 어느 단계에서도 사용자 데이터베이스의 콘텐츠가 자체적으로 쿼리되지는 않습니다. 이 단계에서 BigQuery 마이그레이션 평가에 쿼리 로그의 개별 CSV, YAML, 텍스트 파일이 필요하므로, 쿼리 로그 zip 파일에서 이러한 모든 파일의 압축을 풀고 평가를 위해 업로드해야 합니다.

dwh-migration-dumper 도구는 Windows, macOS, Linux에서 실행할 수 있습니다.

dwh-migration-dumper 도구는 Apache 2 라이선스에 따라 제공됩니다.

변환에 dwh-migration-dumper 도구를 사용하지 않을 경우에는 소스 시스템의 SQL 객체에 대해 데이터 정의 언어(DDL) 문을 별도의 텍스트 파일로 수집하여 메타데이터 파일을 수동으로 제공할 수 있습니다.

BigQuery 마이그레이션 평가를 사용하는 마이그레이션 평가를 위해서는 이 도구로 추출된 메타데이터와 쿼리 로그를 제공해야 합니다.

규정 준수 요구사항

쉽게 사용할 수 있도록 컴파일된 dwh-migration-dumper 도구 바이너리가 제공됩니다. 규정 준수 요구사항을 충족하는지 확인하기 위해 도구를 감사해야 하는 경우에는 dwh-migration-dumper 도구 GitHub 저장소에서 소스 코드를 검토하고 자체 바이너리를 컴파일할 수 있습니다.

기본 요건

자바 설치

dwh-migration-dumper 도구를 실행하려는 서버에 Java 8 이상이 설치되어 있어야 합니다. Java가 설치되어 있지 않으면 Java 다운로드 페이지에서 Java를 다운로드하여 설치합니다.

필수 권한

dwh-migration-dumper 도구를 소스 시스템에 연결하기 위해 지정하는 사용자 계정에는 해당 시스템에서 메타데이터를 읽을 수 있는 권한이 있어야 합니다. 이 계정에 플랫폼에 제공되는 메타데이터 리소스를 쿼리할 수 있는 적절한 역할 멤버십이 있는지 확인합니다. 예를 들어 INFORMATION_SCHEMA는 여러 플랫폼에 공통되는 메타데이터 리소스입니다.

dwh-migration-dumper 도구 설치

dwh-migration-dumper 도구를 설치하려면 다음 단계를 수행합니다.

  1. dwh-migration-dumper 도구를 실행하려는 머신의 dwh-migration-dumper 도구 GitHub 저장소에서 ZIP 파일을 다운로드합니다.
  2. dwh-migration-dumper 도구 zip 파일의 유효성을 검사하려면 SHA256SUMS.txt 파일을 다운로드하고 다음 명령어를 실행합니다.

Bash

sha256sum --check SHA256SUMS.txt

확인에 실패하면 문제 해결을 참조하세요.

Windows PowerShell

(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]

RELEASE_ZIP_FILENAMEdwh-migration-dumper 명령줄 추출 도구 출시의 다운로드된 zip 파일 이름으로 바꿉니다(예: dwh-migration-tools-v1.0.52.zip).

True 결과는 체크섬 확인에 성공했음을 나타냅니다.

False 결과는 인증 오류를 나타냅니다. 체크섬 및 ZIP 파일이 동일한 출시 버전에서 다운로드되어 동일한 디렉터리에 있는지 확인합니다.

  1. ZIP 파일의 압축을 풉니다. 추출 도구 바이너리는 ZIP 파일의 압축을 풀어서 만든 폴더의 /bin 하위 디렉터리에 있습니다.
  2. 추출 도구의 설치 경로를 포함하도록 PATH 환경 변수를 업데이트합니다.

dwh-migration-dumper 도구 실행

dwh-migration-dumper 도구에는 다음 형식이 사용됩니다.

dwh-migration-dumper [FLAGS]

dwh-migration-dumper 도구를 실행하면 작업 디렉터리에 dwh-migration-<source platform>-metadata.zip라는 출력 파일(예: dwh-migration-teradata-metadata.zip)이 생성됩니다.

다음 안내에 따라 소스 플랫폼에 대해 dwh-migration-dumper 도구를 실행하는 방법을 알아보세요.

Teradata

dwh-migration-dumper 도구가 Teradata에 연결하도록 허용하려면 Teradata 다운로드 페이지에서 JDBC 드라이버를 다운로드합니다.

다음 표에서는 추출 도구를 사용하여 Teradata 메타데이터 및 쿼리 로그 추출을 위해 일반적으로 사용되는 플래그에 대해 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--assessment

데이터베이스 로그를 생성하거나 메타데이터를 추출할 때 평가 모드를 켭니다. dwh-migration-dumper 도구는 메타데이터 추출에 사용될 때 BigQuery 마이그레이션 평가를 위해 필요한 메타데이터 통계를 생성합니다. 쿼리 로그에 사용되는 경우 BigQuery 마이그레이션 평가를 위한 추가 열을 추출합니다.

평가 실행에 사용될 때 필요하고, 변환에는 필요하지 않습니다.
--connector 사용할 커넥터 이름입니다. 여기에서는 메타데이터의 경우 teradata 또는 쿼리 로그의 경우 teradata-logs입니다.
--database

추출할 데이터베이스 목록이며, 쉼표로 구분됩니다. 데이터베이스 이름은 Teradata 서버 구성에 따라 대소문자를 구분할 수 있습니다.

이 플래그를 teradata 커넥터와 함께 사용하면 dwh-migration-dumper 도구가 제공된 데이터베이스 목록으로 메타데이터 테이블 및 뷰를 필터링합니다. DatabasesVRoleMembersV 뷰는 예외입니다. dwh-migration-dumper 도구는 데이터베이스 이름으로 필터링하지 않고 이러한 뷰에서 데이터베이스와 사용자를 추출합니다.

이 플래그는 teradata-logs 커넥터와 함께 사용할 수 없습니다. 쿼리 로그는 항상 모든 데이터베이스에 대해 추출됩니다.

아니요
--driver 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--password 데이터베이스 연결에 사용할 비밀번호입니다. 지정하지 않으면 추출 도구가 보안 프롬프트를 사용하여 요청합니다.
--port 1025 데이터베이스 서버의 포트입니다. 아니요
--user

데이터베이스 연결에 사용할 사용자 이름입니다.

--query-log-alternates

teradata-logs 커넥터에만 해당합니다.

대체 위치에서 쿼리 로그를 추출하려면 -Dteradata-logs.query-logs-table-Dteradata-logs.sql-logs-table 플래그를 대신 사용하는 것이 좋습니다.

기본적으로 쿼리 로그는 dbc.DBQLogTbldbc.DBQLSQLTbl 테이블에서 추출됩니다. --assessment 플래그를 사용하면 쿼리 로그가 뷰 dbc.QryLogV 및 테이블 dbc.DBQLSQLTbl에서 추출됩니다. 대체 위치에서 쿼리 로그를 추출해야 하는 경우 --query-log-alternates 플래그를 사용하여 정규화된 테이블 또는 뷰 이름을 지정하면 됩니다. 첫 번째 매개변수는 dbc.DBQLogTbl 테이블에 대한 대안을 참조하고, 두 번째 매개변수는 dbc.DBQLSQLTbl 테이블에 대한 대안을 참조합니다. 두 매개변수가 모두 필요합니다.
-Dteradata-logs.log-date-column 플래그는 두 테이블 모두에 색인이 생성된 DATE 유형의 열이 있는 경우 추출 성능을 개선하는 데 사용할 수 있습니다.

예를 들면 --query-log-alternates historicdb.ArchivedQryLogV,historicdb.ArchivedDBQLSqlTbl입니다.

아니요
-Dteradata.tmode

연결의 트랜잭션 모드입니다. 다음과 같은 값이 지원됩니다.

  • ANSI: ANSI 모드로, 기본 모드입니다(플래그가 지정되지 않은 경우).
  • TERA: Teradata 트랜잭션 모드(BTET)
  • DEFAULT: 데이터베이스 서버에 구성된 기본 트랜잭션 모드 사용
  • NONE: 연결을 위해 설정된 모드가 없습니다.

예시(Bash):
-Dteradata.tmode=TERA

예시(Windows PowerShell):
"-Dteradata.tmode=TERA"

아니요
-Dteradata-logs.log-date-column

teradata-logs 커넥터에만 해당합니다.

-Dteradata-logs.query-logs-table-Dteradata-logs.sql-logs-table 플래그로 지정된 테이블 조인 성능을 높이기 위해서는 JOIN 조건으로 DATE 유형의 추가 열을 포함할 수 있습니다. 이 열은 두 테이블에 모두 정의되어야 하며 파티션을 나눈 기본 색인의 일부여야 합니다.

예시(Bash):
-Dteradata-logs.log-date-column=ArchiveLogDate

예시(Windows PowerShell):
"-Dteradata-logs.log-date-column=ArchiveLogDate"

아니요
-Dteradata-logs.query-logs-table

teradata-logs 커넥터에만 해당합니다.

기본적으로 쿼리 로그는 dbc.DBQLogTbl 테이블에서 추출됩니다. --assessment 플래그를 사용하면 쿼리 로그가 뷰 dbc.QryLogV에서 추출됩니다. 대체 위치에서 쿼리 로그를 추출해야 하는 경우 이 플래그를 사용하여 테이블 또는 뷰의 정규화된 이름을 지정하면 됩니다.
-Dteradata-logs.log-date-column 플래그를 참조하여 추출 성능을 개선하세요.

예시(Bash):
-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV

예시(Windows PowerShell):
"-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV"

아니요
-Dteradata-logs.sql-logs-table

teradata-logs 커넥터에만 해당합니다.

기본적으로 SQL 텍스트가 포함된 쿼리 로그는 dbc.DBQLSqlTbl 테이블에서 추출됩니다. 대체 위치에서 추출해야 하는 경우 이 플래그를 사용하여 테이블 또는 뷰의 정규화된 이름을 지정할 수 있습니다.
-Dteradata-logs.log-date-column 플래그를 참조하여 추출 성능을 개선하세요.

예시(Bash):
-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl

예시(Windows PowerShell):
"-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl"

아니요
-Dteradata-logs.utility-logs-table

teradata-logs 커넥터에만 해당됩니다.

기본적으로 유틸리티 로그는 dbc.DBQLUtilityTbl 테이블에서 추출됩니다. 대체 위치에서 유틸리티 로그를 추출해야 하는 경우 -Dteradata-logs.utility-logs-table 플래그를 사용하여 테이블의 정규화된 이름을 지정할 수 있습니다.

예시(Bash):
-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs

예시(Windows PowerShell):
"-Dteradata-logs.utility-logs-table=historicdb.ArchivedUtilityLogs"

아니요
-Dteradata-logs.res-usage-scpu-table

teradata-logs 커넥터에만 해당됩니다.

기본적으로 SCPU 리소스 사용량 로그는 dbc.ResUsageScpu 테이블에서 추출됩니다. 대체 위치에서 추출해야 하는 경우 -Dteradata-logs.res-usage-scpu-table 플래그를 사용하여 테이블의 정규화된 이름을 지정할 수 있습니다.

예시(Bash):
-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu

예시(Windows PowerShell):
"-Dteradata-logs.res-usage-scpu-table=historicdb.ArchivedResUsageScpu"

아니요
-Dteradata-logs.res-usage-spma-table

teradata-logs 커넥터에만 해당됩니다.

기본적으로 SPMA 리소스 사용량 로그는 dbc.ResUsageSpma 테이블에서 추출됩니다. 대체 위치에서 이러한 로그를 추출해야 하는 경우 -Dteradata-logs.res-usage-spma-table 플래그를 사용하여 테이블의 정규화된 이름을 지정할 수 있습니다.

예시(Bash):
-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma

예시(Windows PowerShell):
"-Dteradata-logs.res-usage-spma-table=historicdb.ArchivedResUsageSpma"

아니요
--query-log-start

추출할 쿼리 로그의 시작 시간(포함)입니다. 값은 시간으로 잘립니다. 이 플래그는 teradata-logs 커넥터에서만 사용할 수 있습니다.

예: --query-log-start "2023-01-01 14:00:00"

아니요
--query-log-end

추출할 쿼리 로그의 종료 시간(제외)입니다. 값은 시간으로 잘립니다. 이 플래그는 teradata-logs 커넥터에서만 사용할 수 있습니다.

예: --query-log-end "2023-01-15 22:00:00"

아니요
-Dteradata.metadata.tablesizev.max-rows

teradata 커넥터에만 해당됩니다.

TableSizeV 뷰에서 추출되는 행 수를 제한합니다. 행은 DatabaseName, AccountName, TableName 열로 그룹화된 후에 영구 크기의 크기를 기준으로 내림차순으로 정렬됩니다(SUM(CurrentPerm) 표현식). 그런 다음 지정된 수의 행이 추출됩니다.

예시(Bash):
-Dteradata.metadata.tablesizev.max-rows=100000

예시(Windows PowerShell):
"-Dteradata.metadata.tablesizev.max-rows=100000"

아니요
-Dteradata.metadata.diskspacev.max-rows

teradata 커넥터에만 해당됩니다.

DiskSpaceV 뷰에서 추출되는 행 수를 제한합니다. 행은 영구 공간(CurrentPerm 열)의 크기에 따라 내림차순으로 정렬된 후에 지정된 행 수가 추출됩니다.

예시(Bash):
-Dteradata.metadata.diskspacev.max-rows=100000

예시(Windows PowerShell):
"-Dteradata.metadata.diskspacev.max-rows=100000"

아니요
-Dteradata.metadata.databasesv.users.max-rows

teradata 커넥터에만 해당됩니다.

DatabasesV 뷰에서 추출된 사용자(DBKind='U')를 나타내는 행 수를 제한합니다. 행이 PermSpace 열을 기준으로 내림차순으로 정렬된 후에 지정된 행 수가 추출됩니다.

예시(Bash):
-Dteradata.metadata.databasesv.users.max-rows=100000

예시(Windows PowerShell):
"-Dteradata.metadata.databasesv.users.max-rows=100000"

아니요
-Dteradata.metadata.databasesv.dbs.max-rows

teradata 커넥터에만 해당됩니다.

DatabasesV 뷰에서 추출된 데이터베이스(DBKind='D')를 나타내는 행 수를 제한합니다. 행이 PermSpace 열을 기준으로 내림차순으로 정렬된 후에 지정된 행 수가 추출됩니다.

예시(Bash):
-Dteradata.metadata.databasesv.dbs.max-rows=100000

예시(Windows PowerShell):
"-Dteradata.metadata.databasesv.dbs.max-rows=100000"

아니요
-Dteradata.metadata.max-text-length

teradata 커넥터에만 해당합니다.

TableTextV 뷰에서 데이터를 추출할 때 텍스트 열의 최대 길이입니다. 정의된 한도보다 긴 텍스트는 여러 행으로 분할됩니다. 허용 범위: 5,000 ~ 32,000(경계 포함)

예시(Bash):
-Dteradata.metadata.max-text-length=10000

예시(Windows PowerShell):
"-Dteradata.metadata.max-text-length=10000"

아니요
-Dteradata-logs.max-sql-length

teradata-logs 커넥터에만 해당됩니다.

DBQLSqlTbl.SqlTextInfo 열의 최대 길이입니다. 정의된 한도보다 긴 쿼리 텍스트는 여러 행으로 분할됩니다. 허용 범위: 5,000 ~ 31,000(경계 포함)

예시(Bash):
-Dteradata-logs.max-sql-length=10000

예시(Windows PowerShell):
"-Dteradata-logs.max-sql-length=10000"

아니요

예시

다음 예시에서는 로컬 호스트에서 2개의 Teradata 데이터베이스에 대해 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector teradata \
  --user user \
  --password password \
  --database database1,database2 \
  --driver path/terajdbc4.jar

다음 예시에서는 인증을 위해 로컬 호스트에서 평가에 대한 쿼리 로그를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector teradata-logs \
  --assessment \
  --user user \
  --password password \
  --driver path/terajdbc4.jar

dwh-migration-dumper 도구에서 추출한 테이블 및 뷰

teradata 커넥터를 사용하면 다음 테이블과 뷰가 추출됩니다.

  • DBC.ColumnsV
  • DBC.DatabasesV
  • DBC.DBCInfo
  • DBC.FunctionsV
  • DBC.IndicesV
  • DBC.PartitioningConstraintsV
  • DBC.TablesV
  • DBC.TableTextV

--assessment 플래그와 함께 teradata 커넥터를 사용하면 다음과 같은 추가 테이블 및 뷰가 추출됩니다.

  • DBC.All_RI_ChildrenV
  • DBC.All_RI_ParentsV
  • DBC.AllTempTablesVX
  • DBC.DiskSpaceV
  • DBC.RoleMembersV
  • DBC.StatsV
  • DBC.TableSizeV

teradata-logs 커넥터를 사용하면 다음 테이블과 뷰가 추출됩니다.

  • DBC.DBQLogTbl(--assessment 플래그가 사용된 경우 DBC.QryLogV으로 변경)
  • DBC.DBQLSqlTbl

--assessment 플래그와 함께 teradata-logs 커넥터를 사용하면 다음과 같은 추가 테이블 및 뷰가 추출됩니다.

  • DBC.DBQLUtilityTbl
  • DBC.ResUsageScpu
  • DBC.ResUsageSpma

Redshift

추출 도구로 다음 Amazon Redshift 인증 및 승인 메커니즘을 사용할 수 있습니다.

  • 사용자 이름 및 비밀번호
  • AWS Identity and Access Management(IAM) 액세스 키 ID 및 보안 비밀 키
  • AWS IAM 프로필 이름

사용자 이름 및 비밀번호로 인증하려면 Amazon Redshift 기본 PostgreSQL JDBC 드라이버를 사용합니다. AWS IAM으로 인증하려면 다운로드 페이지에서 다운로드할 수 있는 Amazon Redshift JDBC 드라이버를 사용합니다.

다음 표에서는 dwh-migration-dumper 도구를 사용하여 Amazon Redshift 메타데이터 및 쿼리 로그 추출을 위해 일반적으로 사용되는 플래그에 대해 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--assessment

데이터베이스 로그를 생성할 때 또는 메타데이터를 추출할 때 평가 모드를 켭니다. 메타데이터 추출에 사용될 때 BigQuery 마이그레이션 평가에 필요한 메타데이터 통계를 생성합니다. 쿼리 로그 추출에 사용될 때 BigQuery 마이그레이션 평가를 위한 쿼리 측정항목 통계를 생성합니다.

평가 모드에서 실행하는 경우 필요하며 변환 시에는 필수가 아닙니다.
--connector 사용할 커넥터 이름입니다. 이 경우 메타데이터는 redshift, 쿼리 로그는 redshift-raw-logs입니다.
--database 지정하지 않으면 Amazon Redshift에서 --user 값을 기본 데이터베이스 이름으로 사용합니다.

연결할 데이터베이스의 이름입니다.

아니요
--driver 지정하지 않으면 Amazon Redshift에서 기본 PostgreSQL JDBC 드라이버를 사용합니다. 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다. 아니요
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--iam-accesskeyid

인증에 사용할 AWS IAM 액세스 키 ID입니다. 액세스 키는 AKIAIOSFODNN7EXAMPLE과 같은 문자열입니다.

--iam-secretaccesskey 플래그와 함께 사용하세요. --iam-profile 또는 --password 플래그를 지정할 때는 이 플래그를 사용하지 마세요.

명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.

  • 이 플래그를 --iam-secretaccesskey 플래그와 함께 사용
  • --iam-profile 플래그 사용
  • --password 플래그를 --user 플래그와 함께 사용
--iam-profile

인증에 사용할 AWS IAM 프로필입니다. $HOME/.aws/credentials 파일을 검사하거나 aws configure list-profiles를 실행하여 사용할 프로필 값을 검색할 수 있습니다.

이 플래그를 --iam-accesskeyid, --iam-secretaccesskey, --password 플래그와 함께 사용하지 마세요.

명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.

  • 이 플래그 사용
  • --iam-accesskeyid 플래그를 --iam-secretaccesskey 플래그와 함께 사용
  • --password 플래그를 --user 플래그와 함께 사용
--iam-secretaccesskey

인증에 사용할 AWS IAM 보안 비밀 액세스 키입니다. 보안 비밀 액세스 키는 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY와 같은 문자열입니다.

--iam-accesskeyid 플래그와 함께 사용하세요. 이 플래그를 --iam-profile 또는 --password 플래그와 함께 사용하지 마세요.

명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.

  • 이 플래그를 --iam-accesskeyid 플래그와 함께 사용
  • --iam-profile 플래그 사용
  • --password 플래그를 --user 플래그와 함께 사용
--password 데이터베이스 연결에 사용할 비밀번호입니다.

이 플래그를 --iam-accesskeyid, --iam-secretaccesskey, --iam-profile 플래그와 함께 사용하지 마세요.

명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.

  • 이 플래그를 --user 플래그와 함께 사용
  • --iam-accesskeyid 플래그를 --iam-secretaccesskey 플래그와 함께 사용
  • --password 플래그 사용
--port 5439 데이터베이스 서버의 포트입니다. 아니요
--user 데이터베이스 연결에 사용할 사용자 이름입니다.
--query-log-start

추출할 쿼리 로그의 시작 시간(포함)입니다. 값은 시간으로 잘립니다. 이 플래그는 redshift-raw-logs 커넥터에만 사용할 수 있습니다.

예: --query-log-start "2023-01-01 14:00:00"

아니요
--query-log-end

추출할 쿼리 로그의 종료 시간(제외)입니다. 값은 시간으로 잘립니다. 이 플래그는 redshift-raw-logs 커넥터에만 사용할 수 있습니다.

예: --query-log-end "2023-01-15 22:00:00"

아니요

예시

다음 예시에서는 인증에 AWS IAM 키를 사용하여 지정된 호스트의 Amazon Redshift 데이터베이스에서 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-accesskeyid access_key_ID \
  --iam-secretaccesskey secret_access-key \
  --user user

다음 예시에서는 인증에 대한 사용자 이름 및 비밀번호를 사용하여 기본 호스트의 Amazon Redshift 데이터베이스에서 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --password password \
  --user user

다음 예시에서는 인증에 AWS IAM 프로필을 사용하여 지정된 호스트의 Amazon Redshift 데이터베이스에서 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector redshift \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host host.region.redshift.amazonaws.com \
  --iam-profile profile \
  --user user \
  --assessment

다음 예시에서는 지정된 호스트에서 인증을 위해 AWS IAM 프로필을 사용하여 Amazon Redshift 데이터베이스에서 평가용으로 쿼리 로그를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector redshift-raw-logs \
  --database database \
  --driver path/redshift-jdbc42-version.jar \
  --host 123.456.789.012 \
  --iam-profile profile \
  --user user \
  --assessment

dwh-migration-dumper 도구에서 추출한 테이블 및 뷰

redshift 커넥터를 사용하면 다음 테이블과 뷰가 추출됩니다.

  • SVV_COLUMNS
  • SVV_EXTERNAL_COLUMNS
  • SVV_EXTERNAL_DATABASES
  • SVV_EXTERNAL_PARTITIONS
  • SVV_EXTERNAL_SCHEMAS
  • SVV_EXTERNAL_TABLES
  • SVV_TABLES
  • SVV_TABLE_INFO
  • INFORMATION_SCHEMA.COLUMNS
  • PG_CAST
  • PG_DATABASE
  • PG_LANGUAGE
  • PG_LIBRARY
  • PG_NAMESPACE
  • PG_OPERATOR
  • PG_PROC
  • PG_TABLE_DEF
  • PG_TABLES
  • PG_TYPE
  • PG_VIEWS

--assessment 플래그와 함께 redshift 커넥터를 사용하면 다음과 같은 추가 테이블 및 뷰가 추출됩니다.

  • SVV_DISKUSAGE
  • STV_MV_INFO
  • STV_WLM_SERVICE_CLASS_CONFIG
  • STV_WLM_SERVICE_CLASS_STATE

redshift-raw-logs 커넥터를 사용하면 다음 테이블과 뷰가 추출됩니다.

  • STL_DDLTEXT
  • STL_QUERY
  • STL_QUERYTEXT
  • PG_USER

--assessment 플래그와 함께 redshift-raw-logs 커넥터를 사용하면 다음과 같은 추가 테이블 및 뷰가 추출됩니다.

  • STL_QUERY_METRICS
  • SVL_QUERY_QUEUE_INFO
  • STL_WLM_QUERY

Redshift의 시스템 뷰 및 테이블에 관한 자세한 내용은 Redshift 시스템 뷰Redshift 시스템 카탈로그 테이블을 참조하세요.

Apache Hive/Spark 또는 Trino/PrestoSQL

dwh-migration-dumper 도구는 Kerberos를 통해 Apache Hive 메타스토어에 대한 인증만 지원합니다. 따라서 --user--password 플래그가 사용되지 않고 대신 --hive-kerberos-url 플래그를 사용하여 Kerberos 인증 세부정보를 제공합니다.

다음 표에서는 추출 도구를 사용하여 Apache Hive, Spark, Presto 또는 Trino 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--assessment

메타데이터를 추출할 때 평가 모드를 켭니다. dwh-migration-dumper 도구는 메타데이터 추출에 사용될 때 BigQuery 마이그레이션 평가를 위해 필요한 메타데이터 통계를 생성합니다.

평가에 필요합니다. 변환에는 필요하지 않습니다.
--connector 사용할 커넥터의 이름입니다(여기에서는 hiveql).
--hive-metastore-dump-partition-metadata true

dwh-migration-dumper 도구로 파티션 메타데이터를 추출합니다. Thrift 클라이언트 성능 영향으로 인해 상당 수의 파티션이 포함된 프로덕션 메타스토어에 대해 이 플래그를 false로 설정해야 할 수 있습니다. 이렇게 하면 추출 도구 성능이 향상되지만 BigQuery 측에서 파티션 최적화가 일부 손실됩니다.

이 플래그를 --assessment 플래그와 함께 사용하면 효과가 없으므로 사용하지 마세요.

아니요
--hive-metastore-version 2.3.6

dwh-migration-dumper 도구를 실행하면 이 플래그 값을 기반으로 Apache Hive 서버와 통신하는 데 사용할 적절한 Thrift 사양이 선택됩니다. 추출 도구에 적절한 Thrift 사양이 없으면 2.3.6 클라이언트를 사용하여 stdout에 경고를 표시합니다. 이 경우 지원팀에 문의하고 요청한 Apache Hive 버전 번호를 제공하세요.

아니요
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--port 9083 데이터베이스 서버의 포트입니다. 아니요
--hive-kerberos-url 인증에 사용할 Kerberos 주 구성원 및 호스트입니다. Kerberos 인증이 사용 설정된 클러스터에 필요합니다.
-Dhiveql.rpc.protection

RPC 보호 구성 수준입니다. 이에 따라 클러스터와 dwh-migration-dumper 도구 간의 Simple Authentication and Security Layer(SASL) 연결 보호 품질(QOP)이 결정됩니다.

클러스터의 /etc/hadoop/conf/core-site.xml 파일 내 hadoop.rpc.protection 파라미터 값과 같아야 하며 다음 값 중 하나여야 합니다.

  • authentication
  • integrity
  • privacy

예시(Bash):
-Dhiveql.rpc.protection=privacy

예시(Windows PowerShell):
"-Dhiveql.rpc.protection=privacy"

Kerberos 인증이 사용 설정된 클러스터에 필요합니다.

예시

다음 예시에서는 인증 및 연결을 위한 대체 포트를 사용하지 않고 지정된 호스트에서 Hive 2.3.7 데이터베이스에 대해 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector hiveql \
  --hive-metastore-version 2.3.7 \
  --host host \
  --port port

Kerberos 인증을 사용하려면 Hive 메타스토어에 대한 읽기 권한이 있는 사용자로 로그인하여 Kerberos 티켓을 생성합니다. 그런 후 다음 명령어로 메타데이터 ZIP 파일을 생성합니다.

JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false" \
  dwh-migration-dumper \
  --connector hiveql \
  --host host \
  --port port \
  --hive-kerberos-url principal/kerberos_host

Azure Synapse 또는 Microsoft SQL Server

dwh-migration-dumper 도구가 Azure Synapse 또는 Microsoft SQL Server에 연결할 수 있도록 하려면 Microsoft 다운로드 페이지에서 JDBC 드라이버를 다운로드합니다.

다음 표에서는 추출 도구를 사용하여 Azure Synapse 또는 Microsoft SQL Server 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--connector 사용할 커넥터의 이름입니다(여기에서는 sqlserver).
--database

연결할 데이터베이스의 이름입니다.

--driver 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--password 데이터베이스 연결에 사용할 비밀번호입니다.
--port 1433 데이터베이스 서버의 포트입니다. 아니요
--user 데이터베이스 연결에 사용할 사용자 이름입니다.

예시

다음 예시에서는 지정된 호스트의 Azure Synapse 데이터베이스에서 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector sqlserver \
  --database database \
  --driver path/mssql-jdbc.jar \
  --host server_name.sql.azuresynapse.net \
  --password password \
  --user user

Greenplum

dwh-migration-dumper 도구가 Greenplum에 연결하도록 허용하려면 VMware Greenplum 다운로드 페이지에서 JDBC 드라이버를 다운로드합니다.

다음 표에서는 추출 도구를 사용하여 Greenplum 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--connector 사용할 커넥터의 이름입니다(여기에서는 greenplum).
--database

연결할 데이터베이스의 이름입니다.

--driver 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--password 데이터베이스 연결에 사용할 비밀번호입니다. 지정하지 않으면 추출 도구가 보안 프롬프트를 사용하여 요청합니다.
--port 5432 데이터베이스 서버의 포트입니다. 아니요
--user 데이터베이스 연결에 사용할 사용자 이름입니다.

예시

다음 예시에서는 지정된 호스트에서 Greenplum 데이터베이스의 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector greenplum \
  --database database \
  --driver path/greenplum.jar \
  --host host \
  --password password \
  --user user \

Netezza

dwh-migration-dumper 도구가 IBM Netezza에 연결할 수 있도록 하려면 JDBC 드라이버를 가져와야 합니다. 일반적으로 IBM Netezza 어플라이언스 호스트의 /nz/kit/sbin 디렉터리에서 드라이버를 가져올 수 있습니다. 여기에서 찾을 수 없으면 시스템 관리자에게 도움을 요청하거나 IBM Netezza 문서에서 JDBC 설치 및 구성을 읽어보세요.

다음 표에서는 추출 도구를 사용하여 IBM Netezza 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--connector 사용할 커넥터의 이름입니다(여기에서는 netezza).
--database

추출할 데이터베이스 목록이며, 쉼표로 구분됩니다.

--driver 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--password 데이터베이스 연결에 사용할 비밀번호입니다.
--port 5480 데이터베이스 서버의 포트입니다. 아니요
--user 데이터베이스 연결에 사용할 사용자 이름입니다.

예시

다음 예시에서는 지정된 호스트에서 두 개의 IBM Netezza 데이터베이스에 대해 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector netezza \
  --database database1,database2 \
  --driver path/nzjdbc.jar \
  --host host \
  --password password \
  --user user

PostgreSQL

dwh-migration-dumper 도구가 PostgreSQL에 연결하도록 허용하려면 PostgreSQL 다운로드 페이지에서 JDBC 드라이버를 다운로드합니다.

다음 표에서는 추출 도구를 사용하여 PostgreSQL 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--connector 사용할 커넥터의 이름입니다(여기에서는 postgresql).
--database

연결할 데이터베이스의 이름입니다.

--driver 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--password 데이터베이스 연결에 사용할 비밀번호입니다. 지정하지 않으면 추출 도구가 보안 프롬프트를 사용하여 요청합니다.
--port 5432 데이터베이스 서버의 포트입니다. 아니요
--user 데이터베이스 연결에 사용할 사용자 이름입니다.

예시

다음 예시에서는 지정된 호스트에서 PostgreSQL 데이터베이스의 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector postgresql \
  --database database \
  --driver path/postgresql-version.jar \
  --host host \
  --password password \
  --user user

Oracle

dwh-migration-dumper 도구가 Oracle에 연결하도록 허용하려면 Oracle 다운로드 페이지에서 JDBC 드라이버를 다운로드합니다.

다음 표에서는 추출 도구를 사용하여 Oracle 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--connector 사용할 커넥터의 이름입니다(여기에서는 oracle).
--driver 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--oracle-service

연결에 사용할 Oracle 서비스 이름입니다.

명시적으로 지정하지는 않지만 이 플래그 또는 --oracle-sid 플래그를 지정해야 합니다.
--oracle-sid

연결에 사용할 Oracle 시스템 식별자(SID)입니다.

명시적으로 지정하지는 않지만 이 플래그 또는 --oracle-service 플래그를 지정해야 합니다.
--password 데이터베이스 연결에 사용할 비밀번호입니다. 지정하지 않으면 추출 도구가 보안 프롬프트를 사용하여 요청합니다.
--port 1521 데이터베이스 서버의 포트입니다. 아니요
--user

데이터베이스 연결에 사용할 사용자 이름입니다.

메타데이터를 추출하려면 지정한 사용자에게 SELECT_CATALOG_ROLE 역할이 있어야 합니다. 사용자에게 필요한 역할이 있는지 확인하려면 Oracle 데이터베이스에 대해 select granted_role from user_role_privs; 쿼리를 실행합니다.

예시

다음 예시에서는 연결에 Oracle 서비스를 사용하여 지정된 호스트에서 Oracle 데이터베이스에 대해 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector oracle \
  --driver path/ojdbc8.jar \
  --host host \
  --oracle-service service_name \
  --password password \
  --user user

Snowflake

다음 표에서는 dwh-migration-dumper 도구를 사용하여 Snowflake 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--connector 사용할 커넥터의 이름입니다(여기에서는 snowflake).
--database

연결할 데이터베이스의 이름입니다.

Snowflake에서 한 번에 하나의 데이터베이스에서만 추출할 수 있습니다.

--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--password 데이터베이스 연결에 사용할 비밀번호입니다. 지정하지 않으면 추출 도구가 보안 프롬프트를 사용하여 요청합니다.
--role 승인에 사용할 Snowflake 역할입니다. INFORMATION_SCHEMA 대신 SNOWFLAKE.ACCOUNT_USAGE 스키마에서 메타데이터를 가져와야 하는 대규모 설치에만 이를 지정하면 됩니다. 자세한 내용은 대규모 Snowflake 인스턴스 작업을 참조하세요. 아니요
--user

데이터베이스 연결에 사용할 사용자 이름입니다.

--warehouse

메타데이터 쿼리를 처리하는 데 사용할 Snowflake 웨어하우스입니다.

예시

다음 예시에서는 로컬 호스트에서 일반적으로 크기가 조절된 Snowflake 데이터베이스의 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --password password \
  --user user \
  --warehouse warehouse

다음 예시에서는 지정된 호스트에서 대규모 Snowflake 데이터베이스의 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --connector snowflake \
  --database database \
  --host "account.snowflakecomputing.com" \
  --password password \
  --role role \
  --user user \
  --warehouse warehouse

대규모 Snowflake 인스턴스 작업

dwh-migration-dumper 도구는 Snowflake INFORMATION_SCHEMA에서 메타데이터를 읽습니다. 하지만 INFORMATION_SCHEMA에서 검색할 수 있는 데이터 양에는 제한이 있습니다. 추출 도구를 실행하고 SnowflakeSQLException: Information schema query returned too much data 오류가 발생하면 대신 SNOWFLAKE.ACCOUNT_USAGE 스키마에서 메타데이터를 읽을 수 있도록 다음 단계를 수행해야 합니다.

  1. Snowflake 웹 인터페이스에서 Shares(공유) 옵션을 엽니다.
  2. SNOWFLAKE.ACCOUNT_USAGE 공유에서 데이터베이스를 만듭니다.

    -- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
    
  3. 역할 만들기

    CREATE ROLE role;
    
  4. 새 데이터베이스에 대해 IMPORTED 권한을 역할에 부여합니다.

    GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
    
  5. dwh-migration-dumper 도구 실행에 사용하려는 사용자에게 이 역할을 부여합니다.

    GRANT ROLE role TO USER user;
    

Vertica

dwh-migration-dumper 도구가 Vertica에 연결하도록 허용하려면 다운로드 페이지에서 JDBC 드라이버를 다운로드합니다.

다음 표에서는 추출 도구를 사용하여 Vertica 메타데이터를 추출하는 데 일반적으로 사용되는 플래그를 설명합니다. 지원되는 모든 플래그에 대한 자세한 내용은 전역 플래그를 참조하세요.

이름 기본값 설명 필수
--connector 사용할 커넥터의 이름입니다(여기에서는 vertica).
--database

연결할 데이터베이스의 이름입니다.

--driver 이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--host localhost 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. 아니요
--password 데이터베이스 연결에 사용할 비밀번호입니다.
--port 5433 데이터베이스 서버의 포트입니다. 아니요
--user 데이터베이스 연결에 사용할 사용자 이름입니다.

예시

다음 예시에서는 로컬 호스트의 Vertica 데이터베이스에서 메타데이터를 추출하는 방법을 보여줍니다.

dwh-migration-dumper \
  --driver path/vertica-jdbc.jar \
  --connector vertica \
  --database database
  --user user
  --password password

전역 플래그

다음 표에서는 지원되는 모든 소스 플랫폼에서 사용할 수 있는 플래그를 설명합니다.

이름 설명
--connector 소스 시스템의 커넥터 이름입니다.
--database 사용량은 소스 시스템에 따라 다릅니다.
--driver 소스 시스템에 연결할 때 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다.
--dry-run 또는 -n 실행하지 않고 추출 도구로 수행되는 작업을 표시합니다.
--help 명령줄 도움말을 표시합니다.
--host 연결할 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다.
--jdbcDriverClass 선택적으로 공급업체에서 지정한 JDBC 드라이버 클래스 이름을 재정의합니다. 커스텀 JDBC 클라이언트가 있으면 이를 사용합니다.
--output 출력 zip 파일의 경로입니다. 예를 들면 dir1/dir2/teradata-metadata.zip입니다. 경로를 지정하지 않으면 작업 디렉터리에 출력 파일이 만들어집니다. 디렉터리 경로를 지정하면 기본 zip 파일 이름이 지정된 디렉터리에 만들어집니다. 디렉터리가 없는 경우 디렉터리가 만들어집니다.

Cloud Storage를 사용하려면 다음 형식을 사용합니다.
gs://<BUCKET>/<PATH>

Google Cloud 사용자 인증 정보를 사용하여 인증하려면 클라이언트 라이브러리 사용을 위한 인증을 참조하세요.

--password 데이터베이스 연결에 사용할 비밀번호입니다.
--port 데이터베이스 서버의 포트입니다.
--save-response-file 쉽게 사용할 수 있도록 명령줄 옵션을 JSON 파일에 저장합니다. 파일 이름은 dumper-response-file.json이며 작업 디렉터리에 생성됩니다. 응답 파일을 사용하려면 추출 도구를 실행할 때 @가 프리픽스로 붙은 경로(예: dwh-migration-dumper @path/to/dumper-response-file.json)를 제공합니다.
--schema

추출할 스키마 목록이며, 쉼표로 구분됩니다.

Oracle은 스키마와 스키마를 만든 데이터베이스 사용자를 구별하지 않으므로 --schema 플래그와 함께 스키마 이름 또는 사용자 이름을 사용할 수 있습니다. 예: --schema schema1,user2,schema3

--thread-pool-size

연결 풀 크기에 영향을 주는 스레드 풀 크기를 설정합니다. 스레드 풀의 기본 크기는 dwh-migration-dumper 도구를 실행하는 서버의 코어 수입니다.

추출 도구가 느려지거나 더 많은 리소스가 필요한 경우에는 사용되는 스레드 수를 늘릴 수 있습니다. 서버의 다른 프로세스에 더 많은 대역폭이 필요하다는 징후가 있으면 사용되는 스레드 수를 줄일 수 있습니다.

--url

JDBC 드라이버에서 생성된 URI 대신 데이터베이스 연결에 사용할 URL입니다.

대부분의 경우 생성된 URI로 충분합니다. 소스 플랫폼과 관련이 있고 아직 이 테이블에 나열된 플래그 중 하나로 설정되지 않은 JDBC 연결 문자열을 사용해야 할 경우에만 생성된 URI를 재정의하세요.

--user 데이터베이스 연결에 사용할 사용자 이름입니다.
--version 제품 버전을 표시합니다.

문제 해결

이 섹션에서는 dwh-migration-dumper 도구의 일반적인 문제와 문제 해결 방법을 설명합니다.

메모리 부족 오류

dwh-migration-dumper 도구 터미널 출력의 java.lang.OutOfMemoryError 오류는 검색된 데이터를 처리하기에 메모리가 부족한 것과 관련이 있는 경우가 많습니다. 이 문제를 해결하려면 사용 가능한 메모리를 늘리거나 처리 스레드 수를 줄이세요.

JAVA_OPTS 환경 변수를 내보내 최대 메모리를 늘릴 수 있습니다.

Linux

export JAVA_OPTS="-Xmx4G"

Windows

set JAVA_OPTS="-Xmx4G"

--thread-pool-size 플래그를 포함하면 처리 스레드 수를 줄일 수 있습니다(기본값: 32). 이 옵션은 hiveqlredshift* 커넥터에만 지원됩니다.

dwh-migration-dumper --thread-pool-size=1

WARN...Task failed 오류 처리

dwh-migration-dumper 도구 터미널 출력에 WARN [main] o.c.a.d.MetadataDumper [MetadataDumper.java:107] Task failed: … 오류가 표시될 수도 있습니다. 추출 도구가 소스 시스템에 여러 쿼리를 제출하고 각 쿼리의 출력이 자체 파일에 기록됩니다. 이 문제가 보이면 이러한 쿼리 중 하나가 실패한 것입니다. 그러나 쿼리 하나가 실패하더라도 다른 쿼리의 실행이 방지되지는 않습니다. WARN 오류가 두 번 이상 표시되면 문제 세부정보를 검토하고 쿼리가 올바르게 실행되도록 수정해야 하는 것이 있는지 확인합니다. 예를 들어 추출 도구를 실행할 때 지정한 데이터베이스 사용자에게 모든 메타데이터를 읽을 수 있는 권한이 없으면 올바른 권한을 가진 사용자로 다시 시도합니다.

손상된 ZIP 파일

dwh-migration-dumper 도구 zip 파일의 유효성을 검사하려면 SHA256SUMS.txt 파일을 다운로드하고 다음 명령어를 실행합니다.

Bash

sha256sum --check SHA256SUMS.txt

OK 결과는 체크섬 확인에 성공했음을 나타냅니다. 다른 메시지는 인증 오류를 나타냅니다.

  • FAILED: computed checksum did NOT match: zip 파일이 손상되어 다시 다운로드해야 합니다.
  • FAILED: listed file could not be read: ZIP 파일 버전을 찾을 수 없습니다. 체크섬 및 ZIP 파일이 동일한 출시 버전에서 다운로드되어 동일한 디렉터리에 있는지 확인합니다.

Windows PowerShell

(Get-FileHash RELEASE_ZIP_FILENAME).Hash -eq ((Get-Content SHA256SUMS.txt) -Split " ")[0]

RELEASE_ZIP_FILENAMEdwh-migration-dumper 명령줄 추출 도구 출시의 다운로드된 zip 파일 이름으로 바꿉니다(예: dwh-migration-tools-v1.0.52.zip).

True 결과는 체크섬 확인에 성공했음을 나타냅니다.

False 결과는 인증 오류를 나타냅니다. 체크섬 및 ZIP 파일이 동일한 출시 버전에서 다운로드되어 동일한 디렉터리에 있는지 확인합니다.

Teradata 쿼리 로그 추출이 느림

-Dteradata-logs.query-logs-table-Dteradata-logs.sql-logs-table 플래그로 지정된 테이블 조인 성능을 높이기 위해서는 JOIN 조건으로 DATE 유형의 추가 열을 포함할 수 있습니다. 이 열은 두 테이블에 모두 정의되어야 하며 파티션을 나눈 기본 색인의 일부여야 합니다. 이 열을 포함하려면 -Dteradata-logs.log-date-column 플래그를 사용하세요.

예:

Bash

dwh-migration-dumper \
  -Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV \
  -Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl \
  -Dteradata-logs.log-date-column=ArchiveLogDate

Windows PowerShell

dwh-migration-dumper `
  "-Dteradata-logs.query-logs-table=historicdb.ArchivedQryLogV" `
  "-Dteradata-logs.sql-logs-table=historicdb.ArchivedDBQLSqlTbl" `
  "-Dteradata-logs.log-date-column=ArchiveLogDate"

Teradata 행 크기 한도 초과

Teradata 15의 행 크기 한도는 64KB입니다. 한도를 초과하면 다음 메시지와 함께 Dumper가 실패합니다. none [Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow

이 오류를 해결하려면 행 한도를 1MB로 늘리거나 행을 여러 행으로 분할합니다.

  • 1MB Perm 및 Response Rows 기능과 현재 TTU 소프트웨어를 설치하고 사용 설정합니다. 자세한 내용은 Teradata 데이터베이스 메시지 9804를 참조하세요.
  • -Dteradata.metadata.max-text-length-Dteradata-logs.max-sql-length 플래그를 사용하여 긴 쿼리 텍스트를 여러 행으로 분할합니다.

다음 명령어는 -Dteradata.metadata.max-text-length 플래그를 사용하여 각각 최대 10,000자(영문 기준)의 여러 행으로 긴 쿼리 텍스트를 분할하는 방법을 보여줍니다.

Bash

dwh-migration-dumper \
  --connector teradata \
  -Dteradata.metadata.max-text-length=10000

Windows PowerShell

dwh-migration-dumper `
  --connector teradata `
  "-Dteradata.metadata.max-text-length=10000"

다음 명령어는 -Dteradata-logs.max-sql-length 플래그를 사용하여 각각 최대 10,000자(영문 기준)의 여러 행으로 긴 쿼리 텍스트를 분할하는 방법을 보여줍니다.

Bash

dwh-migration-dumper \
  --connector teradata-logs \
  -Dteradata-logs.max-sql-length=10000

Windows PowerShell

dwh-migration-dumper `
  --connector teradata-logs `
  "-Dteradata-logs.max-sql-length=10000"

Oracle 연결 문제

잘못된 비밀번호나 호스트 이름과 같은 일반적인 경우 dwh-migration-dumper 도구는 근본 문제를 설명하는 의미 있는 오류 메시지를 출력합니다. 그러나 경우에 따라 Oracle 서버에서 반환하는 오류 메시지가 일반 메시지여서 조사하기 어려울 수 있습니다.

이러한 문제 중 하나는 IO Error: Got minus one from a read call입니다. 이 오류는 Oracle 서버에 대한 연결이 설정되었지만 서버가 클라이언트를 수락하지 않고 연결을 닫았음을 나타냅니다. 이 문제는 일반적으로 서버가 TCPS 연결만 허용하는 경우에 발생합니다. 기본적으로 dwh-migration-dumper 도구는 TCP 프로토콜을 사용합니다. 이 문제를 해결하려면 Oracle JDBC 연결 URL을 재정의해야 합니다.

oracle-service, host, port 플래그를 제공하는 대신 url 플래그를 다음 형식(jdbc:oracle:thin:@tcps://{HOST_NAME}:{PORT}/{ORACLE_SERVICE})으로 제공하여 이 문제를 해결할 수 있습니다. 일반적으로 Oracle 서버에서 사용하는 TCPS 포트 번호는 2484입니다.

dumper 명령어 예시:

  dwh-migration-dumper \
    --connector oracle-stats \
    --url "jdbc:oracle:thin:@tcps://host:port/oracle_service" \
    --assessment \
    --driver "jdbc_driver_path" \
    --user "user" \
    --password

연결 프로토콜을 TCPS로 변경하는 것 외에도 Oracle 서버 인증서를 확인하는 데 필요한 trustStore SSL 구성을 제공해야 할 수 있습니다. SSL 구성이 누락되면 Unable to find valid certification path 오류 메시지가 표시됩니다. 이 문제를 해결하려면 JAVA_OPTS 환경 변수를 설정하세요.

  set JAVA_OPTS=-Djavax.net.ssl.trustStore="jks_file_location" -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.trustStorePassword="password"

Oracle 서버 구성에 따라 키 저장소 구성을 제공해야 할 수도 있습니다. 구성 옵션에 관한 자세한 내용은 Oracle JDBC 드라이버를 사용한 SSL을 참고하세요.

다음 단계

dwh-migration-dumper 도구를 실행한 후 변환할 소스 파일과 함께 Cloud Storage에 출력 업로드하기