機械翻訳について

バッファを使用したデータのロード

関連するMaxL

複数の「Import Data (集約ストレージ)」文を使用してデータ値を集約ストレージ・データベースにロードする場合、最初に一時データ・ロード・バッファに値をロードし、すべてのデータ・ソースの読取り後にストレージへの最終書込みを行うことで、パフォーマンスを大幅に向上させることができます。

データ・ロード・バッファがメモリーに存在している間は、集計やマージ・スライスを作成できません。これらの操作はリソース集中型であるためです。 ただし、他のデータ・ロード・バッファにデータをロードし、データベースで問合せやその他の操作を実行できます。 完全なデータ・セットがデータベースにコミットされて集計が作成されるまで、問合せの待機が短い場合があります。

データ・ロード・バッファは、バッファの内容がデータベースにコミットされるか、アプリケーションが再起動されるまでメモリー内に存在し、そこでバッファが破棄されます。 コミット操作が失敗した場合でも、バッファは破棄され、データはデータベースにロードされません。

単一の集約ストレージ・データベースに複数のデータ・ロード・バッファが存在できます。 時間を節約するために、個別のMaxL Shellセッションを使用して、複数のデータ・ロード・バッファにデータを同時にロードできます。 データベースでアクティブにできるデータ・ロード・コミット操作は一度に1つのみですが、同じコミット操作で複数のデータ・ロード・バッファをコミットできます。これは、バッファを個別にコミットするよりも高速です。

集約ストレージ・データベースに存在するデータ・ロード・バッファのリストおよび説明をデータベースに問い合せることができます。 「集約ストレージ・データ・ロード・バッファの使用」を参照してください。

例:

例: 単一のデータ・ロード・バッファへの複数のデータ・ソースのロード

インポートする必要があるデータ・ファイルが3つあるとします。 集約ストレージ・データベースでは、すべてのデータ・ファイルが単一のインポート操作を使用してロードされる場合、データ・ロードが最も効率的です。 したがって、ロード・バッファは複数のデータ・ファイルをロードする場合に便利です。

  1. 「Alter Database (集約ストレージ)」を使用して、ロード・バッファを作成します。

    alter database ASOsamp.Sample
    initialize load_buffer with buffer_id 1;
  2. 「Import Data (集約ストレージ)」文を使用して、データをバッファにロードします。

    import database ASOsamp.Sample data
    from server data_file 'file_1'
    to load_buffer with buffer_id 1
    on error abort;
    
    import database ASOsamp.Sample data
    from server data_file 'file_2'
    to load_buffer with buffer_id 1
    on error abort;
    
    import database ASOsamp.Sample data
    from server data_file 'file_3'
    to load_buffer with buffer_id 1
    on error abort;
  3. バッファからデータベースにデータを移動します。

    import database ASOsamp.Sample data
    from load_buffer with buffer_id 1;

    データ・ロード・バッファは暗黙的に破棄されます。

  4. ステップ2で、file_2をロード・バッファにロードした後、データをロードしないことを決定したとします。 データはバッファにあり、まだデータベースにはないため、「Alter Database (集約ストレージ)」を使用するだけで、データをデータベースに移動せずにバッファを破棄できます。

    alter database ASOsamp.Sample
    destroy load_buffer with buffer_id 1;

例: 複数のデータ・ロードのパラレル実行

  1. あるMaxL Shellセッションで、IDが1のバッファにデータをロードします:

    alter database ASOsamp.Sample
    initialize load_buffer with buffer_id 1 resource_usage 0.5;
    import database ASOsamp.Sample data
    from data_file "dataload1.txt"
    to load_buffer with buffer_id 1
    on error abort;
  2. 同時に、別のMaxL Shellセッションで、IDが2のバッファにデータをロードします:

    alter database ASOsamp.Sample
    initialize load_buffer with buffer_id 2 resource_usage 0.5;
    import database ASOsamp.Sample data
    from data_file "dataload2.txt"
    to load_buffer with buffer_id 2
    on error abort;
  3. データがデータ・ロード・バッファに完全にロードされたら、次のいずれかのMaxL文を使用して、バッファIDのカンマ区切りリストを使用して両方のバッファの内容をデータベースにコミットします:

    import database ASOsamp.Sample data
    from load_buffer with buffer_id 1, 2;