Delta Lake に対する GDPR と CCPA のコンプライアンス

この記事では、Delta Lake on Azure Databricks を使用して、Data Lake の一般データ保護規則 (GDPR) およびリフォルニア州消費者プライバシー法 (CCPA) のコンプライアンスを管理する方法について説明します。 多くの場合、コンプライアンスには、"ポイントの削除"や、大量のデータ コレクション内にある個々のレコードの削除が必要です。 Delta Lake を使用すると、ACID トランザクションで大規模なデータ レイク内でのポイントの削除が高速化され、個人を特定できる情報 (PII) をコンシューマーの GDPR または CCPA 要求に応じて見つけて削除できるようになります。

コンプライアンスに向けてデータ モデルを計画する

コンプライアンスに向けてデータをモデル化することは、PII の処理における重要なステップです。 データ コンシューマーのニーズに応じた数多くの実行可能なアプローチがあります。

頻繁に適用されるアプローチの 1 つには、"仮名化" や、外部では識別できないキー ("仮名") への個人情報要素 ("識別子") のトークン化 (元に戻すことが可能) があります。 仮名化を使用したコンプライアンスの場合は、次のような慎重な計画が必要です。

  • 識別子でなく仮名にリンクする方法での情報の格納。
  • 識別子と仮名を組み合わせたデータへのアクセスと使用に関する厳格なポリシーの維持。
  • 生データを削除するためのパイプライン ポリシーまたはストレージ ポリシー。
  • 仮名と識別子の間のリンケージを見つけて削除するロジック。

Delta Lake でポイントの削除を簡略化する方法

Delta Lake には、データのスキップという最適化が組み込まれています。 ポイントの削除を高速化するために、Databricks では、DELETE 操作中に使用するフィールドに対して Z オーダーを使用することを推奨しています。

Delta Lake はテーブル履歴を保持し、ポイントインタイムのクエリとロールバックに使用できるようにします。 VACUUM 関数は、Delta テーブルで参照されなくなったり、指定した保持期間のしきい値より古くなったりしているデータ ファイルを削除してデータを完全に削除します。 既定値と推奨事項の詳細については、「Delta Lake テーブル履歴の処理」を参照してください。

Note

削除ベクトルが有効になっているテーブルの場合は、REORG TABLE ... APPLY (PURGE) も実行して基になるレコードを完全に削除する必要があります。 「Parquet データ ファイルに変更を適用する」をご覧ください。