データテーブルのデータをリアルタイムで消費する場合は、CreateTunnel オペレーションを呼び出して、テーブルのトンネルを作成できます。1 つのデータテーブルに複数のトンネルを作成できます。トンネルを作成する際は、データテーブル名、トンネル名、およびトンネルタイプを指定する必要があります。
前提条件
TunnelClient インスタンスが初期化されている。
データテーブルが作成されている。詳細については、データテーブルの作成を参照してください。
パラメーター
リクエストパラメーター
パラメーター | 説明 |
TableName | データテーブルの名前。 |
TunnelName | トンネルの名前。 |
TunnelType | トンネルのタイプ。有効な値:
このパラメーターを Stream または BaseAndStream に設定すると、システムはトンネルの作成後にデータテーブルに書き込まれたデータを増分と見なします。特定の時点以降に生成された増分データを消費する場合は、増分データの startTime パラメーターを設定する必要があります。
|
レスポンスパラメーター
パラメーター | 説明 |
TunnelId | トンネルの ID。 |
ResponseInfo | リクエストで返されるその他のフィールド。 |
RequestId | リクエストの ID。 |
例
フルデータを消費するために使用するトンネルを作成する
次のサンプルコードは、BaseData タイプのトンネルを作成する方法の例を示しています。
// TunnelType.BaseData、TunnelType.Stream、または TunnelType.BaseAndStream タイプのトンネルを作成できます。
// この例では、BaseData タイプのトンネルが作成されます。他のタイプのトンネルを作成するには、CreateTunnelRequest の TunnelType パラメーターを必要なタイプに設定します。
private static void createTunnel(TunnelClient client, String tableName, String tunnelName) {
CreateTunnelRequest request = new CreateTunnelRequest(tableName, tunnelName, TunnelType.BaseData);
CreateTunnelResponse resp = client.createTunnel(request);
System.out.println("RequestId: " + resp.getRequestId());
System.out.println("TunnelId: " + resp.getTunnelId());
}
増分データまたは差分データを消費するために使用するトンネルを作成する
次のサンプルコードは、Stream または BaseAndStream タイプのトンネルを作成し、消費する増分データの時間範囲を指定する方法の例を示しています。
// 増分データまたは差分データを消費するために使用するトンネルを作成し、消費する増分データの時間範囲の開始タイムスタンプと終了タイムスタンプを指定します。StreamTunnelConfig で指定された設定は、BaseData タイプのトンネルには適用されません。
private static void createStreamTunnelByOffset(TunnelClient client,String tableName,String tunnelName, long startTime, long endTime){
CreateTunnelRequest createTunnelRequest = new CreateTunnelRequest(tableName,tunnelName, TunnelType.Stream);// Stream タイプのトンネルを作成します。
//CreateTunnelRequest createTunnelRequest = new CreateTunnelRequest(tableName,tunnelName, TunnelType.BaseAndStream);// BaseAndStream タイプのトンネルを作成します。
StreamTunnelConfig streamTunnelConfig = new StreamTunnelConfig();
/*
増分データを読み取る開始タイムスタンプと終了タイムスタンプを指定します。単位: ミリ秒。有効な値: [CurrentSystemTime - StreamExpiration + 5 分、CurrentSystemTime)。
CurrentSystemTime は、ミリ秒単位で正確な現在のシステム時刻のタイムスタンプです。StreamExpiration は、ミリ秒単位で正確な増分ログの有効期間のタイムスタンプです。増分ログの最長有効期間は 7 日間です。データテーブルの Stream を有効にする際に、ストリームの有効期間を指定できます。
endTime の値は、startTime の値よりも大きい必要があります。
*/
streamTunnelConfig.setStartOffset(startTime);
streamTunnelConfig.setEndOffset(endTime);
createTunnelRequest.setStreamTunnelConfig(streamTunnelConfig);
CreateTunnelResponse resp = client.createTunnel(createTunnelRequest);
System.out.println("RequestId: " + resp.getRequestId());
System.out.println("TunnelId: " + resp.getTunnelId());
}
FAQ
関連情報
トンネルの作成を呼び出すことができる API オペレーションについては、CreateTunnel を参照してください。
トンネルサービスを使用してデータをすばやく消費する場合は、はじめにを参照してください。
テーブルのすべてのトンネルに関する情報を照会できます。詳細については、データテーブルのすべてのトンネルに関する情報の照会を参照してください。
トンネルに関する情報を照会できます。詳細については、トンネルに関する情報の照会を参照してください。
不要になったトンネルを削除できます。詳細については、トンネルの削除を参照してください。
トンネルサービスを使用してデータを移行できます。詳細については、Tablestore 内の 1 つのテーブルから別のテーブルへのデータの同期を参照してください。
Realtime Compute for Apache Flink は、トンネルサービスのトンネルをストリーミングデータのソースとして使用して、Tablestore データを計算および分析できます。詳細については、ワイドカラムモデルのチュートリアルおよびチュートリアル (時系列モデル)を参照してください。
トンネルサービスは無料です。ただし、トンネルを使用してデータを消費するときに生成される読み取りスループットについては課金されます。詳細については、課金概要を参照してください。