すべてのプロダクト
Search
ドキュメントセンター

DataHub:API リファレンス

最終更新日:Jan 12, 2025

API リファレンス

I. API 仕様

1. 共通リクエストヘッダー

リクエストヘッダー

説明

x-datahub-client-version

API のバージョン番号。

x-datahub-security-token

セキュリティトークン(存在する場合)。

Date

リクエストが送信された時刻。標準 GMT 形式(EEE, dd MMM yyyy HH:mm:ss z)である必要があります。

Authorization

リクエストの署名文字列。

Content-Type

リクエストのデータシリアル化タイプ。

2. 共通レスポンスヘッダー

レスポンスヘッダー

説明

Content-Type

返されたメッセージのデータシリアル化タイプ。

Content-Length

メッセージ本文のサイズ。

x-datahub-request-id

リクエストのグローバル一意識別子(GUID)。

3. エラーコード

エラーコード

説明

備考

InvalidParameter

1 つ以上のパラメーターが無効なため、エラーコードが返されます。

InvalidCursor

カーソルが無効なため、エラーコードが返されます。

NoSuchXXX

リクエストされたリソースが存在しないため、エラーコードが返されます。

XXXAlreadyExist

リクエストされたリソースが既に存在するため、エラーコードが返されます。

Unauthorized

認証に失敗したため、エラーコードが返されます。

AccessKey ペアが無効であるか、リクエストのタイムスタンプがサーバーに記録されているタイムスタンプと一致しません。

NoPermission

操作を実行する権限がないため、エラーコードが返されます。

リクエストの開始に使用する Resource Access Management (RAM)ユーザーに関連する権限がありません。

OperationDenied

指定された操作が禁止されているため、エラーコードが返されます。

指定された操作は禁止されています。たとえば、1 つ以上のトピックを含むプロジェクトを削除することはできません。

LimitExceeded

トラフィックが 1 つ以上の定義済み制限を超えているため、エラーコードが返されます。

1 秒あたりのクエリ数(QPS)やトラフィック制限など、サーバーの制限を超えています。

InvalidShardOperation

シャードの分割またはマージ時にエラーが発生したため、エラーコードが返されます。

MalformedRecord

リクエストされたデータの形式が無効なため、エラーコードが返されます。

OffsetReseted

コンシューマーオフセットがリセットされたため、エラーコードが返されます。

OffsetSessionChanged

サブスクリプション ID が別のユーザーによって使用されているため、エラーコードが返されます。

SubscriptionOffline

サブスクリプションがキャンセルされたため、エラーコードが返されます。

InternalServerError

内部エラーが発生したため、エラーコードが返されます。

その他のエラーコード

その他の再試行不可のエラーコード。今後削除される可能性があります。

4. 統一エラーレスポンス形式

パラメーター

説明

ErrorCode

返されるエラーコード。

ErrorMessage

返されるエラーメッセージ。

エラーレスポンスの例:

    HTTP/1.1 403
    x-datahub-request-id: 2018050817492199d6650a00000039
    Content-Type: application/json
    Content-Length: xxx

    {
        "ErrorCode": "Unauthorized",
        "ErrorMessage": "Authroize failed" // 認証に失敗しました
    }

5. 制限

パラメーター

説明

ProjectName

プロジェクト名は 3 ~ 32 文字で、英字、数字、アンダースコア(_)のみ使用できます。英字で始める必要があります。大文字と小文字は区別されません。

TopicName

トピック名は 3 ~ 128 文字で、英字、数字、アンダースコア(_)のみ使用できます。英字で始める必要があります。大文字と小文字は区別されません。

II. Authorization ヘッダーの署名計算

Authorization = "DATAHUB " + AccessId + ":" + Signature
Signature = base64(hmac-sha1(AccessKey,
            HTTPMethod + "\n"
            + Content-Type + "\n"
            + Date + "\n"
            + CanonicalizedDataHubHeaders + "\n"
            + CanonicalizedResource))

  • AccessKey: 署名の計算に使用する AccessKey シークレット。

  • HTTPMethod: PUT、GET、POST、HEAD、DELETE などの HTTP リクエストのメソッド。

  • \n: 改行。

  • Content-Type: リクエストのデータシリアル化タイプ。ほとんどの場合、このパラメーターは application/json に設定されます。

  • Date: リクエストが送信された時刻(GMT)。たとえば、このパラメーターを Sun, 22 Nov 2015 08:16:38 GMT に設定できます。

  • CanonicalizedDataHubHeaders: x-datahub- のプレフィックスが付いた HTTP リクエストヘッダー。リクエストヘッダーはアルファベット順に並べられています。

  • CanonicalizedResource: リクエストされた DataHub リソースの URL。URL に 1 つ以上のパラメーターが含まれている場合、パラメーターはアルファベット順に並べる必要があります。

CanonicalizedDataHubHeaders 文字列の構築

x-datahub- のプレフィックスが付いたすべての HTTP リクエストヘッダーは、正規化 DataHub ヘッダー と呼ばれます。CanonicalizedDataHubHeaders 文字列を構築する手順を以下に示します。

  1. x-datahub- のプレフィックスが付いたすべての HTTP リクエストヘッダーの名前を小文字に変換します。たとえば、X-DATAHUB-Client-Version:1.1x-datahub-client-version:1.1 に変換します。

  2. Security Token Service (STS)から提供された AccessKey ペアを使用してリクエストが送信される場合は、返されたトークンを x-datahub-security-token:token の形式で署名文字列に追加します。

  3. 取得したすべての HTTP リクエストヘッダーをアルファベット順にソートします。

  4. リクエストヘッダーとその値の間のコロン(:)の両側のスペースをすべて削除します。たとえば、x-datahub-client-versionn : 1.1x-datahub-client-version:1.1 に変換します。

  5. リクエストヘッダーとその値のペアを、別のリクエストヘッダーとその値のペアと区切り文字(\n)で区切って、CanonicalizedDataHubHeaders 文字列を取得します。

CanonicalizedResource 文字列の構築

リクエストで指定された DataHub リソースは、正規化リソースと呼ばれます。CanonicalizedResource 文字列を構築する手順を以下に示します。

  1. CanonicalizedResource 文字列を空の文字列に設定します。

  2. アクセスする DataHub リソースの URL(/projects/<ProjectName>/topics/<TopicName> など)を入力します。

  3. URL に 1 つ以上のパラメーターが含まれている場合は、アルファベット順に並べ、アンパサンド(&)で区切ります。文字列の末尾に疑問符(?)とパラメーターを追加します。例:/projects/<ProjectName>/topics/<TopicName>/connectors/sink_odps?donetime

署名文字列の計算

  • 署名文字列は UTF-8 でエンコードする必要があります。中国語が含まれる署名文字列は UTF-8 でエンコードする必要があります。その後、エンコードされた署名文字列を AccessKey シークレットと共に使用して署名を計算します。

  • RFC 2104 で定義されている SHA1 アルゴリズムを使用して、署名のハッシュベースメッセージ認証コード(HMAC)値を計算します。AccessKey シークレットは、HMAC 計算のキーとして使用されます。

  • x-datahub- のプレフィックスが付いたヘッダーは、次の要件に準拠する必要があります。

  • ヘッダー名は小文字にする必要があります。

  • ヘッダーはアルファベット順にソートされます。

  • ヘッダー名と値の間のコロン(:)の両側にスペースを入れてはいけません。

  • 各ヘッダーの後には改行(\n)が続きます。ヘッダーを使用しない場合は、CanonicalizedDataHubHeaders 文字列を空の文字列に設定します。

リクエスト

署名文字列の計算式

署名文字列

POST /projects/test_project/topics/test_topic HTTP/1.1 Host: https://dh-cn-hangzhou.aliyuncs.com

User-Agent: customer x-datahub-client-version: 1.1 Content-Type: application/json Date: Thu, 10 Jan 2019 07:28:29 GMT

Signature = base64(hmac-sha1(AccessKey,HTTPMethod + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedDataHubHeaders+ CanonicalizedResource))

POST\napplication/json\nThu, 10 Jan 2019 07:28:29 GMT\nx-datahub-client-version:1.1\n/projects/test_project/topics/test_topic

Python で署名を計算する方法を次のコードに示します。

import base64
import hmac
import sha
h = hmac.new("****your accessKey*****", // ****ご使用の accessKey*****
"POST\napplication/json\nThu, 10 Jan 2019 07:28:29 GMT\nx-datahub-client-version:1.1\n/projects/test_project/topics/test_topic", sha)
Signature = base64.b64encode(h.digest())
print("Signature: %s" % Signature)

リクエストヘッダーの例:

Authorization ヘッダーの値は、DATAHUB AccessId:Signature 形式です。

POST /projects/test_project/topics/test_topic HTTP/1.1
Authorization: DATAHUB AccessId:Signature
Content-Type: application/json
Date: Thu, 10 Jan 2019 07:28:29 GMT
Host: http://dh-cn-hangzhou.aliyuncs.com
User-Agent: customer
x-datahub-client-version: 1.1

Java 8 で署名を計算する方法を次のコードに示します。

import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;

public abstract class Authorization {
    private static final String DEFAULT_ENCODING = "UTF-8";
    private static final String DEFAULT_HASH = "HmacSHA1";
    private static final String X_DATAHUB_PREFIX = "x-datahub";
    private static final String HEADER_CONTENT_TYPE = "Content-Type";
    private static final String HEADER_DATE = "Date";

    static public String getAkAuthorization(Request request) {
        String canonicalURL = request.getUrlPath();
        String canonicalQueryString = request.getQueryStrings();
        String canonicalHeaderString = getCanonicalHeaders(
                getSortedHeadersToSign(request.getHeaders()));

        String canonicalRequest = request.getMethod().toUpperCase() + "\n" +
                canonicalHeaderString + "\n" + canonicalURL;
        if (canonicalQueryString != null && !canonicalQueryString.isEmpty()) {
            canonicalRequest += "?" + canonicalQueryString;
        }

        String signature = HMAC1Sign(request.getAccessKey(), canonicalRequest);

        return "DATAHUB " + request.getAccessId() + ":" + signature;
    }

    static private String HMAC1Sign(String accessKey, String canonicalRequest) {
        try {
            SecretKeySpec signingKey = new SecretKeySpec(accessKey.getBytes(), DEFAULT_HASH);
            Mac mac = Mac.getInstance(DEFAULT_HASH);
            mac.init(signingKey);
            return Base64.getEncoder().encodeToString(
                    mac.doFinal(canonicalRequest.getBytes(DEFAULT_ENCODING))
            ).trim();
        } catch (Exception e) {
            throw new RuntimeException(e.getMessage(), e);
        }
    }

    static private String getCanonicalHeaders(Map<String, String> headers) {
        StringBuilder sb = new StringBuilder();
        Iterator<Map.Entry<String, String>> pairs = headers.entrySet().iterator();
        while (pairs.hasNext()) {
            Map.Entry<String, String> pair = pairs.next();
            if (pair.getKey().startsWith(X_DATAHUB_PREFIX)) {
                sb.append(pair.getKey());
                sb.append(":");
                sb.append(pair.getValue());
            } else {
                sb.append(pair.getValue());
            }

            if (pairs.hasNext()) {
                sb.append("\n");
            }
        }
        return sb.toString();
    }

    static private SortedMap<String, String> getSortedHeadersToSign(Map<String, String> headers) {
        SortedMap<String, String> sortedHeaders = new TreeMap<>();

        for (Map.Entry<String, String> entry : headers.entrySet()) {
            String lowerKey = entry.getKey().toLowerCase();
            if (lowerKey.equalsIgnoreCase(HEADER_CONTENT_TYPE) ||
                    lowerKey.equalsIgnoreCase(HEADER_DATE) ||
                    lowerKey.startsWith(X_DATAHUB_PREFIX)) {
                if (!entry.getValue().isEmpty()) {
                    sortedHeaders.put(lowerKey, entry.getValue());
                }
            }
        }

        if (!sortedHeaders.containsKey(HEADER_CONTENT_TYPE.toLowerCase())) {
            sortedHeaders.put(HEADER_CONTENT_TYPE.toLowerCase(), "");
        }

        return sortedHeaders;
    }

    // リクエストクラス
    public static class Request {
        private String accessId;
        private String accessKey;
        private String urlPath;
        private String method;
        private Map<String, String> headers;
        private String queryStrings;

        public String getAccessId() {
            return accessId;
        }

        public Request setAccessId(String accessId) {
            this.accessId = accessId;
            return this;
        }

        public String getAccessKey() {
            return accessKey;
        }

        public Request setAccessKey(String accessKey) {
            this.accessKey = accessKey;
            return this;
        }

        public String getUrlPath() {
            return urlPath;
        }

        public Request setUrlPath(String urlPath) {
            this.urlPath = urlPath;
            return this;
        }

        public String getMethod() {
            return method;
        }

        public Request setMethod(String method) {
            this.method = method;
            return this;
        }

        public Map<String, String> getHeaders() {
            return headers;
        }

        public Request setHeaders(Map<String, String> headers) {
            this.headers = headers;
            return this;
        }

        public String getQueryStrings() {
            return queryStrings;
        }

        public Request setQueryStrings(String queryStrings) {
            this.queryStrings = queryStrings;
            return this;
        }
    }

    public static void main(String[] args) {
        Map<String, String> headers = new HashMap<>();
        headers.put("Date", "Thu, 10 Jan 2019 07:28:29 GMT");
        headers.put("x-datahub-client-version", "1.1");
        headers.put("Content-type", "application/json");

        String accessId = "testKeyID"; // アクセス ID
        String accessKey = "testKeySecret"; // アクセスキーのシークレット
        String method = "POST";
        String path = "/projects/test_project/topics/test_topic";
        String canonicalQueryString = ""; // パラメーターはアルファベット順に並んでおり、アンパサンド(&)で区切られています。例:a=x&b=y

        Authorization.Request authRequest = new Authorization.Request()
                .setAccessId(accessId)
                .setAccessKey(accessKey)
                .setMethod(method.toUpperCase())
                .setUrlPath(path)
                .setHeaders(headers)
                .setQueryStrings(canonicalQueryString);
        System.out.println(Authorization.getAkAuthorization(authRequest));
    }
}

III. API 操作

プロジェクトの作成

リクエスト

リクエスト構文

  POST /projects/<ProjectName> HTTP/1.1

リクエストパラメーター

パラメーター

タイプ

説明

Comment

String

プロジェクトの説明。説明は 1,024 バイトを超えることはできません。

レスポンス

レスポンス構文

  HTTP/1.1 201 Created

リクエストの例

  POST /projects/<ProjectName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: application/json
  Content-Length: xxx

  {
      "Comment": "test project" // テストプロジェクト
  }

成功レスポンスの例

  HTTP/1.1 201 Created
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Length: 0

プロジェクト情報のクエリ

リクエスト

リクエスト構文

  GET /projects/<ProjectName> HTTP/1.1

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

CreateTime

long

プロジェクトが作成された時刻。単位:秒。

LastModifyTime

long

プロジェクトが最後に更新された時刻。単位:秒。

Comment

String

プロジェクトの説明。

リクエストの例

  GET /projects/<ProjectName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Content-Length: xxx

  {
      "Comment": "test project", // テストプロジェクト
      "CreateTime": 1525763481,
      "LastModifyTime": 1525763481
  }

プロジェクト情報のクエリ

リクエスト

リクエスト構文

  GET /projects HTTP/1.1

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

ProjectNames

List

プロジェクトの名前。

リクエストの例

  GET /projects HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
      "ProjectNames": [
          "project1",
          "projcet2"
      ]
  }

プロジェクトの更新

リクエスト

リクエスト構文

  PUT /projects/<ProjectName> HTTP/1.1

リクエストパラメーター

パラメーター

タイプ

説明

Comment

String

プロジェクトの説明。

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

リクエストの例

  PUT /projects/<ProjectName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: application/json
  Content-Length: xxx

  {
      "Comment": "update comment" // コメントを更新
  }

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Length: 0

プロジェクトの削除

リクエスト

リクエスト構文

  DELETE /projects/<ProjectName> HTTP/1.1

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

リクエストの例

  DELETE /projects/<ProjectName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Length: 0

トピックの作成

リクエスト

リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName> HTTP/1.1

リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を create に設定します。

ShardCount

int

初期シャード数。

Lifecycle

int

データの有効期間(TTL)。

RecordType

String

レコードタイプ。有効な値:BLOB および TUPLE。BLOB データ型は非構造化データストレージ用に設計されており、TUPLE データ型は構造化データストレージ用に設計されています。

RecordSchema

String

レコードスキーマ。RecordType パラメーターを TUPLE に設定する場合は、レコードスキーマを指定する必要があります。RecordType パラメーターを BLOB に設定する場合は、このパラメーターは不要です。

Comment

String

トピックの説明。

ExpandMode

String

拡張モード。拡張モードを有効にする場合は、このパラメーターを extend に設定します。それ以外の場合は、このパラメーターは不要です。

レスポンス

レスポンス構文

  HTTP/1.1 201 Created

リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: application/json
  Content-Length: xxx

  {
      "Action": "create",
      "ShardCount": 1,
      "Lifecycle": 1,
      "RecordType": "TUPLE",
      "RecordSchema": "{\"fields\":[{\"name\":\"field1\",\"type\":\"STRING\"},{\"name\":\"field2\",\"type\":\"BIGINT\"}]}}", // {"fields":[{"name":"field1","type":"STRING"},{"name":"field2","type":"BIGINT"}]}
      "Comment": "create topic", // トピックを作成
      "ExpandMode": "extend"
  }

成功レスポンスの例

  HTTP/1.1 201 Created
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Content-Length: 0

トピック情報のクエリ

リクエスト

リクエスト構文

  GET /projects/<ProjectName>/topics/<TopicName> HTTP/1.1

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

ShardCount

int

初期シャード数。

Lifecycle

int

データの TTL。

RecordType

String

レコードタイプ。有効な値:BLOB および TUPLE。BLOB データ型は非構造化データストレージ用に設計されており、TUPLE データ型は構造化データストレージ用に設計されています。

RecordSchema

String

レコードスキーマ。RecordType パラメーターを TUPLE に設定する場合は、レコードスキーマを指定する必要があります。RecordType パラメーターを BLOB に設定する場合は、このパラメーターは不要です。

Comment

String

トピックの説明。

CreateTime

long

トピックが作成された時刻。

LastModifyTime

long

トピックが最後に更新された時刻。

リクエストの例

  GET /projects/<ProjectName>/topics/<TopicName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

成功レスポンスの例

  HTTP/1.1 201 Created
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Content-Length: xxx

  {
      "ShardCount": 1,
      "Lifecycle": 1,
      "RecordType": "TUPLE",
      "RecordSchema": "{\"fields\":[{\"name\":\"field1\",\"type\":\"STRING\"},{\"name\":\"field2\",\"type\":\"BIGINT\"}]}", // {"fields":[{"name":"field1","type":"STRING"},{"name":"field2","type":"BIGINT"}]}
      "Comment": "create topic", // トピックを作成
      "CreateTime": 1525763481,
      "LastModifyTime": 1525763481
  }

トピック情報のクエリ

リクエスト

リクエスト構文

  GET /projects/<ProjectName>/topics HTTP/1.1

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

TopicNames

List

トピックの名前。

リクエストの例

  GET /projects/<ProjectNames>/topics HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
      "TopicNames": [
          "topic1",
          "topic2"
      ]
  }

トピックの更新

リクエスト

リクエスト構文

  PUT /projects/<ProjectName>/topics/<TopicName> HTTP/1.1

リクエストパラメーター

パラメーター

タイプ

説明

Comment

String

トピックの説明。

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

リクエストの例

  PUT /projects/<ProjectName>/topics/<TopicName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: application/json
  Content-Length: xxx
  
  {
          "Comment": "update comment" // コメントを更新
  }

トピックの削除

リクエスト

リクエスト構文

  DELETE /projects/<ProjectName>/topics/<TopicName> HTTP/1.1

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

リクエストの例

  DELETE /projects/<ProjectName>/topics/<TopicName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Length: 0

シャード情報のクエリ

リクエスト

リクエスト構文

  GET /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

ShardId

String

シャード ID。

State

String

シャードの状態。例:OPENING、ACTIVE、CLOSED。

BeginHashKey

String

ハッシュキー範囲の開始ハッシュキー。

EndHashKey

String

ハッシュキー範囲の終了ハッシュキー。

ParentShardIds

List

親シャードの情報。

リクエストの例

  GET /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
      "Shards": [
              {
                      "ShardId": "0",
                      "State": "ACTIVE",
                      "BeginHashKey":"00000000000000000000000000000000",
                      "EndHashKey":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
                      "ParentShardIds:[]
              }
      ]
  }

シャードの分割

リクエスト

リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を split に設定します。

ShardId

String

分割するシャードの ID。

SplitKey

String

シャードの分割に使用するキー。式:SplitKey = BeginHashKey + (EndHashKey - BeginHashKey)/2。

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

NewShards

List

新しいシャードの情報。

リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: application/json
  Content-Length: xxx
  
  {
          "Action": "split",
          "ShardId": "0",
          "SplitKye": "7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" // 分割キー
  }

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
          "NewShards": [
                  {
                          "ShardId": "1",
                          "BeginHashKey":"00000000000000000000000000000000",
                          "EndHashKey":"7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                  },
                  {
                          "ShardId":"0",
                          "BeginHashKey":"7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
                          "EndHashKey":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
                  }
          ]
  }

シャードのマージ

リクエスト

リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1

リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を merge に設定します。

ShardId

String

マージするシャードの ID。

AdjacentShardId

String

マージ操作の隣接シャードの ID。

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

ShardId

String

新しいシャードの ID。

BeginHashKey

String

ハッシュキー範囲の開始ハッシュキー。

EndHashKey

String

ハッシュキー範囲の終了ハッシュキー。

リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: application/json
  Content-Length: xxx
  
  {
          "Action": "merge",
          "ShardId": "0",
          "AdjacentShardId": "1"
  }

成功レスポンスの例

  HTTP/1.1 200 OK
        x-datahub-request-id: 2018050817492199d6650a00000039
        Content-Type: applicaton/json
        Conent-Length: xxx
        
        {
                "ShardId":"2",
                "BeginHashKey":"00000000000000000000000000000000",
                "EndHashKey":"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
        }

カーソルのクエリ

リクエスト

リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/shards/<ShardId> HTTP/1.1

リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を cursor に設定します。

Type

String

カーソルのクエリに使用するメソッド。有効な値:OLDEST、LATEST、SYSTEM_TIME、SEQUENCE。

SystemTime

Int64

カーソルのシステム時刻。Type パラメーターを SYSTEM_TIME に設定する場合は、このパラメーターを指定します。単位:ミリ秒。

Sequence

Int64

カーソルのシーケンス番号。Type パラメーターを SEQUENCE に設定する場合は、このパラメーターを指定します。

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

Cursor

String

カーソルの情報。

RecordTime

Int64

データが DataHub に書き込まれた時刻。単位:ミリ秒。

Sequence

Int64

データが書き込まれたシーケンス番号。シーケンス番号は、単一のシャード内で一意です。

リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/shards/<ShardId> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: application/json
  Content-Length: xxx
  
  {
          "Action": "cursor",
          "Type": "SEQUENCE",
          "Sequence": 1
  }

成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
          "Cursor": "30005af19b3800000000000000000000",
          "RecordTime": 1525783352873,
          "Sequence": 1
  }

シャードを指定せずにデータを書き込む

リクエスト

リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1

リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を pub に設定します。

ShardId

String

シャード ID。

Attributes

Map<String, String>

ユーザー属性。

Data

書き込むデータ。BLOB データ型の場合、値は Base64 エンコードされた文字列です。TUPLE データ型の場合、値は文字列の配列です。

レスポンス

レスポンス構文

  HTTP/1.1 200 OK

レスポンスパラメーター

パラメーター

タイプ

説明

FailedRecordCount

Int

失敗レコードの数。

FailedRecords

Array

失敗レコードの詳細情報。

リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
          "Action": "pub",
          "Records": [
                  {
                          "ShardId": "0",
                          "Attributes": {
                                  "attr1": "value1",
                                  "attr2": "value2"
                          },
                          "Data": ["A","B","3","4"]
                  }
          ]
  }

  // BLOB
  {
          "Action": "pub",
          "Record": [
                  {
                          "ShardId": "0",
                          "Attributes": {
                                  "attr1": "value1",
                                  "attr2": "value2"
                          },
                          "Data": "Base64String" // Base64 文字列
                  }
          ]
  }

  • 成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
      "FailedRecordCount": 1,
      "FailedRecords": [
                      {
                              "Index": 0,
                              "ErrorCode": "errorCode", // エラーコード
                              "ErrorMessage": "errormsg" // エラーメッセージ
                      }
      ]
  }

データの読み取り

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/shards/<ShardId> HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を sub に設定します。

Cursor

String

レコードの読み取りに使用する開始カーソル。

Limit

Int

一度に読み取るレコードの数。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • レスポンスパラメーター

パラメーター

タイプ

説明

NextCursor

String

次のレコードの読み取りに使用するカーソルの情報。

SystemTime

Int64

レコードが DataHub に書き込まれた時刻。単位:ミリ秒。

Cursor

String

レコードに対応するカーソルの情報。

Sequence

Int64

レコードが DataHub に書き込まれたシーケンス番号。

Attributes

Map

ユーザー属性。

Data

リクエストされたデータの情報。

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/shards HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "sub",
          "Cursor": "30005af19b3800000000000000000000",
          "Limit": 1
  }

  • 成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
      "NextCursor": "30005af19b3800000000000000090001",
      "Records": [
                      {
                              "Cursor": "30005af19b3800000000000000000000",
                              "SystemTime": 1525783352873,
                              "Sequence": 1,
                              "Attributes": {
                                      "key1": "value1",
                                      "key2": "value2"
                              },
                              "Data": ["AAA", "100"]
                      }
      ]
  }

フィールドの追加

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName> HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を appendfield に設定します。

FieldName

String

フィールド名。

FieldType

String

フィールドのデータ型。例:STRING および BIGINT。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "appendfield",
          "FieldName": "field1", // フィールド 1
          "FieldType": "BIGINT"
  }

コネクタの作成

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Type

String

コネクタのタイプ。例:SINK_ODPS。

ColumnFields

Array

同期するフィールド。

Config

Map

コネクタの構成。

レスポンス

  • レスポンス構文

  HTTP/1.1 201 Created

  • SINK_ODPS タイプのコネクタを作成するためのリクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/connectors/sink_odps HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Type": "SINK_ODPS",
          "ColumnFields": ["field1", "field2"], // ["field1", "field2"]
          "Config": {
                  "Project": "odpsProject", // ODPS プロジェクト
                  "Topic": "odpsTopic", // ODPS トピック
                  "OdpsEndpoint": "xxx", // ODPS エンドポイント
                  "TunnelEndpoint": "xxx", // トンネルエンドポイント
                  "AccessId": "xxx", // アクセス ID
                  "AccessKey": "xxx", // アクセスキー
                  "PartitionMode": "SYSTEM_TIME", // パーティションモード
                  "TimeRange": 60, // 時間範囲
                  "PartitionConfig": { // パーティション設定
                          "pt": "%Y%m%d", // 年月日
                          "ct": "%H%M" // 時分
                  }
          }
  }

コネクタ情報のクエリ

リクエスト

  • リクエスト構文

  GET /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

コネクタ情報のクエリ

リクエスト

  • リクエスト構文

  GET /projects/<ProjectName>/topics/<TopicName>/connectors HTTP/1.1

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • リクエストの例

  GET /projects/<ProjectName>/topics/<TopicName>/connectors HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

  • 成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
          "Connectors": [
                  "sink_odps", "sink_ads" // "sink_odps", "sink_ads"
          ]
  }

コネクタの削除

リクエスト

  • リクエスト構文

  DELETE /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

コネクタのリロード

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を reload に設定します。

ShardId

String

リロードするシャードの ID。このパラメーターを空のままにすると、コネクタによって指定されたすべてのシャードがリロードされます。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "reload"
  }

コネクタのシャード状態のクエリ

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を status に設定します。

ShardId

String

シャード ID。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • レスポンスパラメーター

パラメーター

タイプ

説明

CurrentSequence

Int64

コンシューマーオフセットのシーケンス番号。

State

Enum

シャードの状態。

LastErrorMessage

String

シャードの状態が CONTEXT_EXECUTING でない場合に返されるエラーメッセージ。

DiscardCount

Int64

コネクタの起動以降にドロップされたレコードの総数。

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "status",
          "ShardId": "0"
  }

  • 成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx

  {
          "State": "CONTEXT_EXECUTING", // コンテキスト実行中
          "CurrentSequence": 10,
          "DiscardCount": 0,
          "LastErrorMessage": "" // 最後のエラーメッセージ
  }

コネクタのフィールドの追加

リクエスト

  • リクエスト構文

POST /projects//topics//connectors/ HTTP/1.1
  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を appendfield に設定します。

FieldName

String

フィールド名。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/connectors/<ConnectorType> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "appendfiled", // フィールドを追加
          "FieldName": "field1" // フィールド 1
  }

サブスクリプションの作成

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を create に設定します。

Comment

String

サブスクリプションの説明。

レスポンス

  • レスポンス構文

  HTTP/1.1 201 Created

  • レスポンスパラメーター

パラメーター

タイプ

説明

SubId

String

サブスクリプション ID。

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "create",
          "Comment": "xxxx" // xxxx
  }

  • 成功レスポンスの例

  HTTP/1.1 200 OK
        x-datahub-request-id: 2018050817492199d6650a00000039
         Content-Type: applicaton/json
  Conent-Length: xxx

        {
          "SubId": "1542078393028fzsZx" // サブスクリプション ID
  }

サブスクリプション情報のクエリ

リクエスト

  • リクエスト構文

  GET /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId> HTTP/1.1

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • レスポンスパラメーター

パラメーター

タイプ

説明

SubId

String

サブスクリプション ID。

State

Int

サブスクリプションの状態。有効な値は 0 と 1 です。0 はサブスクリプションがオンラインであることを示し、1 はサブスクリプションがオフラインであることを示します。

Comment

String

サブスクリプションの説明。

  • リクエストの例

  GET /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

  • 成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "SubId": "xxxx", // サブスクリプション ID
          "Comment": "xxxx", // xxxx
          "State": 1
  }

サブスクリプション情報のクエリ

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を list に設定します。

PageIndex

Int

ページ番号。

PageSize

Int

1 ページあたりのエントリ数。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • レスポンスパラメーター

パラメーター

タイプ

説明

TotalCount

Int

返されるエントリの総数。

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "list",
          "PageIndex": 1,
          "PageSize": 10
  }

  • 成功レスポンスの例

  HTTP/1.1 200 OK
  x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Subscriptions": [
                  {
                           "Comment": "xxxx", // xxxx
                            "State": 1,
                            "SubId": "1542079169844gH8HM" // サブスクリプション ID
                  },
                  {
                          "Comment": "xxxx", // xxxx
                          "State": 1,
                          "SubId": "1542078393028fzsZx" // サブスクリプション ID
                  }
          ],
          "TotalCount": 2
  }

サブスクリプションの削除

リクエスト

  • リクエスト構文

  DELETE /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId> HTTP/1.1

  • リクエストの例

  DELETE /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString

サブスクリプション状態の更新

リクエスト

  • リクエスト構文

  PUT /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId> HTTP/1.1

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • リクエストの例

  PUT /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId> HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "State": 0 // 状態
  }

コンシューマーオフセットのセッションの作成

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId>/offsets HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を open に設定します。

ShardIds

Array

シャードの ID。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • レスポンスパラメーター

パラメーター

タイプ

説明

Timestamp

Int64

コンシューマーオフセットのタイムスタンプ。単位:ミリ秒。

Sequence

Int64

コンシューマーオフセットのシーケンス番号。

Version

Int64

セッションのバージョン。

SessionId

String

セッション ID。

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId>/offsets HTTP/1.1
  x-datahub-client-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "open",
          "ShardIds": ["0"]
  }

  • 成功レスポンスの例

  HTTP/1.1 200 OK
        x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Offsets": {
                  "0": {
                          "Timestamp": 1000,
                          "Sequence": 1,
                          "Version": 1,
                          "SessionId": "xxx" // セッション ID
                  }
          }
  }

コンシューマーオフセット情報のクエリ

リクエスト

  • リクエスト構文

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId>/offsets HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を get に設定します。

ShardIds

Array

シャードの ID。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • レスポンスパラメーター

パラメーター

タイプ

説明

Timestamp

Int64

コンシューマーオフセットのタイムスタンプ。単位:ミリ秒。

Sequence

Int64

コンシューマーオフセットのシーケンス番号。

Version

Int64

セッションのバージョン。

SessionId

String

セッション ID。

  • リクエストの例

  POST /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId>/offsets HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "get",
          "ShardIds": ["0"]
  }

  • 成功レスポンスの例

  HTTP/1.1 200 OK
        x-datahub-request-id: 2018050817492199d6650a00000039
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Offsets": {
                  "0": {
                          "Timestamp": 1000,
                          "Sequence": 1,
                          "Version": 1,
                          "SessionId": "xxx" // セッション ID
                  }
          }
  }

コンシューマーオフセットのコミット

リクエスト

  • リクエスト構文

  PUT /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId>/offsets HTTP/1.1

  • リクエストパラメーター

パラメーター

タイプ

説明

Action

String

実行する操作。値を commit に設定します。

Timestamp

Int64

コンシューマーオフセットのタイムスタンプ。単位:ミリ秒。

Sequence

Int64

コンシューマーオフセットのシーケンス番号。

Version

Int64

セッションのバージョン。

SessionId

Int64

セッション ID。

レスポンス

  • レスポンス構文

  HTTP/1.1 200 OK

  • リクエストの例

  PUT /projects/<ProjectName>/topics/<TopicName>/subscriptions/<SubId>/offsets HTTP/1.1
  x-datahub-client-version: 1.1
  Date: Tue, 08 May 2018 09:47:48 GMT
  Authorization: AuthorizationString
  Content-Type: applicaton/json
  Conent-Length: xxx
  
  {
          "Action": "commit",
          "Offsets": {
                  "0": {
                          "Timestamp": 1000,
                          "Sequence": 1,
                          "Version": 1,
                          "SessionId": 1 // セッション ID
                  }
          }
  }