griddb / c_client

GridDB C Client
Apache License 2.0
87 stars 250 forks source link

時系列コンテナのTIMESTAMP型ロウキーの精度はミリ秒固定でしょうか。 #41

Closed cjy543731778 closed 2 days ago

cjy543731778 commented 2 days ago

お疲れ様です。

sampleのコードを参照して、時系列コンテナの作成でロウキー(第一カラムのTIMESTAMP型)の精度GS_TYPE_OPTION_TIME_MICROに指定してみたら、140009 | CC_UNSUPPORTED_KEY_TYPEエラーが出てきます。

ドキュメントを確認したが、時系列コンテナのロウキー(TIMESTAMP型)の精度に関する説明がなさそうです。 ミリ秒しか利用できないでしょうか。

環境: Ubuntu gcc version 9.4.0 GridDB server: V5.6 CE(Community Edition), GridDB C Client: v5.6.0

精度をミリ秒に設定して時系列コンテナの作成が成功したコード。

      GSContainerInfo info0 = GS_CONTAINER_INFO_INITIALIZER;
      GSColumnInfo columnInfo = GS_COLUMN_INFO_INITIALIZER;

      info0.type = GS_CONTAINER_TIME_SERIES;
      info0.rowKeyAssigned = GS_TRUE;
      columnInfo.name = "Timestamp";
      columnInfo.type = GS_TYPE_TIMESTAMP;
      columnInfo.options = GS_TYPE_OPTION_TIME_MILLI;
      columnInfoList[0] = columnInfo;

精度をマイクロ秒に設定して時系列コンテナの作成が失敗したコード。エラーNOは140009です。

      GSContainerInfo info0 = GS_CONTAINER_INFO_INITIALIZER;
      GSColumnInfo columnInfo = GS_COLUMN_INFO_INITIALIZER;

      info0.type = GS_CONTAINER_TIME_SERIES;
      info0.rowKeyAssigned = GS_TRUE;
      columnInfo.name = "Timestamp";
      columnInfo.type = GS_TYPE_TIMESTAMP;
      columnInfo.options = GS_TYPE_OPTION_TIME_MICRO; // マイクロ秒
      columnInfoList[0] = columnInfo;

ちなみに、GridDB Python API(SQL)ガイドのSQLで試したら、時系列コンテナのロウキー(TIMESTAMP型)の精度はマイクロ秒に設定できます。

knonomura commented 2 days ago

GridDBのご利用ありがとうございます。

ドキュメントの記載が不十分で申し訳ありません。

コメントのとおり、時系列コンテナのロウキー(TIMESTAMP型)の精度は ミリ秒固定となります。

TIMESTAMP型のロウキーにミリ秒以外の精度を利用したい場合は、 コレクションコンテナをご利用ください。

ちなみに、GridDB Python API(SQL)ガイドのSQLで試したら、 時系列コンテナのロウキー(TIMESTAMP型)の 精度はマイクロ秒に設定できます。

おそらく、以下に該当するカラムであるため、 マイクロ秒精度が設定できているのかもしれません。 ・時系列コンテナのロウキー以外のカラム ・コレクションコンテナのカラム

よろしくお願いいたします。

cjy543731778 commented 2 days ago

素早く返事していただきありがとうございます。