0 / 0
資料の 英語版 に戻る
ジョブ・パフォーマンスの管理
最終更新: 2024年10月07日
ジョブ・パフォーマンスの管理

データをコピーしてマスクするマスキング・フローは、Spark を使用して実装できます。 ただし、Spark には、マスキング・フロー・ジョブのパフォーマンスに影響するさまざまな特性と制限があり、ジョブが失敗する可能性があります。

ジョブ障害の管理

マスキング・フロー・ジョブ中に、Spark はすべてのデータ・ソースをメモリーに読み込もうとする可能性があります。 そのため、マスキング・フロー・ジョブでは、メモリー不足状態が原因でエラーが発生する可能性があります。 デプロイされた最大の Spark 処理ノードに収まる最大データ・ボリュームは、約 12GBsです。 マスキング・フローがこのボリュームより多くのデータをコピーおよびマスクできるようにするには、Spark エンジンがデータをより小さいチャンクに分割できる必要があります。 Spark は、各チャンクを個別に、他のチャンクと並行して処理できます。

Parquet ファイルなど、Spark が自動的にデータを分割できるデータソースもあります。 ただし、現在、マスキング・フローによってサポートされているデータ・ソースがありません。

代替方法としては、マスキング・フローを作成する際にインデック・スカラムを指定し、Spark がデータを分割できるようにすることです。 現在サポートされていたリレーショナル・データ・ソースの場合、最初のステップは、データをほぼ等しい部分に分割する索引列を検索または作成することです。 次のステップでは、Spark が索引を使用する照会を作成できるように、索引に列名を提供します。 マスキング・フローは、Spark によって必要なその他のデータ (列の最小値と最大値、および使用するデータ・パーティションの数) を自動的に検出して提供します。

ベスト・プラクティス

最良の結果を得るには、パーティション列のデータを均等に配分する必要があります。 パーティション列の目的は、Spark が処理のためにデータをサイズ変更可能な部分に分割できるようにすることです。 例えば、10 TB のデータを 50 バケットで割った場合でも、各チャンクは 0.2 TB になります。 バケットの数が多いほど、処理は速くなります。

値が大きな範囲に均等に配分されるパーティション列を選択してください。 多くの場合、ID 列は適切な選択です。 例えば、Customers 表には、1.5 M の固有 ID を含む Customer_ID 列があります。 固有値が 50 個しかないため、状態列は良い例ではありません。

もっと見る

親トピック: マスキング・フロー・ジョブの実行