注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
探索を使ってファイルベースの同期を作成した後、同期ページの設定タブで設定を更新できます。
Foundry のファイルベースの同期には、柔軟性と設定の自由度を高める詳細設定がありますが、ほとんどのユースケースは既知のモードに従います。次の表では、既知のモードと、目的の動作を実現するために必要な詳細設定、およびそれらのモードと矛盾する可能性がある設定について説明します。
SNAPSHOT によるバッチミラーリング(デフォルト)SNAPSHOT実行のたびに、以前の実行で取り込まれたファイルも含め、外部システムのサブディレクトリ内にあるすべてのファイルを取り込み、それらのファイルだけを含む SNAPSHOT トランザクションを出力データセットにコミットします。出力 Foundry データセットビューには、すべてのファイルを含む単一の SNAPSHOT トランザクションが含まれます。
N 個のファイルがない場合、この設定によって空のトランザクションが生成され、取り込まれるファイルは0個になります。それ以外の場合、この設定は影響しません。APPEND によるインクリメンタル(差分連携)ミラーリングAPPEND出力データセットビューには、一連の APPEND トランザクションが含まれます。これらを合わせると、指定されたサブフォルダー内で、これまでのいずれかのジョブ実行時に存在していたすべてのファイルが含まれます。実行のたびに、ファイルパス名をキーとして、まだ取り込まれていないすべてのファイルを取り込み、APPEND トランザクションを出力データセットにコミットします。
APPEND トランザクションで誤って再取り込みしようとします。既存のファイルを更新できるようにするには、UPDATE によるインクリメンタル取り込みモードを確認してください。UPDATE によるインクリメンタル(差分連携)ミラーリングUPDATE出力データセットビューには、一連の UPDATE トランザクションが含まれます。これらを合わせると、指定されたサブフォルダー内で、これまでのいずれかのジョブ実行時に存在していたすべてのファイルの最新バージョンが含まれます。実行のたびに、ファイルパス名をキーとして、まだ取り込まれていない_または_取り込み後に変更されたすべてのファイルを取り込み、UPDATE トランザクションを出力データセットにコミットします。
このモードは、外部システムによる既存ファイルの変更が避けられない場合にのみ使用してください。1回の実行では新しいファイルまたは変更されたファイルだけが取り込まれるという意味で、取り込みはインクリメンタルです。ただし、出力データセット(下流のパイプラインへの入力)は追加専用ではないため、下流のパイプラインはインクリメンタルに実行できません。
SNAPSHOT による直近ウィンドウSNAPSHOT出力データセットビューには、過去のどのジョブ実行時にも存在しなかったファイルだけを含む、単一の SNAPSHOT トランザクションが含まれます。実行のたびに、ファイルパス名をキーとして、まだ取り込まれていないすべてのファイルを取り込み、それらのファイルだけを含む SNAPSHOT トランザクションを出力データセットにコミットします。
このモードは、「最近」のファイル(外部システムで、前々回の実行から前回の実行までの間に作成されたファイル)だけが下流のパイプラインや操作に関係する場合に役立ちます。以前の実行で取り込まれたファイルは、出力データセットビューには表示されません。
出力に含めるファイルの種類を制限するフィルターに加え、サブフォルダーと任意の正規表現を指定することは、常に安全です。このようなフィルターには、古いファイルを除外するための「指定日時より後に最終更新」や、.sh の実行可能ファイルなど、特定のファイル拡張子を持つファイルを除外するための「パスが一致しない」があります。
目的の同期モードと密接に結びついており、その動作を妨げる可能性があるのは、「同期済みのファイルを除外」、「少なくとも N 個のファイル」、「ファイル数を制限」のフィルターだけです。
すべてのバッチ同期と同様に、ファイルベースの同期はトランザクション単位で処理されます。いずれかの時点で同期に失敗すると、トランザクションは中止され、その実行で処理されたどのファイルもデータセットにコミットされません。
たとえば、100万個のファイルをアップロードするように同期が設定されていて、最後の1個を除くすべてのファイルをアップロードした後にネットワークエラーが発生した場合、トランザクション全体が中止されます。アップロードされたどのファイルもコミットされず、データセットビューは変更されません。
この動作のため、1回の実行で大量のファイルを処理する同期は、一時的な障害の影響を受けやすくなります。同期失敗の影響を軽減するには、ファイル数制限フィルターを設定したインクリメンタル APPEND 同期を使用し、各実行で処理するファイルのバッチを小さくすることを検討してください。この方法では、失敗した場合にすべてのファイルではなく、現在のバッチだけを再同期すれば済みます。
ファイルベースの同期には、次の設定オプションがあります。
| パラメーター | 必須? | デフォルト | 説明 |
|---|---|---|---|
Subfolder | はい | Foundry に同期するファイルの、コネクター内での場所を指定します。 | |
Filters | いいえ | フィルターを適用して、Foundry に同期するファイルを制限します。 | |
Transformers | いいえ | Foundry に同期する前に、データにトランスフォーマーを適用します。 | |
🟡 Completion strategies [Legacy] | いいえ | 有効にすると、同期成功後にファイルや空の親ディレクトリが削除されます。ソースのファイルシステムに対する書き込み権限が必要です。完了ストラテジーは読み取り専用で、新しい同期では設定できません。 |
同期には、指定したサブフォルダー内のすべてのネストされたファイルとフォルダーが含まれます。
フィルターを使用すると、Foundry にインポートする前にソースファイルを絞り込めます。サポートされているフィルターの種類は次のとおりです。
同期済みファイルを除外には、既知のスケーラビリティ上の制限があります。同期を実行するたびにすべてのファイルをスキャンする必要があるためです。大量のファイルを取り込む同期では、履歴データ用の SNAPSHOT 同期と、同期済みファイルを除外を使用する INCREMENTAL 同期に分割することを推奨します。これにより、フィルターは最近のファイルのより小さなサブセットにのみ適用されます。コネクターがサポートしている場合は、代わりに前回の同期以降に変更されたファイルフィルターの使用を検討してください。
このフィルターは、ソースが報告する最終更新タイムスタンプに依存します。S3 に対応したエンドポイントでは、ファイルの内容が変更されるたびにタイムスタンプが更新されること、およびタイムスタンプの時計が安定していて正確であることをプロバイダーに確認してください。それ以外の場合は、同期済みファイルを除外を使用してください。
トランスフォーマーを使用すると、Foundry にアップロードする前に基本的なファイル変換(たとえば、圧縮や復号)を実行できます。同期中は、取り込み対象として選択されたファイルが、選択したトランスフォーマーに従って変更されます。
来歴とブランチ機能を活用するため、Data Connection のトランスフォーマーを使用するのではなく、Foundry 内で Pipeline Builder と Code Repositories を使用してデータ変換を実行することを推奨します。
Data Connection では、次のトランスフォーマーがサポートされています。
^(.*/) を / に置き換えて、ファイル名からディレクトリパスを削除します。完了ストラテジーは開発のレガシーフェーズにあり、追加の開発は予定されていません。既存の同期の完了ストラテジーは読み取り専用で、新しい同期では設定できません。代わりに、下流の外部トランスフォームを使用することを推奨します。
完了ストラテジーは、ファイルを Foundry データセットにバッチ同期することに成功した後、そのファイルと空の親ディレクトリの削除を試みる仕組みです。完了ストラテジーは読み取り専用で、新しい同期では設定できません。完了ストラテジーを使用している既存の同期は引き続き動作しますが、設定は変更できません。
このワークフローは、外部の記録システムから直接ではなく、ファイルストレージシステムなどの中間ステージング領域からデータを同期する場合に役立つことがあります。ただし、このワークフローは推奨しません。Foundry は外部の記録システムに直接接続する必要があります。Foundry が記録システムである場合は、中間ステージング領域ではなく Foundry に直接データをプッシュする必要があります。
完了ストラテジーには、重要な制限や留意事項がいくつかあります。これらの制限と、考えられる緩和策や代替アプリケーションについて、以下で説明します。
完了ストラテジーは開発のレガシーフェーズにあり、追加の開発は予定されていません。既存の同期の完了ストラテジーは読み取り専用で、新しい同期では設定できません。完了ストラテジーは、Agent ワーカーを使用するソースでのみ利用可能でした。完了ストラテジーが提供する機能は、代わりに下流のトランスフォームとして実装することを推奨します。
たとえば、foo.txt と bar.txt というファイルを含む S3 バケットへの直接接続があるとします。ファイルバッチ同期を使用してこれらをデータセットにコピーし、その後 S3 からファイルを削除したい場合は、完了ストラテジーを使用するのではなく、次の手順を実行してください。
この方法では、削除の呼び出しに失敗した場合に再試行でき、削除を試みる前にデータが Foundry に正常にコミットされることが保証されます。また、この方法はインクリメンタル(差分)ファイルバッチ同期にも対応しています。
既存の同期の完了ストラテジーはベストエフォートで動作します。つまり、データが実際に削除されることは保証されません。完了ストラテジーに失敗する可能性がある状況の例を以下に示します。
原則として、可能な限り完了ストラテジーの代替アプリケーションを使用することを推奨します。カスタム完了ストラテジーはサポートされなくなりました。
特にディレクトリソースで、取り込み後のファイル削除を保証する必要がある場合は、代わりに SSH 経由でファイルを削除する外部トランスフォームの使用を検討してください。
このガイドは、新しい同期を設定するユーザーや、低速または不安定な同期のトラブルシューティングを行うユーザーに推奨します。同期がすでに安定して動作している場合は、何もする必要はありません。
大量のファイルを単一のデータセットに同期すると、処理が遅くなり、一時的な障害の影響を受けやすくなることがあります。同期に失敗した場合の動作で説明しているように、どの時点で失敗してもトランザクション全体が中止されるため、同期の規模が大きいほど、それまでの処理がより多く無駄になるリスクがあります。
データセットが時間とともに増大すると、SNAPSHOT トランザクションはすべてのデータを Foundry に同期するため、SNAPSHOT としてデータを同期する時間も長くなります。代わりに、トランザクションの種類を APPEND に設定した同期を使用して、データの差分だけをインポートしてください。データを小さな独立したまとまりごとに同期することで、実質的な Checkpoint が作成されます。そのため、同期に失敗しても、すべてを再実行する必要はなく、重複する作業の量を控え目に抑えられます。また、同期のたびにすべてのデータをアップロードする必要がなくなるため、データセットの同期も速くなります。
APPEND 同期を設定するAPPEND トランザクションを正常に実行するには、追加の設定が必要です。
デフォルトでは、Foundry に同期されるファイルは絞り込まれません。ただし、APPEND 同期では、同じファイルがインポートされるのを防ぐためにフィルターが必要です。1回の同期で Foundry にインポートされるファイル数を制御するには、すでに同期されたファイルを除外とファイル数を制限のフィルターを使用することを推奨します。最後に、ソースシステムの最新の状態を維持するために、同期をスケジュールします。