Lindorm では、単純な SQL ステートメントを実行して、データのクエリ、分析、および管理を行うことができます。テーブルを作成する前に、Lindorm SQL でサポートされている基本的なデータ型とこれらのデータ型の制限について理解しておく必要があります。
適用されるエンジン
このトピックで説明されている基本データ型は、LindormTable、LindormTSDB、およびカラムナーストレージエンジンに適用できます。
サポートされている基本的なデータ型
データ型 | Java データ型 | 説明 |
BOOLEAN | java.lang.Boolean | このデータ型の値の長さは 1 バイトです。このデータ型はブール値を格納します。有効な値:true と false。 |
TINYINT | java.lang.Byte | このデータ型の値の長さは 1 バイトです。このデータ型は固定長の正確な数値を格納します。値の範囲は、値の長さと値が符号付きかどうかによって異なります。 |
SMALLINT | java.lang.Short | このデータ型の値の長さは 2 バイトです。このデータ型は固定長の正確な数値を格納します。値の範囲は、値の長さと値が符号付きかどうかによって異なります。 |
INTEGER | java.lang.Integer | このデータ型の値の長さは 4 バイトです。このデータ型は固定長の正確な数値を格納します。値の範囲は、値の長さと値が符号付きかどうかによって異なります。 |
BIGINT | java.lang.Long | このデータ型の値の長さは 8 バイトです。このデータ型は固定長の正確な数値を格納します。値の範囲は、値の長さと値が符号付きかどうかによって異なります。 |
FLOAT | java.lang.Float | このデータ型の値の長さは 4 バイトです。このデータ型は固定長の近似数値を格納します。値の範囲と精度は、値の長さ、精度とスケールのパラメーター、および値が符号付きかどうかによって異なります。 |
DOUBLE | java.lang.Double | このデータ型の値の長さは 8 バイトです。このデータ型は固定長の近似数値を格納します。値の範囲と精度は、値の長さ、精度とスケールのパラメーター、および値が符号付きかどうかによって異なります。SQL ステートメントの DOUBLE データ型のすべての値は、科学表記法で表現する必要があります。 |
DECIMAL(precision, scale) | java.lang.BigDecimal | このデータ型は可変長のバイナリ値を格納します。このデータ型の値は10進表記で表現されます。このデータ型の値によって消費されるバイト数は、値の精度に伴って増加します。DECIMAL データ型は、支払金額など、高精度を必要とするデータを格納します。監視データなどの他のデータには、FLOAT または DOUBLE データ型を使用できます。DECIMAL データ型を定義する場合は、精度とスケールのパラメーターを指定する必要があります。
|
VARCHAR / CHAR(N) | java.lang.String | これらのデータ型の値は文字列です。漢字がサポートされています。
|
BINARY(N) | byte[] | このデータ型は固定長のバイナリ値を格納します。N はバイト数を指定します。この型の値を書き込むと、システムは固定長に一致するように値にバイトを追加するか、値からバイトを削除します。
|
VARBINARY | byte[] | このデータ型は可変長のバイナリ値を格納します。このデータ型の列が主キー列として使用される場合、その列は最後の主キー列である必要があります。 |
DATE | java.sql.Types#DATE | このデータ型は日付と時刻の型です。 ただし、システムは日付値のみを格納し、時刻値は格納しません。 これらの日付値は、タイムゾーン変換中にエラーが発生しやすいです。 このデータ型は使用しないことをお勧めします。 このデータ型の詳細については、「背景情報」をご参照ください。 |
TIME | java.sql.Types#TIME | このデータ型は時刻値を格納します。 このデータ型の詳細については、「背景情報」をご参照ください。 |
TIMESTAMP | java.sql.Types#TIMESTAMP | このデータ型はタイムスタンプ値を格納します。 このデータ型の詳細については、「背景情報」をご参照ください。 重要 TIMESTAMP データ型の最大値は、MySQL では |
サポートされているエンジン
次の表は、LindormTable、LindormTSDB、およびカラムナーストレージエンジンでサポートされている基本データ型を示しています。
〇 は、データ型がサポートされていることを示します。
✖️ は、データ型がサポートされていないことを示します。
データ型 | Java データ型 | LindormTable | LindormTSDB | カラムナーストレージエンジン |
BOOLEAN | java.lang.Boolean | 〇 | 〇 | 〇 |
TINYINT | java.lang.Byte | 〇 | ✖️ | 〇 |
SMALLINT | java.lang.Short | 〇 | ✖️ | 〇 |
INTEGER | java.lang.Integer | 〇 | ✖️ | 〇 |
BIGINT | java.lang.Long | 〇 | 〇 | 〇 |
FLOAT | java.lang.Float | 〇 | ✖️ | 〇 |
DOUBLE | java.lang.Double | 〇 | 〇 | 〇 |
DECIMAL(precision, scale) | java.lang.BigDecimal | 〇 | ✖️ | 〇 |
VARCHAR / CHAR(N) | java.lang.String | 〇 | 〇 | 〇 |
BINARY(N) | byte[] | 〇 | ✖️ | 〇 |
VARBINARY | byte[] | 〇 | ✖️ | 〇 |
DATE | java.sql.Types#DATE | 〇 | ✖️ | 〇 |
TIME | java.sql.Types#TIME | 〇 | ✖️ | ✖️ |
TIMESTAMP | java.sql.Types#TIMESTAMP | 〇 | 〇 | 〇 |
サポートされているインデックス
クエリを高速化するために、LindormTable の生データに セカンダリインデックス、検索インデックス、または カラムナーインデックス を作成できます。
次の表は、セカンダリインデックス、検索インデックス、またはカラムナーインデックスでサポートされている基本データ型を示しています。
〇 は、データ型がサポートされていることを示します。
✖️ は、データ型がサポートされていないことを示します。
データ型 | Java データ型 | セカンダリインデックス | 検索インデックス | カラムナーインデックス |
BOOLEAN | java.lang.Boolean | 〇 | 〇 | 〇 |
TINYINT | java.lang.Byte | 〇 | 〇 | 〇 |
SMALLINT | java.lang.Short | 〇 | 〇 | 〇 |
INTEGER | java.lang.Integer | 〇 | 〇 | 〇 |
BIGINT | java.lang.Long | 〇 | 〇 | 〇 |
FLOAT | java.lang.Float | 〇 | 〇 | 〇 |
DOUBLE | java.lang.Double | 〇 | 〇 | 〇 |
DECIMAL(precision, scale) | java.lang.BigDecimal | 〇 | ✖️ | 〇 |
VARCHAR / CHAR(N) | java.lang.String | 〇 | 〇 | 〇 |
BINARY(N) | byte[] | 〇 | 〇 | 〇 |
VARBINARY | byte[] | 〇 | 〇 | 〇 |
日付 | java.sql.Types#DATE | 〇 | ✖️ | 〇 |
時間 | java.sql.Types#TIME | 〇 | ✖️ | ✖️ |
タイムスタンプ | java.sql.Types#TIMESTAMP | 〇 | 〇 重要 LindormTable のバージョンは 2.6.5 以降である必要があります。 | 〇 |