適用対象: Azure Data Factory
Azure Synapse Analytics
ヒント
企業向けのオールインワン分析ソリューション、Microsoft Fabric の Data Factory をお試しください。 Microsoft Fabric は、データ移動からデータ サイエンス、リアルタイム分析、ビジネス インテリジェンス、レポートまで、あらゆるものをカバーしています。 無料で新しい試用版を開始する方法について説明します。
この記事では、Azure Data Factory および Synapse Analytics パイプラインで Copy アクティビティを使用して、Amazon Redshift からデータをコピーする方法について説明します。 この記事は、コピー アクティビティの概要を示しているコピー アクティビティの概要に関する記事に基づいています。
Von Bedeutung
Amazon Redshift バージョン 2.0 (プレビュー) では、ネイティブ Amazon Redshift のサポートが強化されています。 ソリューションで Amazon Redshift バージョン 1.0 を使用している場合は、できるだけ早く Amazon Redshift コネクタをアップグレード することをお勧めします。 バージョン 2.0 (プレビュー) とバージョン 1.0 の違いの詳細については、この セクション を参照してください。
サポートされる機能
この Amazon Redshift コネクタは、次の機能でサポートされています。
サポートされる機能 | IR |
---|---|
Copy アクティビティ (ソース/-) | ① (バージョン 1.0 の場合のみ) ② |
Lookup アクティビティ | ① (バージョン 1.0 の場合のみ) ② |
① Azure 統合ランタイム ② セルフホステッド統合ランタイム
コピー アクティビティによってソースまたはシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関する記事の表をご覧ください。
バージョン 2.0 (プレビュー) の場合は、 Amazon Redshift ODBC ドライバーを 手動でインストールする必要があります。 バージョン 1.0 の場合、このサービスでは接続を有効にする組み込みのドライバーが提供されるので、ドライバーを手動でインストールする必要はありません。
Amazon Redshift コネクタでは、クエリまたは組み込みの Redshift UNLOAD サポートを使用して Redshift からデータを取得できます。
コネクタは、この記事の Windows バージョンをサポートしています。
ヒント
Redshift から大量のデータをコピーするときに最適なパフォーマンスを得るには、Amazon S3 経由で組み込みの Redshift UNLOAD を使用することを検討します。 詳細については、「Amazon Redshift からのデータ コピーでの UNLOAD の使用」セクションをご覧ください。
前提条件
- オンプレミスのデータ ストアに自己ホスト型統合ランタイムを使用してデータをコピーする場合は、統合ランタイム (コンピューターの IP アドレスを使用) に Amazon Redshift クラスターへのアクセスを許可します。 手順については、「 クラスターへのアクセスを承認する 」を参照してください。 バージョン 2.0 を使用する場合、セルフホステッド統合ランタイムのバージョンは 5.54.0.0 以降である必要があります。
- Azure データ ストアにデータをコピーする場合、Azure データ センターで使用されるコンピューティング IP アドレスと SQL 範囲については、「Azure データ センターの IP 範囲」をご覧ください。
作業の開始
パイプラインでコピー アクティビティを実行するには、次のいずれかのツールまたは SDK を使用します。
UI を使用して Amazon Redshift にリンク サービスを作成する
次の手順を使用して、Azure portal の UI で Amazon Redshift にリンク サービスを作成します。
Azure Data Factory または Synapse ワークスペースの [管理] タブに移動し、[リンクされたサービス] を選択して、[新規] をクリックします。
- Azureデータファクトリー
- Azure Synapse
Amazon を検索し、Amazon Redshift コネクタを選択します。
サービスの詳細を構成し、接続をテストして、新しいリンク サービスを作成します。
コネクタの構成の詳細
次のセクションでは、Amazon Redshift コネクターに固有の Data Factory エンティティの定義に使用されるプロパティについて詳しく説明します。
リンクされたサービスのプロパティ
Amazon Redshift のリンクされたサービスでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
種類 | type プロパティは、次のように設定する必要があります:AmazonRedshift | はい |
バージョン | 指定するバージョン。 | はい (バージョン 2.0 (プレビュー) の場合)。 |
サーバー | Amazon Redshift サーバーの IP アドレスまたはホスト名。 | はい |
港 | Amazon Redshift サーバーがクライアント接続のリッスンに使用する TCP ポートの数。 | いいえ (既定値は 5439 です) |
データベース | Amazon Redshift データベースの名前。 | はい |
ユーザー名 | データベースへのアクセスを持つユーザーの名前。 | はい |
パスワード | ユーザー アカウントのパスワード。 このフィールドを SecureString とマークして安全に保存するか、Azure Key Vault に保存されているシークレットを参照します。 | はい |
connectVia (接続ビア) | データ ストアに接続するために使用される統合ランタイム。 バージョン 2.0 (プレビュー) を選択した場合は、セルフホステッド統合ランタイムのみを使用でき、そのバージョンは 5.54.0.0 以降である必要があります。 バージョン 1.0 を選択した場合は、Azure Integration Runtime またはセルフホステッド統合ランタイムを使用できます (データ ストアがプライベート ネットワークにある場合)。 指定されていない場合は、既定の Azure 統合ランタイムが使用されます。 |
いいえ |
例: バージョン 2.0 (プレビュー)
{
"name": "AmazonRedshiftLinkedService",
"properties":
{
"type": "AmazonRedshift",
"version": "2.0",
"typeProperties":
{
"server": "<server name>",
"database": "<database name>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
例: バージョン 1.0
{
"name": "AmazonRedshiftLinkedService",
"properties":
{
"type": "AmazonRedshift",
"typeProperties":
{
"server": "<server name>",
"database": "<database name>",
"username": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
データセットのプロパティ
データセットを定義するために使用できるセクションとプロパティの完全な一覧については、データセットに関する記事をご覧ください。 このセクションでは、Amazon Redshift データセットでサポートされるプロパティの一覧を示します。
Amazon Redshift からのデータ コピーについては、次のプロパティがサポートされています。
プロパティ | 内容 | 必須 |
---|---|---|
種類 | データセットの type プロパティは、次のように設定する必要があります:AmazonRedshiftTable | はい |
スキーマ | スキーマの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
テーブル / 表 | テーブルの名前。 | いいえ (アクティビティ ソースの "query" が指定されている場合) |
テーブル名 | スキーマがあるテーブルの名前。 このプロパティは下位互換性のためにサポートされています。 新しいワークロードでは、schema と table を使用します。 |
いいえ (アクティビティ ソースの "query" が指定されている場合) |
例
{
"name": "AmazonRedshiftDataset",
"properties":
{
"type": "AmazonRedshiftTable",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Amazon Redshift linked service name>",
"type": "LinkedServiceReference"
}
}
}
RelationalTable
型のデータセットを使用していた場合、現状のまま引き続きサポートされますが、今後は新しいものを使用することをお勧めします。
コピー アクティビティのプロパティ
アクティビティの定義に利用できるセクションとプロパティの完全な一覧については、パイプラインに関する記事を参照してください。 このセクションでは、Amazon Redshift ソースでサポートされるプロパティの一覧を示します。
ソースとしての Amazon Redshift
Amazon Redshift からデータをコピーするには、コピー アクティビティでソースの型を AmazonRedshiftSource に設定します。 コピー アクティビティの source セクションでは、次のプロパティがサポートされます。
プロパティ | 内容 | 必須 |
---|---|---|
種類 | コピー アクティビティのソースの type プロパティは、次のように設定する必要があります:AmazonRedshiftSource | はい |
問い合わせ | カスタム クエリを使用してデータを読み取ります。 例: Select * from MyTable。 | いいえ (データセットの "tableName" が指定されている場合) |
redshiftUnload設定 | Amazon Redshift の UNLOAD を使用する場合のプロパティ グループ。 | いいえ |
s3LinkedServiceName さん | リンクされた AmazonS3 型のサービス名を指定することで、中間ストアとして使用される Amazon S3 を参照します。 | アンロードを使用する場合は はい |
バケット名 | 中間データを格納する S3 バケットを指定します。 指定しない場合、サービスによって自動的に生成されます。 | アンロードを使用する場合は はい |
例:UNLOAD を使用したコピー アクティビティでの Amazon Redshift ソース
"source": {
"type": "AmazonRedshiftSource",
"query": "<SQL query>",
"redshiftUnloadSettings": {
"s3LinkedServiceName": {
"referenceName": "<Amazon S3 linked service>",
"type": "LinkedServiceReference"
},
"bucketName": "bucketForUnload"
}
}
次のセクションから、UNLOAD を使用して、効率的に Amazon Redshift からデータをコピーする方法の詳細について説明します。
Amazon Redshift からのデータ コピーで UNLOAD を使用する
UNLOAD は、Amazon Redshift が提供するメカニズムであり、Amazon Simple Storage Service (Amazon S3) 上に 1 つまたは複数のファイルへのクエリの結果をアンロードできます。 これは、Redshift から大きなデータ セットをコピーするために、Amazon から推奨されている方法です。
例: UNLOAD、段階的コピーおよび PolyBase を使用して、Amazon Redshift から Azure Synapse Analytics にデータをコピーする
このサンプルのユース ケースでは、コピー アクティビティは "redshiftUnloadSettings" での構成に従って Amazon Redshift から Amazon S3 へデータをアンロードした後、Amazon S3 から "stagingSettings" に指定された Azure Blob へデータをコピーし、最後に、PolyBase を使用して Azure Synapse Analytics にデータを読み込みます。 すべての中間形式が、コピー アクティビティによって正しく処理されます。
"activities":[
{
"name": "CopyFromAmazonRedshiftToSQLDW",
"type": "Copy",
"inputs": [
{
"referenceName": "AmazonRedshiftDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "AzureSQLDWDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "AmazonRedshiftSource",
"query": "select * from MyTable",
"redshiftUnloadSettings": {
"s3LinkedServiceName": {
"referenceName": "AmazonS3LinkedService",
"type": "LinkedServiceReference"
},
"bucketName": "bucketForUnload"
}
},
"sink": {
"type": "SqlDWSink",
"allowPolyBase": true
},
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": "AzureStorageLinkedService",
"path": "adfstagingcopydata"
},
"dataIntegrationUnits": 32
}
}
]
Amazon Redshift のデータ型マッピング
Amazon Redshift からデータをコピーする場合、Amazon Redshift のデータ型からサービスで使用される内部データ型へのマッピングが次のように適用されます。 コピー アクティビティでソースのスキーマとデータ型がシンクにマッピングされるしくみについては、スキーマとデータ型のマッピングに関する記事を参照してください。
Amazon Redshift のデータ型 | 中間サービスのデータ型 (バージョン 2.0 (プレビュー) の場合) | 中間サービスのデータ型 (バージョン 1.0 の場合) |
---|---|---|
bigint | Int64 | Int64 |
ブーリアン | ボーリアン | 糸 |
チャー | 糸 | 糸 |
日付 | 日付と時間 | 日付と時間 |
DECIMAL (精度 <= 28) | 小数 | 小数 |
DECIMAL (有効桁数 > 28) | 糸 | 糸 |
倍精度 | ダブル | ダブル |
整数 | Int32 | Int32 |
real | シングル | シングル |
スモールイント | Int16 | Int16 |
[TEXT] | 糸 | 糸 |
timestamp | 日付と時間 | 日付と時間 |
VARCHAR | 糸 | 糸 |
Lookup アクティビティのプロパティ
プロパティの詳細については、Lookup アクティビティに関するページを参照してください。
Amazon Redshift コネクタをアップグレードする
Amazon Redshift コネクタのアップグレードに役立つ手順を次に示します。
[ リンクされたサービスの編集] ページで、バージョン 2.0 (プレビュー) を選択し、リンクされたサービスプロパティを参照して リンクされたサービスを構成します。
Amazon Redshift のリンクされたサービス バージョン 2.0 (プレビュー) のデータ型マッピングは、バージョン 1.0 とは異なります。 最新のデータ型マッピングについては、「 Amazon Redshift のデータ型マッピング」を参照してください。
バージョン 5.54.0.0 以降のセルフホステッド統合ランタイムを適用します。 Azure 統合ランタイムは、バージョン 2.0 (プレビュー) ではサポートされていません。
Amazon Redshift コネクタ バージョン 2.0 (プレビュー) とバージョン 1.0 の違い
Amazon Redshift コネクタ バージョン 2.0 (プレビュー) は新しい機能を提供し、バージョン 1.0 のほとんどの機能と互換性があります。 次の表に、バージョン 2.0 (プレビュー) とバージョン 1.0 の機能の違いを示します。
バージョン 2.0 (プレビュー) | バージョン 1.0 |
---|---|
バージョン 5.54.0.0 以降のセルフホステッド統合ランタイムのみをサポートします。 | Azure 統合ランタイムとセルフホステッド統合ランタイムをサポートします。 |
次のマッピングは、Amazon Redshift データ型から中間サービスデータ型に使用されます。 BOOLEAN -> Boolean |
次のマッピングは、Amazon Redshift データ型から中間サービスデータ型に使用されます。 BOOLEAN -> 文字列 |
関連するコンテンツ
Copy アクティビティでソースおよびシンクとしてサポートされるデータ ストアの一覧については、サポートされるデータ ストアに関するセクションを参照してください。