TimestreamDBClient是Timestream的客户端,您可以使用TimestreamDBClient进行建表、删表以及读写数据/时间线等操作。


初始化

其中时序数据是存储至数据表中,时间线是存储至元数据表(Meta表)中。数据表可以根据业务需求创建多个,但元数据表只能有一个。所有数据表的时间线元数据写入到同一个元数据表中,您通过TimestreamDBConfiguration配置元数据表的表名。 伴随数据的写入,后台默认不断更新时间线的lastUpdateTime,您可以通过设置TimestreamDBConfiguration中的dumpMeta来控制是否需要打开后台更新时间线,以及设置intervalDumpMeta来控制时间线更新的频率。

示例代码

  1. 使用默认Writer配置创建TimestreamDBClient。
    AsyncClient asyncClient = new AsyncClient(endpoint, accessKeyId, accessKeySecret, instance);
    // 设置元数据表的表名
    TimestreamDBConfiguration conf = new TimestreamDBConfiguration("metaTableName");
    // 设置后台更新时间线的最大间隔
    conf.setIntervalDumpMeta(10, TimeUnit.MINUTES);
    TimestreamDBClient db = new TimestreamDBClient(asyncClient, conf);
  2. 使用自定义Writer配置创建TimestreamDBClient。
    // 自定义TableStoreWriter callback实现
    class DefaultCallback implements TableStoreCallback<RowChange, ConsumedCapacity> {
      private AtomicLong succeedCount = new AtomicLong();
      private AtomicLong failedCount = new AtomicLong();
    
      public void onCompleted(final RowChange req, final ConsumedCapacity res) {
        succeedCount.incrementAndGet();
      }
    
      public void onFailed(final RowChange req, final Exception ex) {
        System.out.println("Got error:" + ex.getMessage());
        dirtyLog.info(gson.toJson(req));
        failedCount.incrementAndGet();
      }
    }
    
    AsyncClient asyncClient = new AsyncClient(endpoint, accessKeyId, accessKeySecret, instance, clientConfiguration);
    // 设置元数据表的表名
    TimestreamDBConfiguration conf = new TimestreamDBConfiguration("metaTableName");
    
    DefaultCallback callback = new DefaultCallback();
    
    //TableStoreWriter配置
    WriterConfig writerConfig = new WriterConfig();
    // 设置writer的buffer为4096行
    writerConfig.setBufferSize(4096);
    
    TimestreamDBClient db = new TimestreamDBClient(asyncClient, config, new WriterConfig(), callback);