

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 를 사용하여 Netezza에 연결 AWS Schema Conversion Tool
<a name="CHAP_Source.Netezza"></a>

 AWS SCT 를 사용하여 스키마, 코드 객체 및 애플리케이션 코드를 Netezza에서 Amazon Redshift로 변환할 수 있습니다.

## Netezza를 소스로 사용하기 위한 권한
<a name="CHAP_Source.Netezza.Permissions"></a>

Netezza를 소스로 사용하기 위해 필요한 권한은 다음과 같습니다.
+ select on system.definition\$1schema.system view
+ select on system.definition\$1schema.system table
+ select on system.definition\$1schema.management table
+ list on *<database\$1name>*
+ list on *<schema\$1name>*
+ list on *<database\$1name>*.all.table
+ list on *<database\$1name>*.all.external table
+ list on *<database\$1name>*.all.view
+ list on *<database\$1name>*.all.materialized view
+ list on *<database\$1name>*.all.procedure
+ list on *<database\$1name>*.all.sequence
+ list on *<database\$1name>*.all.function
+ list on *<database\$1name>*.all.aggregate

이전 예제에서 다음과 같이 자리 표시자를 바꿉니다.
+ *database\$1name*을 소스 데이터베이스의 이름으로 바꿉니다.
+ *schema\$1name*을 소스 스키마의 이름으로 바꿉니다.

AWS SCT 에서는 다음 시스템 테이블 및 뷰에 대한 액세스 권한이 필요합니다. 위 목록의 `system.definition_schema.system view` 및 `system.definition_schema.system tables`에 대한 액세스 권한을 부여하는 대신 다음과 같은 객체에 대한 액세스 권한을 부여할 수 있습니다.
+ select on system.definition\$1schema.\$1t\$1aggregate
+ select on system.definition\$1schema.\$1t\$1class
+ select on system.definition\$1schema.\$1t\$1constraint
+ select on system.definition\$1schema.\$1t\$1const\$1relattr
+ select on system.definition\$1schema.\$1t\$1database
+ select on system.definition\$1schema.\$1t\$1grpobj\$1priv
+ select on system.definition\$1schema.\$1t\$1grpusr
+ select on system.definition\$1schema.\$1t\$1hist\$1config
+ select on system.definition\$1schema.\$1t\$1object
+ select on system.definition\$1schema.\$1t\$1object\$1classes
+ select on system.definition\$1schema.\$1t\$1proc
+ select on system.definition\$1schema.\$1t\$1type
+ select on system.definition\$1schema.\$1t\$1user
+ select on system.definition\$1schema.\$1t\$1usrobj\$1priv
+ select on system.definition\$1schema.\$1vt\$1sequence
+ select on system.definition\$1schema.\$1v\$1aggregate
+ select on system.definition\$1schema.\$1v\$1constraint\$1depends
+ select on system.definition\$1schema.\$1v\$1database
+ select on system.definition\$1schema.\$1v\$1datatype
+ select on system.definition\$1schema.\$1v\$1dslice
+ select on system.definition\$1schema.\$1v\$1function
+ select on system.definition\$1schema.\$1v\$1group
+ select on system.definition\$1schema.\$1v\$1obj\$1relation
+ select on system.definition\$1schema.\$1v\$1obj\$1relation\$1xdb
+ select on system.definition\$1schema.\$1v\$1procedure
+ select on system.definition\$1schema.\$1v\$1relation\$1column
+ select on system.definition\$1schema.\$1v\$1relation\$1keydata
+ select on system.definition\$1schema.\$1v\$1relobjclasses
+ select on system.definition\$1schema.\$1v\$1schema\$1xdb
+ select on system.definition\$1schema.\$1v\$1sequence
+ select on system.definition\$1schema.\$1v\$1synonym
+ select on system.definition\$1schema.\$1v\$1system\$1info
+ select on system.definition\$1schema.\$1v\$1sys\$1constraint
+ select on system.definition\$1schema.\$1v\$1sys\$1object\$1dslice\$1info
+ select on system.definition\$1schema.\$1v\$1sys\$1user
+ select on system.definition\$1schema.\$1v\$1table
+ select on system.definition\$1schema.\$1v\$1table\$1constraint
+ select on system.definition\$1schema.\$1v\$1table\$1dist\$1map
+ select on system.definition\$1schema.\$1v\$1table\$1organize\$1column
+ select on system.definition\$1schema.\$1v\$1table\$1storage\$1stat
+ select on system.definition\$1schema.\$1v\$1user
+ select on system.definition\$1schema.\$1v\$1view
+ select on system.information\$1schema.\$1v\$1relation\$1column
+ select on system.information\$1schema.\$1v\$1table
+ select on \$1hist\$1column\$1access\$1\$1

## Netezza에 소스로 연결
<a name="CHAP_Source.Netezza.Connecting"></a>

다음 절차에 따라 AWS Schema Conversion Tool을 사용하여 Netezza 소스 데이터베이스에 연결합니다.

**Netezza 소스 데이터베이스에 연결하려면**

1. 에서 **소스 추가**를 AWS Schema Conversion Tool선택합니다.

1. **Netezza**를 선택한 후 **다음**을 선택합니다.

   **소스 추가** 대화 상자가 나타납니다.

1. **연결 이름**에 데이터베이스의 이름을 입력합니다. AWS SCT 는 왼쪽 패널의 트리에 이 이름을 표시합니다.

1. 에서 데이터베이스 자격 증명을 사용하거나 수동으로 AWS Secrets Manager 입력합니다.
   + Secrets Manager의 데이터베이스 보안 인증 정보를 사용하려면 다음 지침을 따릅니다.

     1. **AWS Secret**에서 보안 암호의 이름을 선택합니다.

     1. **Populate**를 선택하여 Secrets Manager에서 데이터베이스 연결 대화 상자에 있는 모든 값을 자동으로 채웁니다.

     Secrets Manager의 데이터베이스 보안 인증 사용에 대한 자세한 내용은 [AWS Secrets Manager 에서 구성 AWS Schema Conversion Tool](CHAP_UserInterface.SecretsManager.md) 섹션을 참조하세요.
   + Netezza 소스 데이터베이스 연결 정보를 수동으로 입력하려면 다음 지침을 사용합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/SchemaConversionTool/latest/userguide/CHAP_Source.Netezza.html)

1. **연결 테스트를** 선택하여가 소스 데이터베이스에 연결할 AWS SCT 수 있는지 확인합니다.

1. **연결**을 선택하여 소스 데이터베이스에 연결합니다.

## 지속적인 데이터 복제 구성
<a name="CHAP_Source.Netezza.CDC"></a>

Netezza 데이터베이스 스키마를 변환하여 Amazon Redshift 데이터베이스에 적용한 후 데이터 추출 에이전트를 사용하여 AWS SCT 데이터를 마이그레이션할 수 있습니다. 에이전트가 데이터를 추출하여 Amazon S3 버킷에 업로드합니다. 그런 다음 AWS SCT 를 사용하여 Amazon S3에서 Amazon Redshift로 데이터를 복사할 수 있습니다.

마이그레이션 프로세스 중에 소스 데이터베이스의 데이터가 변경되면 AWS SCT 데이터 추출 에이전트를 사용하여 지속적인 변경 사항을 캡처할 수 있습니다. 그러면 초기 데이터 마이그레이션을 완료한 후 대상 데이터베이스에 이러한 진행 중인 변경 사항을 복제할 수 있습니다. 이 프로세스를 지속적인 데이터 복제 또는 *변경 데이터 캡처*(CDC)라고 합니다.

**Netezza에서 Amazon Redshift로의 마이그레이션을 위한 지속적인 데이터 복제를 구성하려면**

1. 소스 데이터베이스에서 기록 데이터베이스를 생성합니다. Netezza 명령줄 인터페이스(CLI)에서 다음 코드 예제를 사용할 수 있습니다.

   ```
   nzhistcreatedb -d history_database_name -t query -v 1 -u load_user -o histdb_owner -p your_password
   ```

   이전 예제에서 *history\$1database\$1name*을 기록 데이터베이스의 이름으로 바꿉니다. 그 다음으로, *load\$1user*를 데이터베이스에 기록 데이터를 로드하기 위해 정의한 사용자 이름으로 바꿉니다. 그런 다음, *histdb\$1owner*를 기록 데이터베이스의 소유자로 정의한 사용자 이름으로 바꿉니다. 이 사용자를 이미 생성하고 `CREATE DATABASE` 권한을 부여했는지 확인합니다. 마지막으로 *your\$1password*를 안전한 암호로 바꿉니다.

1. 기록 로깅을 구성합니다. 이 작업을 수행하려면 다음 코드 예제를 사용합니다.

   ```
   CREATE HISTORY CONFIGURATION history_configuration_name HISTTYPE QUERY
       DATABASE history_database_name USER load_user PASSWORD your_password COLLECT PLAN, COLUMN
       LOADINTERVAL 1 LOADMINTHRESHOLD 0 LOADMAXTHRESHOLD 0 STORAGELIMIT 25
       LOADRETRY 2 VERSION 1;
   ```

   이전 예제에서 *history\$1configuration\$1name* 및 *history\$1database\$1name*을 기록 구성 및 기록 데이터베이스의 이름으로 바꿉니다. 그 다음으로, *load\$1user*를 데이터베이스에 기록 데이터를 로드하기 위해 정의한 사용자 이름으로 바꿉니다. 그런 다음 *your\$1password*를 안전한 암호로 바꿉니다.

1. 기록 데이터베이스의 모든 테이블에 읽기 권한을 부여합니다. 다음 코드 예제를 사용하여 `SELECT` 권한을 부여할 수 있습니다.

   ```
   GRANT SELECT ON history_database_name.ALL.TABLE TO your_user;
   ```

   이전 예제에서 *history\$1database\$1name*을 기록 데이터베이스의 이름으로 바꿉니다. 다음으로, *your\$1user*를 Netezza 데이터베이스 작업에 필요한 최소 권한을 가진 사용자 이름으로 바꿉니다. 에서이 데이터베이스 사용자의 자격 증명을 사용합니다 AWS SCT.

1. 소스 스키마의 각 테이블에 대한 통계를 수집하여 열의 카디널리티에 대한 정보를 가져옵니다. 다음 명령을 사용하여 기록 데이터베이스에 통계를 생성할 수 있습니다.

   ```
   GENERATE STATISTICS on "schema_name"."table_name";
   ```

   이전 예제에서 *schema\$1name* 및 *table\$1name*을 데이터베이스 스키마 및 테이블의 이름으로 바꿉니다.

1. 다음 쿼리를 실행하여 사전 조건을 완료해야 합니다.

   ```
   SELECT COUNT(*) FROM history_database_name.history_schema_name."$hist_column_access_N";
   ```

   이전 예제에서 *history\$1database\$1name* 및 *history\$1schema\$1name*을 기록 데이터베이스 및 스키마의 이름으로 바꿉니다. 그 다음, *N*을 기록 데이터베이스의 버전 번호로 바꿉니다. 기록 데이터베이스 버전에 대한 자세한 내용은 [IBM Netezza 설명서](https://www.ibm.com/docs/en/netezza?topic=history-database-versions)를 참조하세요.

1. 데이터 추출 에이전트를 설치합니다. 자세한 내용은 [추출 에이전트 설치](agents.md#agents.Installing) 단원을 참조하십시오.

   모든 추출기 인스턴스에 대해 `settings.properties` 파일의 `{working.folder}` 파라미터가 동일한 폴더를 가리키는지 확인합니다. 이 경우 추출기가 CDC 세션을 조정하고 모든 하위 작업에 대한 단일 트랜잭션 지점을 사용할 수 있습니다.

1. 데이터 추출 에이전트를 등록합니다. 자세한 내용은 [에 추출 에이전트 등록 AWS Schema Conversion Tool](agents.md#agents.Using) 단원을 참조하십시오.

1. CDC 작업을 생성합니다. 자세한 내용은 [ AWS SCT 작업 생성, 실행 및 모니터링](agents.md#agents.Tasks) 단원을 참조하십시오.

   1.  AWS SCT에서 프로젝트를 엽니다. 왼쪽 창에서 소스 테이블을 선택합니다. 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **Create local task**를 선택합니다.

   1. **작업 이름**에 데이터 마이그레이션 작업을 설명하는 이름을 입력합니다.

   1. **Migration mode**에서 **Extract, upload, and copy**를 선택합니다.

   1. **Enable CDC**를 선택합니다.

   1. **CDC settings** 탭을 선택하고 CDC 세션의 범위와 일정을 정의합니다.

   1. **Test task**를 선택하여 작업 폴더, Amazon S3 버킷 및 Amazon Redshift 데이터 웨어하우스에 연결할 수 있는지 확인합니다.

   1. **생성**을 선택하여 작업을 생성합니다.

   1. **작업** 탭을 선택하고 목록에서 작업을 선택한 다음 **시작**을 선택합니다.

1.  AWS SCT 작업은 대상 데이터베이스에서 트랜잭션 일관성을 유지합니다. 데이터 추출 에이전트는 소스의 트랜잭션을 트랜잭션 ID 순서대로 복제합니다.

   마이그레이션 세션이 중지되거나 실패한 경우 CDC 처리도 중지됩니다.

## Netezza에서 Amazon Redshift로의 변환 설정
<a name="CHAP_Source.Netezza.ConversionSettings"></a>

Netezza에서 Amazon Redshift로의 변환 설정을 편집하려면에서 **설정을** 선택한 AWS SCT다음 **변환 설정을** 선택합니다. 상단 목록에서 **Netezza**를 선택한 다음 **Netezza – Amazon Redshift**를 선택합니다. Netezza에서 Amazon Redshift로의 변환에 사용할 수 있는 모든 설정을 AWS SCT 표시합니다.

의 Netezza에서 Amazon Redshift로의 변환 설정에는 다음에 대한 옵션이 AWS SCT 포함됩니다.
+ 변환된 코드에서 작업 항목이 포함된 설명의 수를 제한합니다.

  **선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석 추가에서** 작업 항목의 심각도를 선택합니다.는 선택한 심각도 이상의 작업 항목에 대해 변환된 코드에 주석을 AWS SCT 추가합니다.

  예를 들어, 변환된 코드의 설명 수를 최소화하려면 **오류만**을 선택하세요. 변환된 코드의 모든 작업 항목에 대한 설명을 포함하려면 **모든 메시지**를 선택합니다.
+ 대상 Amazon Redshift 클러스터에 적용할 AWS SCT 수 있는 최대 테이블 수를 설정합니다.

  **대상 Amazon Redshift 클러스터의 최대 테이블 수에서** Amazon Redshift 클러스터에 적용할 AWS SCT 수 있는 테이블 수를 선택합니다.

  Amazon Redshift에는 여러 클러스터 노드 유형에 사용하는 테이블을 제한하는 할당량이 있습니다. **자동**을 선택하면 노드 유형에 따라 대상 Amazon Redshift 클러스터에 적용할 테이블 수를 AWS SCT 결정합니다. 값을 수동으로 선택할 수도 있습니다. 자세한 내용은 *Amazon Redshift 관리 가이드*의 [Amazon Redshift의 할당량 및 제한](https://docs.aws.amazon.com/redshift/latest/mgmt/amazon-redshift-limits.html) 섹션을 참조하세요.

  AWS SCT 는 Amazon Redshift 클러스터가 저장할 수 있는 것보다 많더라도 모든 소스 테이블을 변환합니다.는 변환된 코드를 프로젝트에 AWS SCT 저장하고 대상 데이터베이스에 적용하지 않습니다. 변환된 코드를 적용할 때 테이블의 Amazon Redshift 클러스터 할당량에 도달하면 AWS SCT 에서 경고 메시지가 표시됩니다. 또한 테이블 수가 한도에 도달할 때까지 대상 Amazon Redshift 클러스터에 테이블을 AWS SCT 적용합니다.
+ Amazon Redshift 테이블 열에 압축을 적용합니다. 이렇게 하려면 **Use compression encoding**을 선택합니다.

  AWS SCT 는 기본 Amazon Redshift 알고리즘을 사용하여 열에 압축 인코딩을 자동으로 할당합니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [압축 인코딩](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html)을 참조하세요.

  기본적으로 Amazon Redshift는 정렬 및 배포 키로 정의된 열에 압축을 적용하지 않습니다. 이 동작을 변경하여 이러한 열에 압축을 적용할 수 있습니다. 이렇게 하려면 **Use compression encoding for KEY columns**를 선택합니다. **Use compression encoding** 옵션을 선택한 경우에만 이 옵션을 선택할 수 있습니다.

## Netezza에서 Amazon Redshift로의 변환 최적화 설정
<a name="CHAP_Source.Netezza.ConversionOptimizationSettings"></a>

Netezza에서 Amazon Redshift로의 변환 최적화 설정을 편집하려면에서 **설정을** 선택한 AWS SCT다음 **변환 설정을** 선택합니다. 상단 목록에서 **Netezza**를 선택한 다음 **Netezza – Amazon Redshift**를 선택합니다. 왼쪽 창에서 **최적화 전략을** 선택합니다. Netezza에서 Amazon Redshift로의 변환에 대한 변환 최적화 설정을 AWS SCT 표시합니다.

의 Netezza에서 Amazon Redshift로의 변환 최적화 설정에는 다음과 같은 옵션이 AWS SCT 포함됩니다.
+ 자동 테이블 최적화 작업을 수행합니다. 이 작업을 수행하려면 **Use Amazon Redshift automatic table tuning**을 선택합니다.

  자동 테이블 최적화는 테이블 디자인을 자동으로 최적화하는 Amazon Redshift의 자체 조정 프로세스입니다. 자세한 내용은 *Amazon Redshift 데이터베이스 개발자 안내서*의 [자동 테이블 최적화 작업](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html)을 참조하세요.

  자동 테이블 최적화만 사용하려면 **Initial key selection strategy**에서 **없음**을 선택합니다.
+ 전략을 사용하여 정렬 및 배포 키를 선택합니다.

  Amazon Redshift 메타데이터, 통계 정보 또는 두 옵션을 모두 사용하여 정렬 및 배포 키를 선택할 수 있습니다. **Optimization strategies** 탭의 **Initial key selection strategy**에서 다음 옵션 중 하나를 선택합니다.
  + 메타데이터 사용, 통계 정보 무시
  + 메타데이터 무시, 통계 정보 사용
  + 메타데이터 및 통계 정보 사용

  선택한 옵션에 따라 최적화 전략을 선택할 수 있습니다. 그런 다음 각 전략에 대해 값(0\$1100)을 입력합니다. 이러한 값은 각 전략의 가중치를 정의합니다. AWS SCT 는 이러한 가중치 값을 사용하여 각 규칙이 배포 및 정렬 키 선택에 미치는 영향을 정의합니다. 기본값은 AWS 마이그레이션 모범 사례를 기반으로 합니다.

  **Find small tables** 전략에서 작은 테이블의 크기를 정의할 수 있습니다. **최소 테이블 행 수** 및 **최대 테이블 행 수**에 테이블의 최소 및 최대 행 수를 입력하여 작은 테이블로 정의합니다.는 작은 테이블에 `ALL` 배포 스타일을 AWS SCT 적용합니다. 이 경우 전체 테이블의 사본이 모든 노드에 배포됩니다.
+ 전략 세부 정보를 구성합니다.

  각 최적화 전략의 가중치를 정의하는 것 외에 최적화 설정도 구성할 수 있습니다. 이 작업을 수행하려면 **Conversion optimization**을 선택합니다.
  + **Sort key columns limit**에 정렬 키의 최대 열 수를 입력합니다.
  + **스큐된 임계값**에 열에 대한 스큐된 값의 백분율(0\$1100)을 입력합니다.는 배포 키의 후보 목록에서 스큐 값이 임계값보다 큰 열을 AWS SCT 제외합니다.는 열에 대한 스큐된 값을 총 레코드 수에 대한 가장 일반적인 값의 발생 횟수의 백분율 비율로 AWS SCT 정의합니다.
  + **Top N queries from the query history table**에 분석할 가장 자주 사용되는 쿼리의 수(1\$1100)를 입력합니다.
  + **Select statistics user**에서 쿼리 통계를 분석하려는 데이터베이스 사용자를 선택합니다.

  또한 **Optimization strategies** 탭에서 **Find small tables** 전략을 위한 작은 테이블의 크기를 정의할 수 있습니다. **최소 테이블 행 수** 및 **최대 테이블 행 수**에 테이블의 최소 및 최대 행 수를 입력하여 작은 테이블로 간주합니다.는 작은 테이블에 `ALL` 배포 스타일을 AWS SCT 적용합니다. 이 경우 전체 테이블의 사본이 모든 노드에 배포됩니다.