分割された大規模ジョブの実行
Data Processing Engine でアクションを実行する際は、処理されるデータ量について考慮することが重要です
目的
アクションを Data Processing Engine で実行する際は、処理されるデータ量について考慮することが重要です。大量のデータの場合、ワーカーの最大コンピューティングパワーに達するリスクがあります。これらのアクションを処理できるようにするために、アクションの実行を複数の小さなタスクに分割することができます。この分割されたワークロードは、複数のワーカーの間で並行して共有できます。
セグメンテーションのオプションを使用すると、データワークロードの分割方法を指定できます。実行は複数のタスクに分割され、各タスクが一度に小さな値のセットを管理します。
セグメンテーションのオプションは、セグメンテーションを慎重に設定してください。セグメンテーションの選択に応じて、アクションが大幅に高速化される場合や、遅くなる場合があります。
データソースとアクションの種類に応じて、プラットフォーム内で利用可能なセグメンテーションモードは複数あります。
1. ワークフローの日付範囲に基づく
ソースデータに日付属性が含まれている場合、アクションを個別のプロセスに分割し、各プロセスが特定の日付または日付のグループ(バケット)を個別に処理できるようにすることができます。この場合、各タスクは抽出する必要がある日付にフィルターを適用します。
互換性
このセグメンテーションオプションは、次のアクションとソースのみと互換性があります。
バケットサイズ
ソースに大量の日付が含まれている場合、多くの小さなタスクが生成され、アクションの実行時間に特に有益ではない可能性があります。これは、ミリ秒単位の時間情報を記録できるdatetime型の属性を扱う場合に特に一般的です。
多くのタスクを生成しないようにするには、「バケットサイズ」オプションを使用して、各タスクが一度に複数の日付を管理できるようにできます。バケットのサイズを設定して、タスクが一度に管理する日付の数を決定します。デフォルトの「バケットサイズ」値は1です。
- バケットサイズを設定しない場合、各タスクは1つの日付を処理します。
- バケットサイズを2に設定した場合、各タスクは2つの日付を処理します。
- バケットサイズを10に設定した場合、各タスクは10つの日付を処理します。
- そして、そういった具合です。
「バケットサイズ」がどのようなものかまだ不明な場合は、バケットサイズのリファレンスでさらに詳しく調べてください。
設定
このセグメンテーションオプションを設定するには、「セグメンテーションの種類」のドロップダウンから ワークフローの日付範囲に基づく を選択し、属性を選択します。
エキスパートモードインターフェースを使用している場合は、アクションのJSON設定に次のフィールドを追加する必要があります。
この種類のセグメンテーションについてさらに詳しく知るチュートリアルシリーズ 👩🏫
2. プロジェクトテーブルの属性に基づく
このオプションを使用すると、データモデルの与えられたテーブル(通常は参照テーブル)の列に含まれる値のリストを使用してアクションをセグメント化できます。例えば、次のケースを考えてみましょう。ソーステーブル「orders」から「aggr_date」の宛先テーブルにデータを読み込むアクションのセグメンテーションオプションを設定しようとしています。
例えば、「orders」の日付「date_order」ごとに「income」データを集約したいとします。例えば、「tmp_date」テーブルは、注文が行われたことがあるすべての日付の参照テーブルとして機能し、例えば、2019-01-01から2019-01-03までの日付のリストを含むとします。
このセグメンテーションモードを有効にすると、アクションを含むメインステージの前に自動的にプレステージが生成され、アクションを個別のタスクに分割するために利用可能な日付の一意のリストをリストします。下の図に示すように、アクションを個別のタスクに分割するために利用可能な日付の一意のリストをリストします。
このようにして、ソーステーブル「orders」のデータは、宛先テーブル「aggr_date」に1日ずつ読み込まれます。
互換性
このセグメンテーションオプションは、次のアクションとソースのみと互換性があります。
バケットサイズ
セグメンテーションに使用される属性内に大量の一意の値が含まれている場合、多くの小さなタスクが生成され、アクションの実行時間に特に有益ではない可能性があります。
多くのタスクを生成しないようにするには、「バケットサイズ」オプションを使用して、各タスクが一度にセグメンテーション属性の複数の値を管理できるようにできます。バケットのサイズを設定して、タスクが一度に管理する値の数を決定します。デフォルトの「バケットサイズ」値は1です。
- バケットサイズを設定しない場合、各タスクは1つの値を処理します。
- バケットサイズを2に設定した場合、各タスクは2つの値を処理します。
- バケットサイズを10に設定した場合、各タスクは10つの値を処理します。
- そして、そういった具合です。
「バケットサイズ」がどのようなものかまだ不明な場合は、バケットサイズのリファレンスでさらに詳しく調べてください。
設定
このセグメンテーションオプションを設定するには、「セグメンテーションの種類」のドロップダウンから プロジェクトテーブルの属性に基づく を選択します。
エキスパートモードインターフェースを使用している場合は、アクションのJSON設定に次のフィールドを追加する必要があります。
この種類のセグメンテーションについてさらに詳しく知るチュートリアルシリーズ 👩🏫
3. 事前定義されたセットに基づく
このモードを使用して、セグメンテーション基準としてハードコードされた値のセットを使用します。そのためには、セグメンテーションを適用するソーステーブルの列を選択し、値のセットを手動で入力する必要があります。各入力された値ごとにタスクが生成されます(バケットサイズが1に設定された場合)。
互換性
このセグメンテーションオプションは、次のアクションとソースのみと互換性があります。
バケットサイズ
ソース内のセグメンテーションに使用される属性内に多くのユニークな値が含まれている場合、多くの小さなタスクが生成され、アクション実行時間に特に有益ではない可能性があります。
多くのタスクを生成しないようにするには、「バケットサイズ」オプションを使用して、各タスクがセグメンテーション属性の複数の値を一度に処理できるようにします。バケットのサイズを設定して、一度に処理したい値の数を決定します。バケットサイズのデフォルト値は1です。
- バケットサイズを設定しない場合、各タスクは1つの値を処理します。
- バケットサイズを2に設定した場合、各タスクは2つの値を処理します。
- バケットサイズを10に設定した場合、各タスクは10つの値を処理します。
- そして、そういった具合です。
「バケットサイズ」が何をするのかまだ不明な場合は、バケットサイズリファレンスでさらに詳しく知ることができます。
構成
このセグメンテーションオプションを構成するには、「セグメンテーションタイプ」ドロップダウンで事前定義されたセットに基づくを選択します。
エキスパートモードインターフェースを使用している場合は、アクションJSON構成に次のフィールドを追加する必要があります。
この種類のセグメンテーションについてさらに学ぶためのチュートリアルシリーズ 👩🏫
4. 固定行数に基づく
このセグメンテーションモードを使用すると、バケットサイズ変数で定義された固定行数を使用して、ソースからのデータの読み込みを分割できます。
各タスクは「バケットサイズ」に等しい特定の行数を処理します。
- バケットサイズが1000に設定されている場合、各タスクは1000行を抽出します。
- バケットサイズが50000に設定されている場合、各タスクは50000行を抽出します。
- など…
互換性
このセグメンテーションオプションは、次のアクションとソースのみと互換性があります。
構成
このセグメンテーションオプションを構成するには、「セグメンテーションタイプ」ドロップダウンで固定行数に基づくを選択します。
エキスパートモードインターフェースを使用している場合は、アクションJSON構成に次のフィールドを追加する必要があります。
このセグメンテーションタイプは、SQLServer、PostgreSQLなどのデータベースソースで使用できます。ただし、この場合、プロジェクトがテーブルのすべての属性へのアクセス権を付与されていることを確認してください。そうしないと、アクションをセグメント化しようとした際に権限不足のためにSELECTクエリが拒否される可能性があります。
この種類のセグメンテーションについてさらに学ぶためのチュートリアルシリーズ 👩🏫
5. ソースのアカウントに基づく
sourcesのようなユーザーアカウント固有のソースでは、Connectors内で同じソースに対して複数のアカウントを構成できます。その後、これらのアカウントを利用して、そのソースを使用するDPEアクションを複数のタスクに分割できます。各タスクは1つまたは複数のアカウントからデータを取得します。
互換性
このセグメンテーションオプションは、次のアクションとソースのみと互換性があります。
バケットサイズ
ソース内に多くのアカウントが含まれている場合、多くの小さなタスクが生成され、アクション実行時間に特に有益ではない可能性があります。
多くのタスクを生成しないようにするには、「バケットサイズ」オプションを使用して、各タスクが一度に複数のアカウントを処理できるようにします。バケットのサイズを設定して、一度に処理したいアカウントの数を決定します。バケットサイズのデフォルト値は1です。
- バケットサイズを設定しない場合、各タスクは1つのアカウントを処理します。
- バケットサイズを2に設定した場合、各タスクは2つのアカウントを処理します。
- バケットサイズを10に設定した場合、各タスクは10つのアカウントを処理します。
- そして、そういった具合です。
「バケットサイズ」が何をするのかまだ不明な場合は、バケットサイズリファレンスでさらに詳しく知ることができます。
構成
このセグメンテーションオプションを構成するには、「セグメンテーションタイプ」ドロップダウンでワークフローの日付範囲に基づくを選択します。
エキスパートモードインターフェースを使用している場合は、アクションJSON構成に次のフィールドを追加する必要があります。
この種類のセグメンテーションについてさらに学ぶためのチュートリアルシリーズ 👩🏫
6. ファイルに基づく
同じ構造を持つソースのリモートソースフォルダでは、このセグメンテーションモードを使用すると、DPEがフォルダ内のすべてのファイルを自動的に見つけ、特定のファイル数を持つタスクを作成できます。各ファイルの「load_from.source」アクションでソースファイルを置き換えます。
互換性
このセグメンテーションオプションは、次のアクションとソースのみと互換性があります。
バケットサイズ
ソース内に多くのファイルが含まれている場合、多くの小さなタスクが生成され、アクション実行時間に特に有益ではない可能性があります。
多くのタスクを生成しないようにするには、「バケットサイズ」オプションを使用して、各タスクが一度に複数のファイルを処理できるようにします。バケットのサイズを設定して、一度に処理したいアカウントの数を決定します。バケットサイズのデフォルト値は1です。
- バケットサイズを設定しない場合、各タスクは1つのファイルを処理します。
- バケットサイズを2に設定した場合、各タスクは2つのファイルを処理します。
- バケットサイズを10に設定した場合、各タスクは10つのファイルを処理します。
- そして、そういった具合です。
「バケットサイズ」が何をするのかまだ不明な場合は、バケットサイズリファレンスでさらに詳しく知ることができます。
構成
このセグメンテーションオプションを構成するには、「セグメンテーションタイプ」ドロップダウンでファイルに基づくを選択します。
エキスパートモードインターフェースを使用している場合は、アクションJSON構成に次のフィールドを追加する必要があります。
この種類のセグメンテーションについてさらに学ぶためのチュートリアルシリーズ 👩🏫
7. 自動セグメンテーション
このオプションを使用すると、セグメンテーション設定の構成を心配する必要はありません。自動的に構成されます。残念ながら、このオプションはすべてのデータソースまたはすべてのアクションタイプで利用可能ではありません。
以下に、サポートされているアクションのサポートされているデータソースのリストおよびジョブに設定するワーカーの数についての説明を示します。
テーブルからファイルへのアクションでサポートされているデータソース
- PostgreSQL: ワーカーの最大数は制限されていません。
ロードアクションでサポートされているデータソース
- Apache Kafka: トピックパーティションごとに最大1つのワーカー。
自動セグメンテーションを有効にするには、インスタンスの数を増やす必要があります。 インスタンスを増やして、許可されるワーカーの最大数に合わせることができます。 例えば、ロードアクションのKafkaトピックに3つのパーティションがある場合、そのアクションには最大3つのワーカーを設定できます。 3つより少ないインスタンスを設定した場合、例えば2つの場合、ワーカーの1つが2つのパーティションを処理します。 これはリソース構成で設定され、コンピューティングパワーを水平にスケーリングすることで、インスタンスの数を増やすことができます。
DPEアクションのセグメンテーションおよびペリメーターオプションについての追加情報は、DPEアクション設定の追加リマーク記事を参照してください。 セグメンテーションとペリメーター用語
さらに詳しく
当社のソリューションを実装するためのトレーニングや技術支援が必要な場合は、営業担当者にお問い合わせください、またはこのリンクをクリックして見積もりを依頼し、当社のプロフェッショナルサービスの専門家にプロジェクトのカスタム分析を依頼してください。
専用DiscordチャネルでData Platformを構築するチームと直接質問し、フィードバックを共有し、交流してください。
OVHcloudサービスについてサポートが必要な場合は、ヘルプセンターでリクエストを作成してください。
ユーザーコミュニティに参加してください。
1: S3はAmazon Technologies, Inc.の商標です。OVHcloudのサービスは、Amazon Technologies, Inc.によってスポンサーされ、推奨され、またはその他の方法で提携しているものではありません。




