Copy アクティビティで SFTP を構成する
この記事では、データ パイプラインでコピー アクティビティを使用して、SFTP からデータをコピーする方法について概説します。
サポートされている形式
SFTP では、次のファイル形式がサポートされています。 形式ベースの設定については、各記事を参照してください。
サポートされている構成
Copy アクティビティの下の各タブの構成については、それぞれ次のセクションを参照してください。
全般
[全般設定] タブを構成するには、全般設定のガイダンスを参照してください。
Source
[ソース] タブに移動して、コピー アクティビティのソースを構成します。 詳細な構成については、次の内容を参照してください。
次の 3 つのプロパティが必要です。
[データ ストアの種類]: [外部] を選択します。
接続: 接続リストから SFTP 接続を選択します。 接続が存在しない場合は、[新規] を選択して新しい SFTP 接続を作成します。
ファイル パスの種類: ファイルの読み取り方法に基づいて、[ファイル パス]、[ワイルドカード ファイル パス]、[ファイルの一覧] から選びます。
ファイル パス: この種類を選んだ場合は、ソース ファイルのパスを指定します。 [参照] を選択してソース ファイルを選ぶか、ファイル パスを手動で入力できます。
ワイルド ファイル パス: この種類を選んだ場合は、ソース フォルダーまたはファイルをフィルター処理するために [ワイルドカード パス] を指定します。
使用できるワイルドカードは、
*
(ゼロ文字以上の文字に一致) と?
(ゼロ文字または 1 文字に一致) です。 フォルダー名にワイルドカードまたはこのエスケープ文字が含まれている場合は、^
を使用してエスケープします。 他の例については、「フォルダーとファイル フィルターの例」をご覧ください。ワイルドカード フォルダー パス: ソース フォルダーをフィルター処理するために、ワイルドカード文字を含むフォルダーのパスを指定します。
ワイルドカード ファイル名: ソース ファイルをフィルター処理するために、特定のフォルダー パスまたはワイルドカード フォルダー パスの下のワイルドカード文字を含むファイル名を指定します。
ファイルの一覧: この種類を選択した場合は、[フォルダー パス] と [ファイル リストへのパス] を指定して、特定のファイル セットをコピーすることを示します。 コピーするファイルの一覧を含むテキスト ファイルをポイントします。1 行につき 1 つずつ指定します。 その他の例については、「ファイル リストの例」をご覧ください。
フォルダー パス: ソース フォルダーへのパスを指定します。 この引数は必須です。
ファイル リストへのパス: コピーするファイルの一覧を含むテキスト ファイルのパスを指定します。
ファイル形式: ドロップダウン リストから適用されるファイル形式を選択します。 [設定] を 選択してファイル形式を構成します。 さまざまなファイル形式の設定については、「サポートされている形式」を参照してください。
[詳細設定] では、次のフィールドを指定できます。
最終更新日でフィルター処理: 指定した最終更新日に基づいてファイルがフィルター処理されます。 ファイル パスの種類を [ファイルの一覧] として構成する場合、このプロパティは適用されません。
- 開始時刻 (UTC): 最終変更時刻が構成された時刻以降のファイルが選択されます。
- 終了時刻 (UTC): 最終変更時刻が構成された時刻未満のファイルが選択されます。
[開始時刻 (UTC)] に datetime 値を設定し、[終了時刻 (UTC)] を NULL にした場合は、最終更新属性が datetime 値以上であるファイルが選択されることを意味します。 [終了時刻 (UTC)] に datetime 値を設定し、[開始時刻 (UTC)] を NULL にした場合は、最終更新属性が datetime 値未満であるファイルが選択されることを意味します。 プロパティは、ファイル属性フィルターがデータに適用されないことを意味する NULL にすることができます。
チャンクを無効にする: チャンクは、パフォーマンスを最適化するように設計されており、裏で行われます。 このオプションを使用すると、各ファイル内のチャンクを無効にすることができます。 SFTP からデータをコピーする際、このサービスは、まずファイル長の取得を試み、次にファイルを複数の部分に分割して、並列で読み取ります。 SFTP サーバーで、ファイル長の取得、または特定のオフセットから読み取るためのシークがサポートされているかどうかを指定します。 既定では選択されていません。
パーティション検出を有効にする: ファイル パスのパーティションを解析し、それを追加のソース列として追加するかどうかを指定します。 既定では選択されず、バイナリ ファイル形式を使用する場合はサポートされません。
[パーティションのルート パス]: パーティション検出が有効になっている場合は、パーティション分割されたフォルダーをデータ列として読み取るための絶対ルート パスを指定します。
これが指定されていない場合は、既定で次のようになります。- ソースでファイル パスまたはファイルの一覧を使用する場合、パーティションのルート パスは、構成したパスです。
- ワイルドカード フォルダー フィルターを使用する場合、パーティションのルート パスは最初のワイルドカードの前のサブパスです。
たとえば、パスを
root/folder/year=2020/month=08/day=27
として構成するとします。- パーティションのルート パスを
root/folder/year=2020
として指定した場合は、コピー アクティビティによって、ファイル内の列に加え、値がそれぞれ "08" と "27" の月と日という 2 つの列がさらに生成されます。 - パーティションのルート パスが指定されていない場合、追加の列は生成されません。
[最大コンカレント接続数]: このプロパティは、アクティビティの実行中にデータ ストアに対して確立されるコンカレント接続数の上限を示します。 コンカレント接続を制限する場合にのみ、値を指定します。
[追加の列]: ソース ファイルの相対パスまたは静的値を格納するための追加のデータ列を追加します。 後者では式がサポートされています。 詳細については、「コピー中に列を追加する」を参照してください。
宛先
[コピー先] タブに移動して、コピー アクティビティのコピー先を構成します。 詳細な構成については、次の内容を参照してください。
- [データ ストアの種類]: [外部] を選択します。
- 接続: 接続リストから SFTP 接続を選択します。 接続が存在しない場合は、[新規] を選択して新しい SFTP 接続を作成します。
- ファイル パス: データを書き込むファイル パスを指定します。 [参照] を選択してソース ファイルを選ぶか、ファイル パスを手動で入力できます。
- ファイル形式: ドロップダウン リストから適用されるファイル形式を選択します。 [設定] を 選択してファイル形式を構成します。 さまざまなファイル形式の設定については、「サポートされている形式」を参照してください。
[詳細設定] では、次のフィールドを指定できます。
コピー動作: ソースがファイルベース データ ストアのファイルの場合のコピー動作を指定します。 次のプロパティから選びます。
- 階層のフラット化: ソース フォルダーのすべてのファイルがターゲット フォルダーの第一レベルに配置されます。 ターゲット ファイルは、自動生成された名前になります。
- ファイルのマージ: ソース フォルダーのすべてのファイルを 1 つのファイルにマージします。 ファイル名を指定した場合、マージされたファイル名は指定した名前になります。 それ以外は自動生成されたファイル名になります。
- 階層の保持 (既定値): ファイル階層をターゲット フォルダー内で保持します。 ソース フォルダーへのソース ファイルの相対パスはターゲット フォルダーへのターゲット ファイルの相対パスと同じになります。
- 動的なコンテンツの追加: 動的なコンテンツを使用してコピーの動作を指定するには、これを選択します。
[最大コンカレント接続数]: アクティビティの実行中にデータ ストアに対して確立されるコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。
操作のタイムアウト (分): 各チャンクを SFTP サーバーに書き込むためのタイムアウトを指定します。 既定値は 60 分です。
一時ファイルを使用してアップロードする 一時ファイルにアップロードしてそれらの名前を変更するか、ターゲットのフォルダーまたはファイルの場所に直接書き込むかを指定します。 既定では、これが選択され、最初に一時ファイルに書き込まれ、アップロードが完了したらそれらの名前が変更されます。
このシーケンスは、(1) 同じファイルに書き込み中の他のプロセスがある場合に、ファイルの破損に至る可能性がある競合を回避し、(2) 転送中に元のバージョンのファイルが確実に存在するようにするのに役立ちます。 実際の SFTP サーバーで名前の変更操作がサポートされていない場合は、このオプションを無効にして、ターゲット ファイルへの同時書き込みが発生しないようにします。
ヒント
SFTP にデータを書き込もうとしているときに "UserErrorSftpPathNotFound"、"UserErrorSftpPermissionDenied"、"SftpOperationFail" のいずれかのエラーが表示され、使用する SFTP ユーザーに適切なアクセス許可が確かにある場合は、実際の SFTP サーバーで、ファイル名の変更操作が機能しているかどうかを確認してください。 そうでない場合は、[一時ファイルを使用してアップロードする] オプションを無効にして、もう一度試します。
マッピング
[マッピング] タブの構成については、「[マッピング] タブでマッピングを構成する」を参照してください。ファイル形式として [バイナリ] を選択した場合、マッピングはサポートされません。
設定
[設定] タブの構成については、「[設定] タブで他の設定を構成する」を参照してください。
表の概要
次の表には、SFTP でのコピー アクティビティの詳細が含まれています。
ソース
名前 | Description | Value | 必須 | JSON スクリプト プロパティ |
---|---|---|---|---|
データ ストアの種類 | データ ストアの種類。 | 外部品目番号 | はい | / |
接続 | ソース データ ストアへの SFTP 接続。 | < SFTP 接続 > | はい | つながり |
ファイル パスの種類 | ソース データの取得に使用されるファイル パスの種類。 | • ファイル パス • ワイルドカード ファイル パス • ファイルの一覧 |
はい | / |
ファイル パス | ソース ファイルへのパス。 | < ファイル パス> | はい | fileName folderPath |
ワイルドカード パス | ソース ファイルへのワイルドカード パス。 | < ワイルドカード ファイル パス > | [ワイルドカード ファイル名] の場合ははい | wildcardFolderPath wildcardFileName |
フォルダー パス | ソース フォルダーへのパス。 | < フォルダーのパス> | はい | folderPath |
ファイル リストへのパス | 指定されたファイル セットをコピーすることを示します。 1 行に 1 ファイルずつ、コピーするファイルの一覧を含むテキスト ファイルをポイントします。 | < ファイル リストのパス > | いいえ | fileListPath |
ファイル形式 | ソース データのファイル形式。 さまざまなファイル形式の詳細については、「サポートされている形式」の各記事を参照してください。 | / | はい | / |
最終更新日時でフィルター処理 | 最終変更時刻が [開始時刻] から [終了時刻] の範囲内にあるファイルは、さらに処理するためにフィルター処理されます。 時刻は、yyyy-mm-ddThh:mm:ss.fffZ の形式で UTC タイム ゾーンに適用されます。 これらのプロパティはスキップできます。つまり、ファイル属性フィルターは適用されません。 ファイル パスの種類を [ファイルの一覧] として構成する場合、このプロパティは適用されません。 |
datetime | いいえ | modifiedDatetimeStart modifiedDatetimeEnd |
チャンクを無効にする | チャンクは、パフォーマンスを最適化するように設計されており、裏で行われます。 このオプションを使用すると、各ファイル内のチャンクを無効にすることができます。 SFTP からデータをコピーする際、このサービスは、まずファイル長の取得を試み、次にファイルを複数の部分に分割して、並列で読み取ります。 SFTP サーバーで、ファイル長の取得、または特定のオフセットから読み取るためのシークがサポートされているかどうかを指定します。 | 選択または非選択 (既定値) | いいえ | disableChunking: true または false (既定値) |
パーティション検出を有効にする | ファイル パスのパーティションを解析し、それを追加のソース列として追加するかどうかを示します。 | 選択または非選択 (既定値) | いいえ | enablePartitionDiscovery: true または false (既定値) |
パーティションのルート パス | パーティション分割されたフォルダーをデータ列として読み取るためのパーティションの絶対ルート パス。 パーティション検出が有効になっている場合に指定します。 | < パーティションのルート パス > | いいえ | partitionRootPath |
[最大コンカレント接続数] | アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 | <コンカレント接続数の上限> (整数) |
いいえ | maxConcurrentConnections |
追加の列 | ソース ファイルの相対パスまたは静的値を格納するための追加のデータ列を追加します。 後者では式がサポートされています。 詳細については、「コピー中に列を追加する」を参照してください | • 名前 • 値 |
いいえ | additionalColumns: • name • value |
宛先
名前 | Description | Value | 必須 | JSON スクリプト プロパティ |
---|---|---|---|---|
データ ストアの種類 | データ ストアの種類。 | 外部 | はい | / |
接続 | ソース SFTP への接続。 | <実際の接続> | はい | つながり |
ファイル パス | コピー先データのファイル パス。 | ターゲットのファイル パス | はい | folderPath fileName |
ファイル形式 | ソース データのファイル形式。 さまざまなファイル形式の詳細については、「サポートされている形式」の各記事を参照してください。 | / | はい | / |
コピー動作 | ソースがファイル ベースのデータ ストアのファイルの場合は、コピー動作を定義します。 | • 階層のフラット化 • ファイルのマージ • 階層の保持 |
いいえ | copyBehavior: - FlattenHierarchy - MergeFiles - PreserveHierarchy |
最大コンカレント接続数 | アクティビティの実行中にデータ ストアに対して確立されたコンカレント接続数の上限。 コンカレント接続を制限する場合にのみ、値を指定します。 | < 最大コンカレント接続数 > | いいえ | maxConcurrentConnections |
操作のタイムアウト (分) | 各チャンクを SFTP サーバーに書き込むためのタイムアウト。 | < 操作のタイムアウト > 既定値は 60 です |
いいえ | operationTimeout |
一時ファイルを使用してアップロードする | 一時ファイルをアップロードして名前を変更するかどうかを示します。 SFTP サーバーで名前変更操作がサポートされていない場合は、このオプションを無効にします。 | オン (既定値) またはオフ | いいえ | useTempFileRename: true (既定値) または false |