システム制限
このトピックでは、StarRocks を使用する際に適用されるルールと制限について説明します。
-
StarRocks は通信に MySQL プロトコルを使用します。MySQL クライアントまたは JDBC を介して StarRocks クラスターに接続できます。バージョン 5.1 以降の MySQL クライアントを使用することを推奨します。5.1 より前のバージョンは、16 文字を超えるユーザー名をサポートしていません。
-
カタログ、データベース、テーブル、ビュー、非同期マテリアライズドビュー、パーティション、カラム、インデックス、ユーザー名、ロール、リポジトリ、リソース、ストレージボリューム、パイプなどのオブジェクトの命名規則:
- 名前は数字 (0-9)、文字 (a-z または A-Z)、アンダースコア (
_) のみで構成できます。ユーザー名はすべて数字でも構いません。 - 名前は文字またはアンダースコア (
_) で始めることができます。 - 名前は 64 文字を超えることはできません。その中で:
- データベース名は 256 文字を超えることはできません。
- テーブル名とカラム名は 1024 文字を超えることはできません。
- ユーザー名は 128 文字を超えることはできません。
- カラム名(カラムエイリアス)、パーティション名、インデックス名は大文字と小文字を区別しません。その他の名前は大文字と小文字を区別します。
- 名前は数字 (0-9)、文字 (a-z または A-Z)、アンダースコア (
-
FE 設定項目
enable_table_name_case_insensitive(v4.0 以降でサポート)は、カタログ名、データベース名、テーブル名、ビュー名、および非同期マテリアライズドビュー名が大文字小文字を区別しないかどうかを制御します。この機能はデフォルトで無効であり(これらの名前は大文字小文字を区別します)、クラスターを作成する際にのみ有効にできます。警告明確かつ十分に理解された理由がない限り、この機能は無効のままにすることを強く推奨します。
有効にすると、StarRocks は対象の名前を小文字で保存し、クエリと書き込み(DDL/DML)の処理段階で、すべてのカタログ名、データベース名、テーブル名、ビュー名、およびマテリアライズドビュー名を強制的に小文字に変換します。これにより、次の影響が生じます。
- 外部テーブルおよび External Catalog が広範囲にわたって使用できなくなる可能性があります。 External Catalog サービスによって、命名規則や大文字小文字の区別に関する規約は異なります。外部スキーマ、データベース、またはテーブルの名前が小文字でない場合、StarRocks は名前を Connector に渡す前に SQL 内の名前を小文字に変換するため、データソースに存在しない名前を検索することになり、クエリは "not found" エラーで失敗します。
- クラスター作成後は変更できません。 クラスター起動後、この設定項目の値はどのような手段でも変更できません。変更しようとするとエラーが発生し、FE は、この設定項目の値がクラスターが最初に起動された際の値と一致しない場合、起動に失敗します。
すべてのオブジェクト名(アクセス予定のすべての外部データソース内の名前を含む)がすでに小文字であることを確信できる場合にのみ、新しいクラスターでこの機能を有効にしてください。
-
ラベルの命名規則: データをロードする際にジョブのラベルを指定できます。ラベル名は数字 (0-9)、文字 (a-z または A-Z)、アンダースコア (
_) で構成でき、128 文字を超えることはできません。ラベル名は文字またはアンダースコア (_) で始めることができます。 -
テーブルを作成する際、キー列は FLOAT または DOUBLE 型にすることはできません。DECIMAL 型を使用して小数を表現できます。
-
VARCHAR 値の最大長はバージョンによって異なります:
- StarRocks 2.1 より前のバージョンでは、長さは 1 から 65533 バイトの範囲です。
- [プレビュー] StarRocks 2.1 以降のバージョンでは、長さは 1 から 1048576 バイトの範囲です。VARCHAR 値の最大長 = 最大行サイズ (1048578 バイト) - 長さプレフィックス (2 バイト)。長さプレフィックスは値のバイト数を示します。
- デフォルトの長さは 1 バイトです。
-
StarRocks は UTF-8 エンコーディングのみをサポートし、GBK はサポートしていません。
-
StarRocks は既存のテーブルのテーブルタイプを変更することをサポートしていません。例えば、重複キーテーブルを主キーテーブルに変更することはできません。新しいテーブルを作成する必要があります。
-
デフォルトでは、クエリは最大 10,000 のサブクエリでネストすることができ、これは FE パラメータ
expr_children_limitによって制御されます。