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

Tablestore:初期化

最終更新日:Dec 28, 2024

タイムラインモデルを使用する場合は、TimelineStoreFactory、TimelineMetaStore、およびTimelineStoreを初期化する必要があります。このトピックでは、初期化の設定と操作の実行方法について説明します。

前提条件

  • AccessKeyペアが構成されていること。詳細については、AccessKeyペアの構成を参照してください。

TimelineStoreFactoryの初期化

SyncClientをパラメーターとして使用してTimelineStoreFactoryを初期化し、メタデータとタイムラインデータを管理するStoreを作成します。

エラーによる必要な再試行操作は、SyncClientの再試行ポリシーによって異なります。SyncClientを再試行操作用に構成できます。特別な要件がある場合は、RetryStrategy操作を呼び出してカスタム再試行ポリシーを指定できます。

/**
 * 再試行ポリシーを構成します。
 * コード:configuration.setRetryStrategy(new DefaultRetryStrategy());
 **/
ClientConfiguration configuration = new ClientConfiguration();

SyncClient client = new SyncClient(
        "http://instanceName.cn-shanghai.ots.aliyuncs.com",
        System.getenv("OTS_AK_ENV"),
        System.getenv("OTS_SK_ENV"),
        "instanceName", configuration);

TimelineStoreFactory serviceFactory = new TimelineStoreFactoryImpl(client);

TimelineMetaStoreの初期化

メタテーブルのスキーマを作成します。スキーマには、IdentifierやMetaIndexなどのパラメーターが含まれます。TimelineStoreFactoryを使用して、メタデータを管理するStoreを作成して取得します。メタテーブル名、インデックス名、プライマリキーフィールド、インデックスタイプなどのパラメーターを指定する必要があります。

TimelineIdentifierSchema idSchema = new TimelineIdentifierSchema.Builder()
        .addStringField("timeline_id").build();

IndexSchema metaIndex = new IndexSchema();
metaIndex.setFieldSchemas(Arrays.asList(// インデックスフィールドの名前とタイプを指定します。
        new FieldSchema("group_name", FieldType.TEXT).setIndex(true).setAnalyzer(FieldSchema.Analyzer.MaxWord),
        new FieldSchema("create_time", FieldType.LONG).setIndex(true)
));

TimelineMetaSchema metaSchema = new TimelineMetaSchema("groupMeta", idSchema)
        .withIndex("metaIndex", metaIndex); // インデックスを構成します。

TimelineMetaStore timelineMetaStore = serviceFactory.createMetaStore(metaSchema);
  • テーブルの作成

    metaSchemaのパラメーターに基づいてテーブルを作成します。metaSchemaでインデックスが構成されている場合、テーブルの作成後にインデックスが作成されます。

    timelineMetaStore.prepareTables();
  • テーブルの削除

    テーブルにインデックスが作成されている場合、テーブルの削除前にインデックスが削除されます。

    timelineMetaStore.dropAllTables();

TimelineStoreの初期化

タイムラインテーブルのスキーマを作成します。スキーマには、IdentifierやTimelineIndexなどのパラメーターが含まれます。TimelineStoreFactoryを使用して、タイムラインデータを管理するStoreを作成して取得します。タイムラインテーブル名、インデックス名、プライマリキーフィールド、インデックスタイプなどのパラメーターを指定する必要があります。

BatchStore操作は、TablestoreのDefaultTableStoreWriterに基づいて同時実行パフォーマンスを向上させます。スレッドプール内の同時実行スレッド数を設定できます。

TimelineIdentifierSchema idSchema = new TimelineIdentifierSchema.Builder()
        .addStringField("timeline_id").build();

IndexSchema timelineIndex = new IndexSchema();
timelineIndex.setFieldSchemas(Arrays.asList(// インデックスフィールドの名前とタイプを指定します。
        new FieldSchema("text", FieldType.TEXT).setIndex(true).setAnalyzer(FieldSchema.Analyzer.MaxWord),
        new FieldSchema("receivers", FieldType.KEYWORD).setIndex(true).setIsArray(true)
));

TimelineSchema timelineSchema = new TimelineSchema("timeline", idSchema)
        .autoGenerateSeqId() // SequenceId値を生成する方法として、自動インクリメントプライマリキー列を指定します。
        .setCallbackExecuteThreads(5) // DefaultTableStoreWriterの初期スレッド数を5に設定します。
        .withIndex("metaIndex", timelineIndex); // インデックスを構成します。

TimelineStore timelineStore = serviceFactory.createTimelineStore(timelineSchema);
  • テーブルの作成

    TimelineSchemaのパラメーターに基づいてテーブルを作成します。TimelineSchemaでインデックスが構成されている場合、テーブルの作成後にインデックスが作成されます。

    timelineStore.prepareTables();
  • テーブルの削除

    テーブルにインデックスが作成されている場合、テーブルの削除前にインデックスが削除されます。

    timelineStore.dropAllTables();