

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

# を使用した Google BigQuery への接続 AWS Schema Conversion Tool
<a name="CHAP_Source.BigQuery"></a>

 AWS SCT を使用して、スキーマ、コードオブジェクト、アプリケーションコードを BigQuery から Amazon Redshift に変換できます。

## BigQuery をソースとする場合の権限
<a name="CHAP_Source.BigQuery.Permissions"></a>

BigQuery データウェアハウスを のソースとして使用するには AWS SCT、サービスアカウントを作成します。Google Cloud では、アプリケーションはサービスアカウントを使用して承認された API コールを行います。サービスアカウントはユーザーアカウントとは異なります。詳細については、Google Cloud Identity and Access Management ドキュメントの「[サービス アカウント](https://cloud.google.com/iam/docs/service-accounts)」を参照してください。

サービスアカウントには必ず以下のロールを付与してください。
+ `BigQuery Admin`
+ `Storage Admin`

`BigQuery Admin` ロールは、プロジェクト内のすべてのリソースを管理するアクセス許可を提供します。 はこのロール AWS SCT を使用して、移行プロジェクトに BigQuery メタデータをロードします。

`Storage Admin` ロールにより、データオブジェクトとバケットを完全に制御できます。このロールは にあります`Cloud Storage`。 はこのロール AWS SCT を使用して BigQuery からデータを抽出し、Amazon Redshift にロードします。

**サービスアカウントキーファイルを作成するには**

1. [https://console.cloud.google.com/](https://console.cloud.google.com/) で Google Cloud 管理コンソールにログインします。

1. [BigQuery API](https://console.cloud.google.com/apis/library/bigquery.googleapis.com) ページで [**有効にする**] を選択します。API が [**有効**] になっている場合は、このステップをスキップしてください。

1. [[サービスアカウント](https://console.cloud.google.com/iam-admin/serviceaccounts)] ページで、プロジェクトを選択し、[**サービスアカウントの作成**] を選択します。

1. [**サービスアカウント詳細**] ページで、[**サービスアカウント名**] にわかりやすい値を入力します。[**作成して続ける]** を選択します。[**このサービスアカウントにプロジェクトへのアクセス権を付与**] ページが開きます。

1. **[ロールの選択] で** [**BigQuery**] を選択し、次に [**BigQuery 管理者**] を選択します。

1. [**別のロールを追加**] を選択します。[**ロールの選択**] で [**クラウドストレージ**] を選択し、[**ストレージ管理者**] を選択します。

1. [**続ける**] を選択し、次に [**保存**] を選択します。

1. [[サービスアカウント](https://console.cloud.google.com/iam-admin/serviceaccounts)] ページで、作成したサービスアカウントを選択します。

1. [**キー**] を選択し、[**キーの追加**] で [**新しいキーの作成**] を選択します。

1. [**JSON**]、[**作成**] の順に選択します。プライベートキーを保存するフォルダを選択するか、ブラウザのダウンロード用のデフォルトフォルダを選択します。

BigQuery データウェアハウスからデータを抽出するには、 は Google Cloud Storage バケットフォルダ AWS SCT を使用します。データ移行を開始する前に、このバケットを作成してください。Google Cloud Storage バケットフォルダへのパスを [**ローカルタスクの作成**] ダイアログボックスに入力します。詳細については、「[ AWS SCT タスクの作成、実行、モニタリング](agents.md#agents.Tasks)」を参照してください。

## BigQuery へソースとして接続
<a name="CHAP_Source.BigQuery.Connecting"></a>

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

**BigQuery ソースデータウェアハウスに接続するには**

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

1. [**BigQuery**] を選択し、[**次へ ] を選択します。**

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

1. [**接続名**] に BigQuery プロジェクトの名前を入力します。 AWS SCT で、この名前が左側のパネルのツリーに表示されます。

1. [**キーパス**] にサービスアカウントのキーファイルへのパスを入力します。このファイルの作成の詳細については、「[BigQuery をソースとする場合の権限](#CHAP_Source.BigQuery.Permissions)」を参照してください。

1. **接続のテスト**を選択して、 がソース BigQuery プロジェクトに接続 AWS SCT できることを確認します。

1. [**接続**] を選択して、ソース BigQuery プロジェクトに接続します。

## BigQuery を のソースとして使用する場合の制限 AWS SCT
<a name="CHAP_Source.BigQuery.Limitations"></a>

BigQuery をソースとして使用する場合は、次の制限が適用されます AWS SCT。
+ AWS SCT は、分析関数でのサブクエリの変換をサポートしていません。
+ を使用して BigQuery `SELECT AS STRUCT`および `SELECT AS VALUE`ステートメント AWS SCT を変換することはできません。
+ AWS SCT は、次のタイプの関数の変換をサポートしていません。
  + 近似値
  + ビット
  + デバッグ
  + 横串検索
  + 地域別
  + ハッシュ
  + 数学的
  + 正味
  + 統計集計
  + UUID
+ AWS SCT では、文字列関数の変換のサポートが制限されています。
+ AWS SCT は`UNNEST`演算子の変換をサポートしていません。
+  AWS SCTでは相関結合操作を変換できません。
+ AWS SCT は、`QUALIFY`、、`WINDOW`、`LIMIT`および `OFFSET`句の変換をサポートしていません。
+ を使用して再帰的な共通テーブル式 AWS SCT を変換することはできません。
+ AWS SCT は、 `VALUES`句内のサブクエリを含む`INSERT`ステートメントの変換をサポートしていません。
+ AWS SCT は、ネストされたフィールドと繰り返しレコードの`UPDATE`ステートメントの変換をサポートしていません。
+ を使用して `STRUCT`および `ARRAY` データ型 AWS SCT を変換することはできません。

## BigQuery から Amazon Redshift への変換設定
<a name="CHAP_Source.BigQuery.ConversionSettings"></a>

BigQuery から Amazon Redshift への変換設定を編集するには、「 **の設定**」を選択し AWS SCT、**「変換設定**」を選択します。上部のリストから Google ** BigQuery** を選択し、**Google BigQuery – Amazon Redshift**. AWS SCT displays all available settings for BigQuery to Amazon Redshift conversion を選択します。

の BigQuery から 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 列には圧縮エンコードを使用**] を選択します。このオプションは、[**圧縮エンコードを使用**] オプションを選択した場合にのみ選択できます。

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

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

の BigQuery から 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 に適用します。この場合は、テーブル全体のコピーがすべてのノードに分散されます。