변환 및 평가를 위한 메타데이터 생성
이 문서에서는 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
- Microsoft SQL Server
- IBM Netezza
- Oracle
- 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 저장소에서 소스 코드를 검토하고 자체 바이너리를 컴파일할 수 있습니다.
기본 요건
Java 설치
dwh-migration-dumper
도구를 실행하려는 서버에 Java 8 이상이 설치되어 있어야 합니다. Java가 설치되어 있지 않으면 Java 다운로드 페이지에서 Java를 다운로드하여 설치합니다.
필수 권한
dwh-migration-dumper
도구를 소스 시스템에 연결하기 위해 지정하는 사용자 계정에는 해당 시스템에서 메타데이터를 읽을 수 있는 권한이 있어야 합니다.
이 계정에 플랫폼에 제공되는 메타데이터 리소스를 쿼리할 수 있는 적절한 역할 멤버십이 있는지 확인합니다. 예를 들어 INFORMATION_SCHEMA
는 여러 플랫폼에 공통되는 메타데이터 리소스입니다.
dwh-migration-dumper
도구 설치
dwh-migration-dumper
도구를 설치하려면 다음 단계를 수행합니다.
dwh-migration-dumper
도구를 실행하려는 머신의dwh-migration-dumper
도구 GitHub 저장소에서 ZIP 파일을 다운로드합니다.SHA256SUMS.txt
파일을 다운로드하고 다음 명령어를 실행합니다. 확인에 실패하면 문제 해결을 참조하세요.sha256sum --check SHA256SUMS.txt
- ZIP 파일의 압축을 풉니다. 추출 도구 바이너리는 ZIP 파일의 압축을 풀어서 만든 폴더의
/bin
하위 디렉터리에 있습니다. - 추출 도구의 설치 경로를 포함하도록
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 |
데이터베이스 로그를 생성하거나 메타데이터를 추출할 때 평가 모드를 켭니다.
|
평가 실행에 사용될 때 필요하고, 변환에는 필요하지 않습니다. | |
--connector |
사용할 커넥터 이름입니다. 여기에서는 메타데이터의 경우 teradata 또는 쿼리 로그의 경우 teradata-logs입니다. | 예 | |
--database |
추출할 데이터베이스 목록이며, 쉼표로 구분됩니다. 데이터베이스 이름은 Teradata 서버 구성에 따라 대소문자를 구분할 수 있습니다. 이 플래그를 이 플래그는 |
아니요 | |
--driver |
이 연결에 사용할 드라이버 JAR 파일의 절대 또는 상대 경로입니다. 여러 드라이버 JAR 파일을 지정하여 쉼표로 구분할 수 있습니다. | 예 | |
--host |
localhost | 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. | 아니요 |
--password |
데이터베이스 연결에 사용할 비밀번호입니다. | 지정하지 않으면 추출 도구가 보안 프롬프트를 사용하여 요청합니다. | |
--port |
1025 | 데이터베이스 서버의 포트입니다. | 아니요 |
--user |
데이터베이스 연결에 사용할 사용자 이름입니다. |
예 | |
--query-log-alternates |
대체 위치에서 쿼리 로그를 추출하려면
기본적으로 쿼리 로그는 예를 들면 |
No | |
-Dteradata.tmode |
연결의 트랜잭션 모드입니다. 다음과 같은 값이 지원됩니다.
예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata-logs.log-date-column |
예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata-logs.query-logs-table |
기본적으로 쿼리 로그는 예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata-logs.sql-logs-table |
기본적으로 SQL 텍스트가 포함된 쿼리 로그는 예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata-logs.utility-logs-table |
기본적으로 유틸리티 로그는 예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata-logs.res-usage-scpu-table |
기본적으로 SCPU 리소스 사용량 로그는 예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata-logs.res-usage-spma-table |
기본적으로 SPMA 리소스 사용량 로그는 예시(Bash): 예시(Windows PowerShell): |
아니요 | |
--query-log-start |
추출할 쿼리 로그의 시작 시간(포함)입니다. 값은 시간으로 잘립니다. 이 플래그는 teradata-logs 커넥터에만 사용할 수 있습니다.
예: |
아니요 | |
--query-log-end |
추출할 쿼리 로그의 종료 시간(제외)입니다. 값은 시간으로 잘립니다. 이 플래그는 teradata-logs 커넥터에만 사용할 수 있습니다.
예: |
아니요 | |
-Dteradata.metadata.tablesizev.max-rows |
예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata.metadata.diskspacev.max-rows |
예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata.metadata.databasesv.users.max-rows |
예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata.metadata.databasesv.dbs.max-rows |
예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata.metadata.max-text-length |
예시(Bash): 예시(Windows PowerShell): |
아니요 | |
-Dteradata-logs.max-sql-length |
예시(Bash): 예시(Windows PowerShell): |
아니요 |
예시
다음 예시에서는 로컬 호스트에서 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입니다. 액세스 키는
|
명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.
|
|
--iam-profile |
인증에 사용할 AWS IAM 프로필입니다.
이 플래그를 |
명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.
|
|
--iam-secretaccesskey |
인증에 사용할 AWS IAM 보안 비밀 액세스 키입니다. 보안 비밀 액세스 키는
|
명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.
|
|
--password |
데이터베이스 연결에 사용할 비밀번호입니다.
이 플래그를 |
명시적으로 지정하지는 않지만 다음 방법 중 하나를 통해 인증 정보를 제공해야 합니다.
|
|
--port |
5439 | 데이터베이스 서버의 포트입니다. | 아니요 |
--user |
데이터베이스 연결에 사용할 사용자 이름입니다. | 예 | |
--query-log-start |
추출할 쿼리 로그의 시작 시간(포함)입니다. 값은 시간으로 잘립니다. 이 플래그는 redshift-raw-logs 커넥터에만 사용할 수 있습니다.
예: |
아니요 | |
--query-log-end |
추출할 쿼리 로그의 종료 시간(제외)입니다. 값은 시간으로 잘립니다. 이 플래그는 redshift-raw-logs 커넥터에만 사용할 수 있습니다.
예: |
아니요 |
예시
다음 예시에서는 인증에 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 |
메타데이터를 추출할 때 평가 모드를 켭니다.
|
평가에 필요합니다. 번역에는 필요하지 않습니다. | |
--connector |
사용할 커넥터의 이름입니다(여기에서는 hiveql). | 예 | |
--hive-metastore-dump-partition-metadata |
true |
이 플래그를 |
No |
--hive-metastore-version |
2.3.6 |
|
아니요 |
--host |
localhost | 데이터베이스 서버의 호스트 이름 또는 IP 주소입니다. | 아니요 |
--port |
9083 | 데이터베이스 서버의 포트입니다. | No |
--hive-kerberos-url |
인증에 사용할 Kerberos 주 구성원 및 호스트입니다. | Kerberos 인증이 사용 설정된 클러스터에 필요합니다. | |
-Dhiveql.rpc.protection |
RPC 보호 구성 수준입니다. 이에 따라 클러스터와 다음 값 중 하나를 사용하여 클러스터의
예시(Bash): 예시(Windows PowerShell): |
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
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
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 |
데이터베이스 연결에 사용할 사용자 이름입니다.
메타데이터를 추출하려면 지정한 사용자에게 |
예 |
예시
다음 예시에서는 연결에 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
스키마에서 메타데이터를 읽을 수 있도록 다음 단계를 수행해야 합니다.
- Snowflake 웹 인터페이스에서 Shares(공유) 옵션을 엽니다.
SNOWFLAKE.ACCOUNT_USAGE
공유에서 데이터베이스를 만듭니다.-- CREATE DATABASE database FROM SHARE SNOWFLAKE.ACCOUNT_USAGE;
역할 만들기
CREATE ROLE role;
새 데이터베이스에 대해
IMPORTED
권한을 역할에 부여합니다.GRANT IMPORTED PRIVILEGES ON DATABASE database TO ROLE role;
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를 사용하려면 다음 형식을 사용합니다. Google Cloud 사용자 인증 정보를 사용하여 인증하려면 클라이언트 라이브러리 사용을 위한 인증을 참조하세요. |
--password |
데이터베이스 연결에 사용할 비밀번호입니다. |
--port |
데이터베이스 서버의 포트입니다. |
--save-response-file |
쉽게 사용할 수 있도록 명령줄 옵션을 JSON 파일에 저장합니다. 파일 이름은 dumper-response-file.json 이며 작업 디렉터리에 생성됩니다. 응답 파일을 사용하려면 추출 도구를 실행할 때 @ 가 프리픽스로 붙은 경로(예: dwh-migration-dumper @path/to/dumper-response-file.json )를 제공합니다.
|
--schema |
추출할 스키마 목록이며, 쉼표로 구분됩니다.
Oracle은 스키마와 스키마를 만든 데이터베이스 사용자를 구별하지 않으므로 |
--thread-pool-size |
연결 풀 크기에 영향을 주는 스레드 풀 크기를 설정합니다.
스레드 풀의 기본 크기는 추출 도구가 느려지거나 더 많은 리소스가 필요한 경우에는 사용되는 스레드 수를 늘릴 수 있습니다. 서버의 다른 프로세스에 더 많은 대역폭이 필요하다는 징후가 있으면 사용되는 스레드 수를 줄일 수 있습니다. |
--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). 이 옵션은 hiveql
및 redshift*
커넥터에만 지원됩니다.
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
파일을 다운로드하고 다음 명령어를 실행합니다.
sha256sum --check SHA256SUMS.txt
OK
결과는 성공적인 체크섬 확인을 확인합니다. 다른 메시지는 확인 오류를 나타냅니다.
FAILED: computed checksum did NOT match
: ZIP 파일이 손상되어 다시 다운로드해야 합니다.FAILED: listed file could not be read
: ZIP 파일 버전을 찾을 수 없습니다. 체크섬 및 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입니다. 이 한도를 초과하면 덤프기가 none
[Error 9804] [SQLState HY000] Response Row size or Constant Row size overflow
메시지와 함께 실패합니다.
이 오류를 해결하려면 행 한도를 1MB로 확장하거나 행을 여러 행으로 분할합니다.
- 1MB Perm 및 Response Rows 기능과 현재 TTU 소프트웨어를 설치하고 사용 설정합니다. 자세한 내용은 Teradata Database Message 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"
다음 단계
dwh-migration-dumper
도구를 실행한 후 변환할 소스 파일과 함께 Cloud Storage에 출력 업로드하기