注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
設定されたポリシーを実行するために、すべてのデータセットがループ内で継続的に評価されます。データセットごとに、そのすべてのトランザクションに対して各ポリシーがテストされ、削除が必要なトランザクションが特定されます。環境内のデータセット数によっては、このループが完了するまでに数日かかる場合があります。
保持ポリシーは、トランザクション単位で削除対象を指定し、データセットの各ブランチを個別に評価します。デフォルトでは、どのブランチでも最新ビューは削除対象に指定されません。ビューはブランチの最初のトランザクションから始まります。その後の SNAPSHOT トランザクションで新しいビューが始まり、その SNAPSHOT 以降のすべてのトランザクションが新しい最新ビューに属します。ブランチでポリシーが実行され、トランザクションがそのブランチの最新ビューに含まれる場合、そのブランチでは削除対象に指定できません。
1つのトランザクションが複数のブランチに存在できるため、同じトランザクションが、あるブランチでは最新ビューに含まれ、別のブランチでは最新ビューの範囲外になることがあります。ブランチ xyz が T2 で abc から分岐する、次の履歴を考えてみます。
abc: T1 (APPEND) → T2 (APPEND) → T3 (SNAPSHOT) → T4 (APPEND)xyz: T1 (APPEND) → T2 (APPEND) → T5 (APPEND)ブランチ abc では、最新ビューが T3 から始まるため、T1 と T2 は最新ビューの範囲外となり、削除対象に指定できます。ブランチ xyz には SNAPSHOT がないため、最新ビューは T1 から始まり、すべてのトランザクションを含みます。このブランチでは T1 と T2 が保護されます。abc で実行される保持ポリシーは、同じトランザクションがまだ xyz の最新ビューに含まれているため、T1 や T2 を削除対象に指定しません。
保持ポリシーの詳細設定セクションで、最新のビューからの削除を許可するオプションを有効にすると、デフォルトの動作をオーバーライドできます。ただし、このオプションを有効にすると、現在も使用中のデータが削除される可能性があり、インクリメンタル(差分処理)ビルドに失敗する可能性があります。インクリメンタルパイプラインで Python トランスフォームを使用している場合は、保持に関連する削除によってスナップショット実行が開始されないように、@incremental() デコレーターに allow_retention=True パラメーターを設定する必要があります。
最新ビューのトランザクション削除フラグの設定について、詳しくはこちらをご覧ください。
複数のポリシーが同じトランザクションを選択する場合、最初に実行されたポリシーが該当するトランザクションを削除し、後続のポリシーはそれらを無視します。
ポリシーがトランザクションを削除すべきと判断すると、まず削除対象に指定されます。トランザクションを削除対象に指定すると、そのトランザクション内のデータがいつ削除されてもおかしくないことを示すため、そのデータは読み取るべきではありません。
削除対象に指定されたトランザクションは、データセットの履歴ページで特定のトランザクションを選択すると表示される「このトランザクションは削除が予定されています。」というメッセージで示されます。
削除対象に指定された時点から一定期間(通常は7日ですが、変わる場合があります)が経過すると、トランザクションはスイープされます。この時点で、トランザクション内のデータは削除され、復元できなくなります。
スイープされたトランザクションは、データセットの履歴ページでそのトランザクションを選択すると表示される「トランザクションのデータは削除されました。」というメッセージで示されます。
削除対象に指定されていても、まだスイープされていないトランザクションにはデータが残っているため、誤って指定された場合は、そのトランザクションの削除指定を解除できます。解除するには、まず、トランザクションを誤って削除対象に指定したポリシーを修正します。その後、7日以内に Palantir の担当者に連絡して、トランザクションの削除指定を解除するための支援を依頼してください。この期間を過ぎると、データは復元できなくなります。