

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# を使用した 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>

以下の手順を使用して、Netezza ソースデータベースを AWS Schema Conversion Toolに接続します。

**Netezza ソースデータベースに接続するには**

1. で AWS Schema Conversion Tool、**ソースの追加**を選択します。

1. [**Netezza**] [**Next**] (次へ) の順に選択します。

   [**Add source**] (ソースの追加) ダイアログボックスが表示されます。

1. [**接続名**] にデータベースの名前を入力します。この名前が AWS SCT の左側のパネルのツリーに表示されます。

1. からデータベース認証情報を使用する AWS Secrets Manager か、手動で入力します。
   + Secrets Manager のデータベース認証情報を使用するには、以下の手順に従ってください。

     1. [**AWS シークレット**] で、シークレットの名前を選択します。

     1. [**入力**] を選択すると、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/ja_jp/SchemaConversionTool/latest/userguide/CHAP_Source.Netezza.html)

1. **接続のテスト**を選択して、 がソースデータベースに接続 AWS SCT できることを確認します。

1. [**Connect**] (接続) を選択して、ソースデータベースに接続します。

## 継続的なデータ複製の設定
<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 つのトランザクションポイントを使用できます。

1. データ抽出エージェントを登録します。詳細については、「[に抽出エージェントを登録する AWS Schema Conversion Tool](agents.md#agents.Using)」を参照してください。

1. CDC タスクを作成します。詳細については、「[ AWS SCT タスクの作成、実行、モニタリング](agents.md#agents.Tasks)」を参照してください。

   1.  AWS SCTでプロジェクトを開きます。左のペインで、ソーステーブルを選択します。オブジェクトのコンテキスト (右クリック) メニューを開き、[**ローカルタスクの作成**] を選択します。

   1. [**タスク名**] に、データ移行タスクのわかりやすい名前を入力します。

   1. [**移行モード**] には、[**抽出、アップロード、コピー**] を選択します。

   1. **[同期の有効化]** を選択します。

   1. [**CDC 設定**] タブを選択し、CDC セッションの範囲とスケジュールを定義します。

   1. [**タスクのテスト**] を選択して、作業フォルダ、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**. AWS SCT displays all available settings for Netezza to Amazon Redshift conversion を選択します。

の Netezza から Amazon Redshift への変換設定には、以下のオプション AWS SCT が含まれています。
+ 変換されたコード内のアクション項目に関するコメントの数を制限する。

  選択した**重要度以上のアクション項目の変換されたコードにコメントを追加する で**、アクション項目の重要度を選択します。 は、選択した重要度以上のアクション項目の変換されたコードにコメント AWS SCT を追加します。

  たとえば、変換したコード内のコメントの数を最小限に抑えるには、[**エラーのみ**] を選択します。変換したコードのすべてのアクション項目にコメントを含めるには、[**すべてのメッセージ**] を選択します。
+ ターゲット Amazon Redshift クラスターに適用 AWS SCT できるテーブルの最大数を設定するには。

  **ターゲット Amazon Redshift クラスターのテーブルの最大数で**、Amazon Redshift クラスターに適用 AWS SCT できるテーブルの数を選択します。

  Amazon Redshift には、クラスターノードタイプの使用を制限するクォータがあります。**Auto** を選択した場合、 はノードタイプに応じてターゲット 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 テーブルの列に圧縮を適用します。そのためには、[**圧縮エンコードを使用**] を選択します。

  AWS SCT は、デフォルトの Amazon Redshift アルゴリズムを使用して、圧縮エンコーディングを列に自動的に割り当てます。詳細については、『*Amazon Redshift データベースデベロッパーガイド*』の「[圧縮エンコード](https://docs.aws.amazon.com/redshift/latest/dg/c_Compression_encodings.html)」を参照してください。

  デフォルトでは、Amazon Redshift はソートキーと分散キーとして定義されている列に圧縮を適用しません。この動作を変更したり、これらの列に圧縮を適用したりできます。そのためには、[**KEY 列には圧縮エンコードを使用**] を選択します。このオプションは、[**圧縮エンコードを使用**] オプションを選択した場合にのみ選択できます。

## Netezza から Amazon Redshift への変換最適化設定
<a name="CHAP_Source.Netezza.ConversionOptimizationSettings"></a>

Netezza から Amazon Redshift への変換最適化設定を編集するには、**「 の設定**」を選択し AWS SCT、**「変換設定**」を選択します。上のリストから [**Netezza**] を選択し、次に [**Netezza – Amazon Redshift**] を選択します。左側のペインで、**最適化 strategies**. AWS SCT displays conversion Optimization settings for Netezza to Amazon Redshift conversion を選択します。

の Netezza から Amazon Redshift への変換最適化設定 AWS SCT には、以下のオプションが含まれています。
+ 自動テーブル最適化を使用するには。そのためには、[**Amazon Redshift の自動テーブルチューニングを使用する**] を選択します。

  自動テーブル最適化は、テーブルの設計を自動的に最適化する Amazon Redshift の自己調整プロセスです。詳細については、『*Amazon Redshift データベース開発者ガイド*』の「[自動テーブル最適化の操作](https://docs.aws.amazon.com/redshift/latest/dg/t_Creating_tables.html)」を参照してください。

  自動テーブル最適化のみを利用するには、[**初期キー選択戦略**] で [**なし**] を選択します。
+ 戦略を使用してソートキーと分散キーを選択するには。

  Amazon Redshift メタデータ、統計情報、またはこれらのオプションの両方を使用して、ソートキーと配布キーを選択できます。[**最適化戦略**] タブの [**初期キー選択戦略**] では、以下のいずれかのオプションを選択します。
  + メタデータを使用し、統計情報は無視する
  + メタデータを無視し、統計情報を使用する
  + メタデータと統計情報を使用する

  選択したオプションに応じて、最適化戦略を選択できます。次に、各戦略について、値 (0～100) を入力します。これらの値は各戦略の重みを定義します。これらの重み値を使用して、 AWS SCT は各ルールがディストリビューションキーとソートキーの選択にどのように影響するかを定義します。デフォルト値は、 AWS 移行のベストプラクティスに基づいています。

  [**小さいテーブルを検索**] 戦略の小さいテーブルのサイズを定義できます。**最小テーブル行数**と**最大テーブル行数**には、テーブル内の最小行数と最大行数を入力して、スモールテーブルとして定義します。 は`ALL`、分散スタイルをスモールテーブル AWS SCT に適用します。この場合は、テーブル全体のコピーがすべてのノードに分散されます。
+ 戦略の詳細を設定するには。

  各最適化戦略の重みを定義することに加えて、最適化設定を構成できます。そのためには、[**変換の最適化**] を選択します。
  + [**ソートキー列の制限**] には、ソートキーの列の最大数を入力します。
  + **歪んだしきい値**には、列の歪んだ値の割合 (0～100) を入力します。分散キーの候補リストから、歪んだ値がしきい値より大きい列 AWS SCT を除外します。 は、列の歪んだ値を、レコードの合計数に対する最も一般的な値の出現回数の割合として AWS SCT 定義します。
  + [**クエリ履歴テーブルの上位 N 件のクエリ**] には、分析対象として最も頻繁に使用されるクエリの数 (1 ～ 100) を入力します。
  + [**統計ユーザーを選択**] では、クエリ統計を分析したいデータベースユーザーを選択します。

  また、[**最適化戦略**」タブでは、[**小さいテーブルを検索**] 戦略の小さいテーブルのサイズを定義できます。**最小テーブル行数**と**最大テーブル行数**には、テーブル内の最小行数と最大行数を入力して、スモールテーブルと見なします。 は`ALL`分散スタイルをスモールテーブル AWS SCT に適用します。この場合は、テーブル全体のコピーがすべてのノードに分散されます。