バージョン付レイヤーにデータを公開します

以前のデータ更新の履歴を保存してアクセスする必要がある場合は、バージョン付レイヤーにデータを公開します。 レイヤー間の整合性を保つには、 1 つのパブリケーションで複数のバージョン管理されたレイヤーに影響を与える更新をパブリッシュします。 すべてのレイヤーが更新され、パブリケーションがファイナライズされたときに、新しいカタログバージョンにアクセスできます。 いったんバージョンを公開すると、そのバージョンのデータを変更することはできず、カタログバージョン全体を削除することによってのみ削除できます。

バージョン付レイヤーにデータを公開するには、次の手順に従います。

  1. OlpClientSettings オブジェクトを作成します。

    手順については、「プラットフォームクライアント設定を作成する」を参照してください。

  2. VersionedLayerClient ステップ 1 で設定したレイヤーとプラットフォームクライアントを含むカタログの HERE リソースネーム ( HERE リソースネーム )を使用してオブジェクトを作成します。

    auto versioned_client = olp::dataservice::write::VersionedLayerClient(
    olp::client::HRN{kCatalogHRN}, client_settings);
    
  3. StartBatchRequest レイヤー ID を使用してオブジェクトを作成します。

    auto start_batch_request = StartBatchRequest().WithLayers(kLayer);
    
  4. StartBatchRequest メソッドを実行し、応答を待ちます。

    auto start_batch_response =
      versioned_client.StartBatch(start_batch_request).GetFuture().get();
    
  5. パラメーターを使用して、開始したバッチの詳細を取得 Publication します。

    auto get_batch_response =
      versioned_client.GetBatch(start_batch_response.GetResult())
          .GetFuture()
          .get();
    
  6. PublishPartitionDataRequest パブリッシュするデータ、レイヤー ID 、およびパーティション ID を使用してオブジェクトを作成します。

    auto publish_request =
        PublishPartitionDataRequest()
            .WithData(std::make_shared<std::vector<unsigned char>>(20, 0x30))
            .WithLayerId(kLayer)
            .WithPartitionId(kPartition);
    
  7. PublishToBatchPublication および PublishRequest パラメータを使用してメソッドを実行し、応答を待ちます。

    auto publish_to_batch_response =
        versioned_client
            .PublishToBatch(start_batch_response.GetResult(), publish_request)
            .GetFuture()
            .get();
    
  8. CompleteBatch パブリケーションの詳細情報を使用してメソッドを実行し、応答を待ちます。

    auto complete_batch_response =
        versioned_client->CompleteBatch(get_batch_response.GetResult())
            .GetFuture()
            .get();
    

PublishDataResponse このオブジェクトは、完了した操作の詳細を保持し、操作の成功および結果のデータへのアクセスを判断するために使用されます。

  • IsSuccessful() –操作が成功した場合は、を返し trueます。 それ以外の場合は、を返します false
  • GetResult()–操作が成功すると、次の結果データが返されます。 olp::dataservice::write::PublishDataResult
  • GetError()olp::client::ApiError オブジェクトのエラーの結果としてエラー情報が含まれます。
if (response.IsSuccessful()) {
    auto response_result = response.GetResult();
    // Handle success
} else {
    auto api_error = response.GetError();
    // Handle fail
}

」に一致する結果は 件です

    」に一致する結果はありません