メインコンテンツまでスキップ

Other FAQs

その他のFAQ

このトピックでは、一般的な質問に対する回答を提供します。

VARCHAR(32)とSTRINGは同じストレージスペースを占有しますか?

どちらも可変長データ型です。同じ長さのデータを格納する場合、VARCHAR(32)とSTRINGは同じストレージスペースを占有します。

VARCHAR(32)とSTRINGはデータクエリで同じパフォーマンスを発揮しますか?

はい。

OracleからインポートしたTXTファイルがUTF-8の文字セットに設定した後も文字化けが発生するのはなぜですか?

この問題を解決するには、次の手順を実行します。

  1. 例として、文字化けが発生しているテキストファイル「original」があるとします。このファイルの文字セットはISO-8859-1です。次のコードを実行して、ファイルの文字セットを取得します。

    file --mime-encoding origin.txt
    origin.txt: iso-8859-1
  2. iconvコマンドを実行して、このファイルの文字セットをUTF-8に変換します。

    iconv -f iso-8859-1 -t utf-8 origin.txt > origin_utf-8.txt
  3. 変換後、このファイルのテキストはまだ文字化けしています。そのため、このファイルの文字セットを再度GBKに変更し、文字セットを再度UTF-8に変換します。

    iconv -f gbk -t utf-8 origin.txt > origin_utf-8.txt

MySQLとStarRocksでSTRINGの長さは同じですか?

VARCHAR(n)の場合、StarRocksは「n」をバイト単位で定義し、MySQLは「n」を文字単位で定義します。UTF-8によると、1つの中国語の文字は3バイトと等価です。StarRocksとMySQLが同じ数値で「n」を定義する場合、MySQLはStarRocksと比べて3倍多くの文字を保存します。

テーブルのパーティションフィールドのデータ型として、FLOAT、DOUBLE、またはDECIMALを使用できますか?

いいえ、DATE、DATETIME、およびINTのみがサポートされています。

テーブル内のデータが占有するストレージスペースを確認するにはどうすればよいですか?

SHOW DATAステートメントを実行して、対応するストレージスペースを確認します。データのボリューム、コピー数、および行数も表示できます。

注意:データの統計情報にはタイムラグがあります。

StarRocksデータベースのクォータ増加をリクエストするにはどうすればよいですか?

クォータの増加をリクエストするには、次のコードを実行します。

ALTER DATABASE example_db SET DATA QUOTA 10T;

StarRocksはUPSERTステートメントを実行してテーブルの特定のフィールドを更新することをサポートしていますか?

StarRocks 2.2以降では、プライマリキーテーブルを使用してテーブルの特定のフィールドを更新することがサポートされています。StarRocks 1.9以降では、プライマリキーテーブルを使用してテーブル内のすべてのフィールドを更新することがサポートされています。詳細については、StarRocks 2.2のプライマリキーテーブルを参照してください。

2つのテーブルまたは2つのパーティション間でデータを入れ替えるにはどうすればよいですか?

SWAP WITHステートメントを実行して、2つのテーブルまたは2つのパーティション間でデータを入れ替えます。SWAP WITHステートメントは、INSERT OVERWRITEステートメントよりも安全です。データを入れ替える前に、まずデータをチェックし、データの入れ替え後のデータが入れ替え前のデータと一致しているか確認します。

  • 2つのテーブルを入れ替える場合:例として、table1というテーブルを他のテーブルで置き換えたいとします。次の手順を実行します。
    1. table2という新しいテーブルを作成します。

      create table2 like table1;
    2. Stream Load、Broker Load、またはInsert Intoを使用して、table1からtable2にデータをロードします。

    3. table1をtable2で置き換えます。

      ALTER TABLE table1 SWAP WITH table2;

      これにより、データが正確にtable1にロードされます。

  • 2つのパーティションを入れ替える場合:例として、table1というテーブルがあるとします。table1内のパーティションデータを置き換えたい場合、次の手順を実行します。
    1. 一時的なパーティションを作成します。

      ALTER TABLE table1

      ADD TEMPORARY PARTITION tp1

      VALUES LESS THAN("2020-02-01");
    2. パーティションデータをtable1から一時的なパーティションにロードします。

    3. table1のパーティションを一時的なパーティションで置き換えます。

      ALTER TABLE table1

      REPLACE PARTITION (p1) WITH TEMPORARY PARTITION (tp1);

フロントエンド(FE)を再起動すると、「error to open replicated environment, will exit」というエラーが発生します

このエラーは、BDBJEのバグによるものです。この問題を解決するには、BDBJEのバージョンを1.17以降に更新してください。

新しいApache Hiveテーブルからデータをクエリする際に「Broker list path exception」というエラーが発生します

問題の説明

msg:Broker list path exception

path=hdfs://172.31.3.136:9000/user/hive/warehouse/zltest.db/student_info/*, broker=TNetworkAddress(hostname:172.31.4.233, port:8000)

解決策

StarRocksのテクニカルサポートに連絡し、namenodeのアドレスとポートが正しいこと、およびnamenodeのアドレスとポートにアクセスする権限があることを確認してください。

新しいApache Hiveテーブルからデータをクエリする際に「get hive partition metadata failed」というエラーが発生します

問題の説明

msg:get hive partition meta data failed: java.net.UnknownHostException: emr-header-1.cluster-242

解決策

ネットワークが接続されていることを確認し、hostファイルをStarRocksクラスターの各バックエンド(BE)にアップロードしてください。

Apache Hiveの外部テーブルにアクセスする際に「do_open failed. reason = Invalid ORC postscript length」というエラーが発生します

問題の説明

Apache Hiveのメタデータは、FEにキャッシュされます。ただし、StarRocksはメタデータを更新するための2時間の遅延があります。StarRocksが更新を完了する前に、Apache Hiveテーブルに新しいデータを挿入したり、データを更新したりすると、BEがスキャンするHDFSのデータとFEが取得するデータが異なるため、このエラーが発生します。

MySQL [bdp_dim]> select * from dim_page_func_s limit 1;

ERROR 1064 (HY000): HdfsOrcScanner::do_open failed. reason = Invalid ORC postscript length

解決策

この問題を解決するには、次のいずれかの操作を実行します。

  • 現在のバージョンをStarRocks 2.2以降にアップグレードします。
  • Apache Hiveテーブルを手動でリフレッシュします。詳細については、メタデータのキャッシュ戦略を参照してください。

MySQLの外部テーブルに接続する際に「caching_sha2_password cannot be loaded」というエラーが発生します

問題の説明

MySQL 8.0のデフォルトの認証プラグインはcaching_sha2_passwordです。MySQL 5.7のデフォルトの認証プラグインはmysql_native_passwordです。このエラーは、間違った認証プラグインを使用しているために発生します。

解決策

この問題を解決するには、次のいずれかの操作を実行します。

  • StarRocksに接続します。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'yourpassword';
  • my.cnfファイルを編集します。
vim my.cnf

[mysqld]

default_authentication_plugin=mysql_native_password

テーブルを削除した後、ディスクスペースをすぐに解放するにはどうすればよいですか?

テーブルを削除するためにDROP TABLEステートメントを実行すると、StarRocksは割り当てられたディスクスペースを解放するまでに時間がかかります。割り当てられたディスクスペースをすぐに解放するには、DROP TABLE FORCEステートメントを実行してテーブルを削除します。DROP TABLE FORCEステートメントを実行すると、StarRocksはテーブルを未完成のイベントがあるかどうかチェックせずに直接削除します。DROP TABLE FORCEステートメントの実行には注意が必要です。テーブルが一度削除されると、復元することはできません。

StarRocksの現在のバージョンを表示するにはどうすればよいですか?

select current_version();コマンドまたはCLIコマンド./bin/show_fe_version.shを実行して、現在のバージョンを表示します。

FEのメモリサイズを設定する方法は?

メタデータは、FEが使用するメモリに格納されます。FEのメモリサイズは、以下の表に示すタブレットの数に基づいて設定できます。たとえば、タブレットの数が100万未満の場合、FEには最低16GBのメモリを割り当てる必要があります。fe.confファイルのJAVA_OPTS構成項目内の-Xms-Xmxパラメータの値を設定し、-Xms-Xmxパラメータの値を一致させる必要があります。いずれのFEでも構成が同じである必要があることに注意してください。なぜなら、どのFEでもリーダーとして選出される可能性があるためです。

タブレットの数

各FEのメモリサイズ

100万未満

16 GB

100~200万

32 GB

200~500万

64 GB

500~1000万

128 GB

StarRocksはクエリ時間をどのように計算しますか?

StarRocksは、複数のスレッドを使用してデータをクエリすることができます。クエリ時間とは、複数のスレッドがデータをクエリするために使用した時間を指します。

StarRocksはローカルにデータをエクスポートする際にパスを設定できますか?

いいえ。

StarRocksの並行性の上限は何ですか?

実際のビジネスシナリオまたはシミュレートされたビジネスシナリオに基づいて、並行性の制限をテストすることができます。一部のユーザーのフィードバックによると、最大20,000 QPSまたは30,000 QPSが達成可能です。

StarRocksの初回のSSBテストのパフォーマンスが2回目よりも遅いのはなぜですか?

最初のクエリのディスクリード速度はディスクのパフォーマンスに関連しています。最初のクエリの後、2回目以降のクエリのためにページキャッシュが生成されるため、クエリは以前よりも速くなります。

クラスターに最低いくつのBEを設定する必要がありますか?

StarRocksは単一ノードの展開をサポートしているため、少なくとも1つのBEを設定する必要があります。BEはAVX2で実行する必要があるため、8コアと16GB以上の構成を持つマシンにBEをデプロイすることをおすすめします。

StarRocksを使用してデータを視覚化するためにApache Supersetを使用する場合、データのパーミッションをどのように設定できますか?

新しいユーザーアカウントを作成し、そのユーザーに対して表クエリのパーミッションを付与することで、データのパーミッションを設定できます。

enable_profiletrueに設定した後にプロファイルが表示されないのはなぜですか?

レポートはリーダーFEにのみ送信されるためです。

StarRocksのテーブルのフィールドの注釈をどのように確認すればよいですか?

show create table xxxコマンドを実行します。

テーブルを作成する際に、NOW()関数のデフォルト値を指定する方法は?

StarRocks 2.1以降のバージョンのみ、関数のデフォルト値を指定することができます。StarRocks 2.1より前のバージョンでは、関数には定数のみを指定できます。

BEノードのストレージスペースを解放するにはどうすればよいですか?

rm -rfコマンドを使用して、ディレクトリtrashを削除できます。スナップショットからデータを復元した場合は、ディレクトリsnapshotを削除できます。

BEノードに追加のディスクを追加できますか?

はい。BEの構成項目storage_root_pathで指定されたディレクトリにディスクを追加できます。