この記事では、パイプラインでコピー アクティビティを使用して、Amazon S3 との間でデータをコピーする方法について説明します。
必要なアクセス許可
Amazon S3 からデータをコピーするには、Amazon S3 オブジェクト操作に対するアクセス許可 ( s3:GetObject と s3:GetObjectVersion) が付与されていることを確認します。
さらに、接続のテストやルートからの参照などの操作には、 s3:ListAllMyBuckets と s3:ListBucket/s3:GetBucketLocation のアクセス許可が必要です。
Amazon S3 のアクセス許可の完全な一覧については、 AWS サイトのポリシーでのアクセス許可の指定に関するセクションを参照してください。
サポートされている形式
Amazon S3 では、次のファイル形式がサポートされています。 形式ベースの設定については、各記事を参照してください。
サポートされている構成
コピー アクティビティの下の各タブの構成については、それぞれ次のセクションを参照してください。
全般
[全般設定] タブを構成するには、全般設定のガイダンスを参照してください。
情報源
コピーアクティビティの [ ソース ] タブの Amazon S3 では、次のプロパティがサポートされています。
次のプロパティは必須です。
接続: 接続リストから Amazon S3 接続を選択します。 接続が存在しない場合は、[ 新規] を選択して新しい Amazon 接続を作成します。
接続の種類: 接続の種類として Amazon S3 を選択します。
ファイル パスの種類: ファイル パスの種類として、[ファイル パス ]、[プレフィックス]、[ ワイルドカード ファイル パス]、または [ファイルの一覧] を選択できます。 各設定の構成は次のとおりです。
ファイル パス: この種類を選択した場合、指定されたバケットまたは指定されたバケットとフォルダー パスからデータをコピーできます。
プレフィックス: この種類を選択した場合は、 バケット と プレフィックスを指定します。
バケット: S3 バケット名を指定します。 必須です。
プレフィックス: 指定されたバケットの下の S3 キー名のプレフィックスを指定して、ソース S3 ファイルをフィルター処理します。
bucket/this_prefixで始まる名前の S3 キーが選択されます。 これは、ワイルドカード フィルターよりも優れたパフォーマンスを提供する S3 のサービス側フィルターを利用します。プレフィックスを使用し、階層を保持してファイル ベースのコピー先にコピーする場合は、プレフィックス内の最後の "/" の後のサブパスが保持されることに注意してください。 たとえば、ソース
bucket/folder/subfolder/file.txtがあり、プレフィックスをfolder/subとして構成すると、保持されるファイル パスはsubfolder/file.txt。
ワイルドカード ファイル パス: この種類を選択した場合は、 バケット パスと ワイルドカードパスを指定します。
バケット: S3 バケット名を指定します。 必須です。
ワイルドカード パス: 指定したバケットの下にワイルドカード文字を含むフォルダーまたはファイル パスを指定して、ソース フォルダーまたはファイルをフィルター処理します。
使用できるワイルドカードは、
*(0 個以上の文字に一致) と?(0 文字または 1 文字に一致) です。 フォルダー名にワイルドカードまたはこのエスケープ文字がある場合は、^を使用してエスケープします。 「フォルダーとファイル フィルターの例」の他の例をご覧ください。
ワイルドカード フォルダー パス: ソース フォルダーをフィルター処理するための、指定されたバケットの下にワイルドカード文字を含むフォルダー パス。ワイルドカード ファイル名: ソース ファイルをフィルター処理するための、指定されたバケットとフォルダー パス (またはワイルドカード フォルダー パス) の下にワイルドカード文字を含むファイル名。
ファイルの一覧: この種類を選択した場合は、[ フォルダー パス] と [ ファイルへのパス] リストを 指定して、特定のファイル セットをコピーすることを示します。 コピーするファイルの一覧を含むテキスト ファイルをポイントします。1 行に 1 つのファイルがあります。これは、構成されたパスへの相対パスです。 その他の例については、「 ファイルリストの例」を参照してください。
- フォルダー パス: 指定されたバケットの下のフォルダーへのパスを指定します。 必須です。
- ファイル一覧へのパス: コピーするファイルの一覧を含むテキスト ファイルのパスを指定します。
再帰的: データをサブフォルダーから再帰的に読み取るか、指定したフォルダーからのみ読み取るかを指定します。 Recursively が選択されていて、コピー先がファイル ベースのストアである場合、空のフォルダーまたはサブフォルダーはコピーされず、コピー先に作成されません。 このプロパティは既定で選択されており、 ファイル一覧へのパスを構成する場合は適用されません。
ファイル形式: ドロップダウン リストから適用されるファイル形式を選択します。 [ 設定] を 選択してファイル形式を構成します。 さまざまなファイル形式の設定については、 サポートされている形式 の記事を参照してください。
[詳細設定] では、次のフィールドを指定できます。
[最終更新日時にフィルター処理]: ファイルは、指定した最終変更日に基づいてフィルター処理されます。 ファイル パスの種類をファイル のリストとして構成する場合、このプロパティは適用されません。
- 開始時刻 (UTC): ファイルは、最終変更時刻が構成された時刻以上の場合に選択されます。
- 終了時刻 (UTC): 最終変更時刻が構成された時間より短い場合、ファイルが選択されます。
開始時刻 (UTC) に datetime 値があり、終了時刻 (UTC) が NULL の場合、最終変更属性が datetime 値以上のファイルが選択されることを意味します。 終了時刻 (UTC) に datetime 値があり、開始時刻 (UTC) が NULL の場合、最終変更属性が datetime 値より小さいファイルが選択されることを意味します。 プロパティには NULL を指定できます。つまり、ファイル属性フィルターはデータに適用されません。
パーティション検出を有効にする: ファイル パスからパーティションを解析し、追加のソース列として追加するかどうかを指定します。 既定では選択されず、バイナリ ファイル形式を使用する場合はサポートされません。
パーティション ルート パス: パーティション検出が有効になっている場合は、パーティション分割されたフォルダーをデータ列として読み取るために絶対ルート パスを指定します。
指定されていない場合、既定で。
- ソースでファイル パスまたはファイルの一覧を使用する場合、パーティション ルート パスは構成したパスです。
- ワイルドカード フォルダー フィルターを使用する場合、パーティション ルート パスは最初のワイルドカードの前のサブパスです。
- プレフィックスを使用すると、パーティション ルート パスは最後の "/" より前のサブパスになります。
たとえば、パスを
root/folder/year=2020/month=08/day=27として構成するとします。- パーティション ルート パスを
root/folder/year=2020として指定した場合、コピー アクティビティでは、ファイル内の列に加えて、それぞれ値が "08" と "27" の 2 つの列が月と日に生成されます。 - パーティション ルート パスが指定されていない場合、追加の列は生成されません。
最大同時接続: アクティビティの実行中にデータ ストアに対して確立される同時接続の上限。 コンカレント接続数を制限する場合にのみ、値を指定します。
その他の列: ソース ファイルの相対パスまたは静的な値を格納する追加のデータ列を追加します。 エクスプレッションは後者に対応しています。
行き先
コピーアクティビティの [宛先 ]タブの Amazon S3 では、次のプロパティがサポートされています。
次のプロパティは必須です。
- 接続: 接続リストから Amazon S3 接続を選択します。 接続が存在しない場合は、[ 新規] を選択して新しい Amazon 接続を作成します。
- 接続の種類: 接続の種類として Amazon S3 を選択します。
- ファイル パス: 指定されたバケットまたは指定されたバケットとフォルダー パスにデータをコピーできます。
- ファイル形式: ドロップダウン リストから適用されるファイル形式を選択します。 [ 設定] を 選択してファイル形式を構成します。 さまざまなファイル形式の設定については、 サポートされている形式 の記事を参照してください。
[詳細設定] では、次のフィールドを指定できます。
コピー動作: ソースがファイル ベースのデータ ストアのファイルである場合のコピー動作を定義します。 ドロップダウン リストから動作を選択できます。
- フラット化階層: ソース フォルダーのすべてのファイルは、コピー先フォルダーの最初のレベルにあります。 コピー先ファイルには自動生成された名前があります。
- ファイルのマージ: ソース フォルダーのすべてのファイルを 1 つのファイルにマージします。 ファイル名を指定した場合、マージされたファイル名は指定した名前になります。 それ以外の場合は、自動生成されたファイル名です。
- 階層の保持: ターゲット フォルダー内のファイル階層を保持します。 ソース ファイルからソース フォルダーへの相対パスは、ターゲット フォルダーへのターゲット ファイルの相対パスと同じです。
最大同時接続数: このプロパティは、アクティビティの実行中にデータ ストアに対して確立された同時接続の上限を示します。 コンカレント接続数を制限する場合にのみ、値を指定します。
地図作成
[ マッピング ] タブの構成については、[ マッピング] タブの [マッピングの構成] に移動します。ファイル形式として [バイナリ] を選択した場合、マッピングはサポートされません。
設定
[設定] タブの構成については、[設定] タブの [その他の設定の構成] に移動します。
表の概要
次の表に、Amazon S3 のコピーアクティビティに関する詳細を示します。
ソース情報
| 名前 | Description | 価値 | 必須 | JSON スクリプト プロパティ |
|---|---|---|---|---|
| 接続 | ソース データ ストアへの接続。 | <あなたのAmazon S3 接続> | イエス | 接続 |
| 接続の種類 | 接続の種類を選択します。 | Amazon S3 | イエス | / |
| ファイル パスの種類 | ソース データの取得に使用されるファイル パスの種類。 | • ファイル パス • プレフィックス ワイルドカード ファイル パス • ファイルの一覧 |
イエス | / |
| ファイル パスの場合 | ||||
| バケツ | S3 バケット名。 | <バケット名> | イエス | bucketName |
| ディレクトリ | 指定したバケットの下にあるフォルダーへのパス。 | <あなたのフォルダー名> | いいえ | フォルダパス |
| ファイル名 | 指定したバケットとフォルダー パスの下のファイル名。 | <ファイル名> | いいえ | fileName |
| プレフィックスの場合 | ||||
| バケツ | S3 バケット名。 | <バケット名> | イエス | bucketName |
| Prefix | ソース S3 ファイルをフィルター処理するための、指定されたバケットの下の S3 キー名のプレフィックス。 | <あなたのプレフィックス> | いいえ | prefix |
| ワイルドカード ファイル パスの場合 | ||||
| バケツ | S3 バケット名。 | <バケット名> | イエス | bucketName |
| ワイルドカード フォルダー パス | ソース フォルダーをフィルター処理するための、指定したバケットの下にワイルドカード文字を含むフォルダー パス。 | <ワイルドカード文字を使用したフォルダー パス> | いいえ | wildcardFolderPath |
| ワイルドカード ファイル名 | ソース ファイルをフィルター処理するための、指定したバケットとフォルダー パス (またはワイルドカード フォルダー パス) の下にワイルドカード文字を含むファイル名。 | <ワイルドカード文字を使用したファイル名> | イエス | wildcardFileName |
| ファイルの一覧 | ||||
| バケツ | S3 バケット名。 | <バケット名> | イエス | bucketName |
| ディレクトリ | 指定したバケットの下にあるフォルダーへのパス。 | <あなたのフォルダー名> | いいえ | フォルダパス |
| ファイル一覧へのパス | 指定されたファイル セットをコピーすることを示します。 コピーするファイルの一覧を含むテキスト ファイル (1 行に 1 つのファイル) をポイントします。 | < ファイル リストのパス > | いいえ | fileListPath |
| ファイル形式 | ソース データのファイル形式。 さまざまなファイル形式の詳細については、 サポートされている形式 の記事を参照してください。 | / | イエス | / |
| 再帰的に | データをサブフォルダーから再帰的に読み取るか、指定したフォルダーからのみ読み取るかを指定します。 再帰的に選択され、コピー先がファイル ベースのストアである場合、空のフォルダーまたはサブフォルダーはコピーされず、コピー先に作成されません。 ファイル 一覧へのパスを構成する場合、このプロパティは適用されません。 | selected (default) または選択解除 | いいえ | recursive |
| 最終変更によるフィルター処理 | [開始時刻,終了時刻] の範囲内の最終変更時刻を含むファイルは、さらに処理するためにフィルター処理されます。 時刻は、 yyyy-mm-ddThh:mm:ss.fffZの形式で UTC タイム ゾーンに適用されます。 これらのプロパティはスキップできます。つまり、ファイル属性フィルターは適用されません。 ファイル パスの種類をファイルのリストとして構成する場合、このプロパティは適用されません。 |
datetime | いいえ | modifiedDatetimeStart modifiedDatetimeEnd |
| パーティション検出を有効にする | ファイル パスからパーティションを解析し、追加のソース列として追加するかどうかを示します。 | selected または unselected (default) | いいえ | enablePartitionDiscovery: true または false (既定値) |
| パーティション ルート パス | パーティション検出が有効になっている場合は、パーティション分割されたフォルダーをデータ列として読み取るための絶対ルート パスを指定します。 | < パーティションのルート パス > | いいえ | partitionRootPath |
| 最大同時接続数 | アクティビティの実行中にデータ ストアに対して確立されるコンカレント接続数の上限。 コンカレント接続数を制限する場合にのみ、値を指定します。 | <最大同時接続数> | いいえ | maxConcurrentConnections |
| 追加の列 | ソース ファイルの相対パスまたは静的値を格納するデータ列を追加します。 エクスプレッションは後者に対応しています。 | •名前 • 価値 |
いいえ | 追加列: •名前 •価値 |
宛先情報
| 名前 | Description | 価値 | 必須 | JSON スクリプト プロパティ |
|---|---|---|---|---|
| 接続 | コピー先データ ストアへの接続。 | <あなたのAmazon S3 接続> | イエス | 接続 |
| 接続の種類 | 接続の種類を選択します。 | Amazon S3 | イエス | / |
| ファイル パス | 移動先ファイルへのフォルダー/ファイル パス。 | <フォルダ/ファイル パス> | イエス | / |
| バケツ | S3 バケット名。 | <バケット名> | イエス | bucketName |
| ディレクトリ | 指定したバケットの下にあるフォルダーへのパス。 | <あなたのフォルダー名> | いいえ | フォルダパス |
| ファイル名 | 指定したバケットとフォルダー パスの下のファイル名。 | <ファイル名> | いいえ | fileName |
| コピーの動作 | ソースがファイル ベースのデータ ストアのファイルの場合は、コピー動作を定義します。 | • 階層をフラット化する • ファイルのマージ • 階層を保持する |
いいえ | コピー動作: • 階層を平坦化する • MergeFiles • PreserveHierarchy(階層構造を保持) |
| 最大同時接続数 | アクティビティの実行中にデータ ストアに対して確立されるコンカレント接続数の上限。 コンカレント接続数を制限する場合にのみ、値を指定します。 | <最大同時接続数> | いいえ | maxConcurrentConnections |