Copy アクティビティで Google Cloud Storage を構成する
この記事では、データ パイプラインでのコピー アクティビティを使用して、Google Cloud Storage 間でデータをコピーする方法について説明します。
前提条件
Google Cloud Storage アカウントに対して次の設定が必要となります。
Google Cloud Storage アカウントの相互運用性を有効にします。
ターゲット Google Cloud Storage バケットからコピーするデータを含む既定のプロジェクトを設定します。
GCP で Cloud IAM を使用して、サービス アカウントを作成し、適切なレベルのアクセス許可を定義します。
このサービス アカウントのアクセス キーを生成します。
必要なアクセス許可
Google Cloud Storage からデータをコピーするには、オブジェクト操作に対する次のアクセス許可が付与されている必要があります: storage.objects.get
および storage.objects.list
。
さらに、接続のテストやルートからのブラウズなどの操作にも storage.buckets.list
アクセス許可が必要です。
Google Cloud Storage のロールと関連するアクセス許可の完全な一覧については、Google Cloud サイトの「Cloud Storage に適用される IAM のロール」にアクセスしてください。
サポートされている形式
Google Cloud Storage では、次のファイル形式がサポートされています。 形式ベースの設定については、各記事を参照してください。
サポートされている構成
Copy アクティビティの下の各タブの構成については、それぞれ次のセクションを参照してください。
全般
[全般] タブの構成で、[全般] に移動します。
ソース
コピー アクティビティの [ソース] タブの Google Cloud Storage では、次のプロパティがサポートされています。
次のプロパティは必須です。
[データ ストアの種類]: [外部] を選択します。
[接続]: 接続リストから [Google Cloud Storage] 接続を選択します。 接続が存在しない場合は、[新規] を選択して新しい Google Cloud Storage 接続を作成します。
[ファイル パスの種類]: ファイル パスの種類として、[ファイル パス]、[プレフィックス]、[ワイルドカード ファイル パス]、または [ファイルの一覧] を選択できます。 これらの各設定の構成は次のとおりです。
[ファイル パス]: この種類を選択した場合は、[ファイル パス] で指定された特定のバケットまたはフォルダー/ファイル パスからデータをコピーできます。
[プレフィックス]: この種類を選択した場合は、バケットとプレフィックスを指定します。
バケット: Google Cloud Storage バケット名を指定します。 この引数は必須です。
プレフィックス: 指定されたバケットの下にある Google クラウド ストレージ キー名のプレフィックスを指定して、ソースの Google Cloud Storage ファイルをフィルター処理します。 名前が
given_bucket/this_prefix
で始まる Google Cloud Storage キーが選択されます。 ワイルドカード フィルターより優れたパフォーマンスを提供する Google Cloud Storage のサービス側フィルターを利用します。
[ワイルドカード ファイル パス]: この種類を選択した場合は、バケットと ワイルドカード パスを指定します。
バケット: Google Cloud Storage バケット名を指定します。 この引数は必須です。
[ワイルドカード パス]: ソース フォルダーまたはファイルをフィルター処理するために、特定のバケットの下の、ワイルドカード文字を含むフォルダーまたはファイル パスを指定します。
使用できるワイルドカードは、
*
(ゼロ文字以上の文字に一致) と?
(ゼロ文字または 1 文字に一致) です。 フォルダー名にワイルドカードまたはこのエスケープ文字が含まれている場合は、^
を使用してエスケープします。 他の例については、「フォルダーとファイル フィルターの例」をご覧ください。[ワイルドカード フォルダー パス]: ソース フォルダーをフィルター処理するために、特定のバケットの下のワイルドカード文字を含むフォルダーのパスを指定します。
[ワイルドカード ファイル名]: ソース ファイルをフィルター処理するため、特定のバケットおよびフォルダー パス (またはワイルドカード フォルダー パス) の下のワイルドカード文字を含むファイル名を指定します。
[ファイルの一覧]: この種類を選択した場合は、[フォルダー パス] と [ファイル一覧へのパス] を指定して、特定のファイル セットをコピーすることを示します。 コピーするファイルの一覧を含むテキスト ファイルをポイントします。構成されているパスへの相対パスであるファイルを 1 行につき 1 つずつ指定します。 その他の例については、「ファイル リストの例」をご覧ください。
- [フォルダー パス]: 指定されたバケットの下のフォルダーへのパスを指定します。 この引数は必須です。
- [ファイル リストへのパス]: コピーするファイルの一覧を含むテキスト ファイルのパスを指定します。
[再帰的]: データをサブフォルダーから再帰的に読み取るか、指定したフォルダーからのみ読み取るかを指定します。 このチェックボックスが選択され、読み取り先がファイルベースのストアである場合、空のフォルダーまたはサブフォルダーは読み取り先でコピーも作成もされないことに注意してください。
[ファイル形式]: ドロップダウン リストから適用されるファイル形式を選択します。 [設定] を 選択してファイル形式を構成します。 さまざまなファイル形式の設定については、「サポートされている形式」を参照してください。
[詳細設定] では、次のフィールドを指定できます。
最終更新日でフィルター処理: 指定した最終更新日に基づいてファイルがフィルター処理されます。 ファイル パスの種類を [ファイルの一覧] として構成する場合、このプロパティは適用されません。
- 開始時刻 (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 つの列がさらに生成されます。 - パーティションのルート パスが指定されていない場合、追加の列は生成されません。
[最大コンカレント接続数]: アクティビティの実行中にデータ ストアに対して確立されるコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。
[追加の列]: ソース ファイルの相対パスまたは静的値を格納するための追加のデータ列を追加します。 後者では式がサポートされています。
宛先
コピー アクティビティの [配信先] タブの下の Google Cloud Storage では、次のプロパティがサポートされています。
次のプロパティは必須です。
- [データ ストアの種類]: [外部] を選択します。
- [接続]: 接続リストから [Google Cloud Storage] 接続を選択します。 接続が存在しない場合は、[新規] を選択して新しい Google Cloud Storage 接続を作成します。
- [ファイル パス]: この種類を選択した場合は、特定のバケットから、または指定されたバケットとフォルダー パスからデータをコピーできます。
- [ファイル形式]: ドロップダウン リストから適用されるファイル形式を選択します。 [設定] を 選択してファイル形式を構成します。 さまざまなファイル形式の設定については、「サポートされている形式」を参照してください。
[詳細設定] では、次のフィールドを指定できます。
[コピー動作]: ソースがファイル ベースのデータ ストアのファイルの場合は、コピー動作を定義します。 ドロップダウン リストからビヘイビアーを選択できます。
- [階層のフラット化]: ソース フォルダーのすべてのファイルがコピー先フォルダーの第一レベルに配置されます。 コピー先のファイルは、自動生成された名前になります。
- [ファイルのマージ]: ソース フォルダーのすべてのファイルを 1 つのファイルにマージします。 ファイル名を指定した場合、マージされたファイル名は指定した名前になります。 それ以外は自動生成されたファイル名になります。
- [階層の保持]: ターゲット フォルダー内でファイル階層を保持します。 ソース フォルダーに対するソース ファイルの相対パスと、ターゲット フォルダーに対するターゲット ファイルの相対パスが一致します。
[最大コンカレント接続数]: このプロパティは、アクティビティの実行中にデータ ストアに対して確立されるコンカレント接続数の上限を示します。 コンカレント接続を制限する場合にのみ、値を指定します。
マッピング
[マッピング] タブの構成については、「[マッピング] タブでマッピングを構成する」を参照してください。ファイル形式として [バイナリ] を選択した場合、マッピングはサポートされません。
設定
[設定] タブの構成については、「[設定] タブで他の設定を構成する」を参照してください。
テーブルの概要
次の表に、Google Cloud Storage でのコピー アクティビティの詳細を示します。
ソース情報
名前 | Description | Value | 必須 | JSON スクリプト プロパティ |
---|---|---|---|---|
データ ストアの種類 | データ ストアの種類。 | 外部品目番号 | はい | / |
接続 | ソース データ ストアへの実際の接続。 | <Google Cloud Storage 接続> | はい | つながり |
ファイル パスの種類 | ソース データの取得に使用されるファイル パスの種類。 | • ファイル パス • プレフィックス • ワイルドカード ファイル パス • ファイルの一覧 |
はい | / |
ファイル パスの場合 | ||||
バケット | Google Cloud Storage バケットの名前。 | <ご利用のバケット名> | はい | bucketName |
ディレクトリ | 特定のバケットの下のフォルダーへのパス。 | <フォルダー名> | いいえ | folderpath |
ファイル名 | 指定したバケットおよびフォルダー パスの下のファイル名。 | <ファイル名> | いいえ | fileName |
プレフィックスの場合 | ||||
バケット | Google Cloud Storage バケットの名前。 | <ご利用のバケット名> | はい | bucketName |
プレフィックス | ソース Google Cloud Storage ファイルをフィルター処理するために、指定されたバケットにある Google Cloud Storage キー名のプレフィックス。 | <ご利用のプレフィックス> | いいえ | prefix |
ワイルドカード ファイル パスの場合 | ||||
バケット | Google Cloud Storage バケットの名前。 | <ご利用のバケット名> | はい | bucketName |
ワイルドカード フォルダー パス | ソース フォルダーをフィルター処理するための、構成されたバケットの下の、ワイルドカード文字を含むフォルダー パス。 | <ワイルドカード文字を含むフォルダー パス> | いいえ | wildcardFolderPath |
ワイルドカード ファイル名 | ソース ファイルをフィルター処理するための、特定のバケットおよびフォルダー パス (またはワイルドカード フォルダー パス) の下のワイルドカード文字を含むファイル名。 | <ワイルドカード文字を含むファイル名> | はい | wildcardFileName |
ファイル一覧 | ||||
バケット | Google Cloud Storage バケットの名前。 | <ご利用のバケット名> | はい | bucketName |
ディレクトリ | 特定のバケットの下のフォルダーへのパス。 | <フォルダー名> | いいえ | folderpath |
ファイル リストへのパス | 指定されたファイル セットをコピーすることを示します。 1 行に 1 ファイルずつ、コピーするファイルの一覧を含むテキスト ファイルをポイントします。 | < ファイル リストのパス > | いいえ | fileListPath |
ファイル形式 | ソース データのファイル形式。 さまざまなファイル形式の詳細については、「サポートされている形式」の各記事を参照してください。 | / | はい | / |
Recursively | データをサブフォルダーから再帰的に読み取るか、指定したフォルダーからのみ読み取るかを指定します。 このチェックボックスが選択され、読み取り先がファイルベースのストアである場合、空のフォルダーまたはサブフォルダーは読み取り先でコピーも作成もされないことに注意してください。 | 選択済み (デフォルト) または選択解除 | いいえ | recursive |
最終更新日時でフィルター処理 | 最終変更時刻が [開始時刻] から [終了時刻] の範囲内にあるファイルは、さらに処理するためにフィルター処理されます。 時刻は、yyyy-mm-ddThh:mm:ss.fffZ の形式で UTC タイム ゾーンに適用されます。 これらのプロパティはスキップできます。つまり、ファイル属性フィルターは適用されません。 ファイル パスの種類を [ファイルの一覧] として構成する場合、このプロパティは適用されません。 |
datetime | いいえ | modifiedDatetimeStart modifiedDatetimeEnd |
パーティション検出を有効にする | ファイル パスのパーティションを解析し、それを追加のソース列として追加するかどうかを示します。 | 選択または非選択 (既定値) | いいえ | enablePartitionDiscovery: true または false (既定値) |
パーティションのルート パス | パーティション検出が有効になっている場合は、パーティション分割されたフォルダーをデータ列として読み取るための絶対ルート パスを指定します。 | <実際のパーティションのルート パス> | いいえ | partitionRootPath |
[最大コンカレント接続数] | アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 | <最大コンカレント接続数> | いいえ | maxConcurrentConnections |
追加の列 | ソース ファイルの相対パスまたは静的値を格納するための追加のデータ列を追加します。 後者では式がサポートされています。 | • 名前 • 値 |
いいえ | additionalColumns: •名前 • value |
コピー先の情報
名前 | Description | Value | 必須 | JSON スクリプト プロパティ |
---|---|---|---|---|
データ ストアの種類 | データ ストアの種類。 | 外部品目番号 | はい | / |
接続 | コピー先データ ストアへの接続。 | <Google Cloud Storage 接続> | はい | つながり |
ファイル パス | 追加先ファイルへのフォルダー/ファイル パス。 | <フォルダー/ファイルパス> | はい | / |
バケット | Google Cloud Storage バケットの名前。 | <ご利用のバケット名> | はい | bucketName |
ディレクトリ | 特定のバケットの下のフォルダーへのパス。 | <フォルダー名> | いいえ | folderpath |
ファイル名 | 指定したバケットおよびフォルダー パスの下のファイル名。 | <ファイル名> | いいえ | fileName |
コピー動作 | ソースがファイル ベースのデータ ストアのファイルの場合は、コピー動作を定義します。 | • 階層のフラット化 • ファイルのマージ • 階層の保持 |
いいえ | copyBehavior: • FlattenHierarchy • MergeFiles • PreserveHierarchy |
最大コンカレント接続数 | アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 | <最大コンカレント接続数> | いいえ | maxConcurrentConnections |