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

v2.1

StarRocks バージョン 2.1

2.1.13

リリース日: 2022年9月6日

改善点

  • BEの設定項目enable_check_string_lengthsを追加し、ロードされたデータの長さをチェックするようにしました。この仕組みにより、VARCHARデータのサイズが範囲外になることによるコンパクションの失敗を防ぐことができます。#10380
  • クエリに1000個以上のOR演算子が含まれる場合のクエリのパフォーマンスを最適化しました。#9332

バグ修正

以下のバグが修正されています:

  • 集約テーブルを使用してテーブルからARRAYカラム(REPLACE_IF_NOT_NULL関数を使用して計算される)をクエリすると、エラーが発生し、BEがクラッシュする場合があります。#10144
  • クエリ内に複数のIFNULL()関数がネストされている場合、クエリ結果が正しくありません。#5028 #10486
  • 動的パーティションが切り捨てられた後、パーティション内のタブレットの数が動的パーティション設定で指定された値からデフォルト値に変更されます。#10435
  • StarRocksへのルーチンロード時にKafkaクラスタが停止されると、デッドロックが発生し、クエリのパフォーマンスに影響を与える場合があります。#8947
  • クエリにサブクエリとORDER BY句の両方が含まれている場合にエラーが発生します。#10066

2.1.12

リリース日: 2022年8月9日

改善点

BDB JEのメタデータクリーンアップを高速化するために、bdbje_cleaner_threadsbdbje_replay_cost_percentの2つのパラメータを追加しました。#8371

バグ修正

以下のバグが修正されています:

  • 特定のテーブルでPrimary Keyテーブルを使用して計算されるARRAYカラムをクエリすると、エラーが発生する可能性があります。(#10144)の問題
  • クエリ内に複数のIFNULL()関数がネストされている場合、クエリの結果が正しくありません。#5028 #10486
  • 動的パーティションのトランケート後、パーティション内のタブレットの数が動的パーティション設定で指定された値からデフォルト値に変更されます。#10435
  • StarRocksへのデータロード時にKafkaクラスタが停止されると、デッドロックが発生し、クエリのパフォーマンスが影響を受ける可能性があります。#8947
  • クエリにサブクエリとORDER BY句の両方が含まれている場合にエラーが発生します。#10066

2.1.11

リリース日: 2022年7月9日

バグ修正

以下のバグが修正されています:

  • プライマリキーテーブルへのデータのロードが頻繁に行われる場合に、テーブルへのデータのロードが中断されることがあります。#7763
  • 低基数最適化時に集約式の処理順序が間違って処理され、count distinct関数が予期しない結果を返すことがあります。#7659
  • LIMIT句の結果が返されない場合があります。これは、LIMIT句のプルーニングルールが正しく処理されないためです。#7894
  • 低基数最適化によるグローバル辞書がクエリの結合条件として定義された列に適用される場合、クエリは予期しない結果を返します。#8302

2.1.10

リリース日: 2022年6月24日

バグ修正

以下のバグが修正されています:

  • リーダーFEノードを繰り返し切り替えると、すべてのロードジョブがハングアップし、失敗します。#7350
  • DESC SQLでテーブルスキーマを確認すると、DECIMAL(18,2)型のフィールドがDECIMAL64(18,2)と表示されます。#7309
  • MemTableのメモリ使用量の推定が4GBを超えると、BEがクラッシュします。これは、ロード時のデータスキューにより、一部のフィールドが大量のメモリリソースを占有する場合があります。#7161
  • コンパクション時のmax_rows_per_segmentの計算においてオーバーフローが発生し、大量の小さなセグメントファイルが作成される場合があります。#5610

2.1.8

リリース日: 2022年6月9日

改善点

  • スキーマ変更などの内部処理ワークロードの並行制御メカニズムを最適化し、FEメタデータの負荷を軽減しました。そのため、多数のロードジョブが並行して大量のデータをロードする場合でも、ジョブが詰まって遅くなることが少なくなりました。#6560 #6804
  • 高頻度でデータをロードする場合のStarRocksのパフォーマンスが向上しました。#6532 #6533

バグ修正

以下のバグが修正されています:

  • ルーチンロードジョブにALTER操作を実行した後、チェックポイントが作成された後にジョブのメタデータが失われるため、ALTER操作後のルーチンロードジョブのメタデータが失われます。#6936
  • ルーチンロードジョブを停止した場合、デッドロックが発生する場合があります。#6450
  • バックエンド(BE)はデフォルトのUTC+8タイムゾーンを使用してロードジョブを実行します。サーバーがUTCタイムゾーンを使用している場合、SparkロードジョブでロードされるテーブルのDateTime列のタイムスタンプに8時間が追加されます。#6592
  • GET_JSON_STRING関数は、非JSON文字列を処理できません。JSONオブジェクトや配列からJSON値を抽出する場合、関数はNULLを返します。この関数は、JSONオブジェクトや配列に対して等価なJSON形式のSTRING値を返すように最適化されました。#6426
  • テーブルに大量のSTRINGフィールドが含まれる場合、スキーマの変更が失敗する場合があります。この場合、スキーマ変更操作の各ステージでメモリ使用量の制限を指定できるように最適化されました。#6705
  • コンパクションでの重複値の数が0x40000000を超える場合、コンパクションが中断されます。#6513
  • FEが再起動された後、BDB JE v7.3.8のいくつかの問題により高いI/Oと異常に増加するディスク使用量が発生し、正常に復旧しない場合があります。FEはBDB JE v7.3.7にロールバックすることで正常に復旧します。#6634

2.1.7

リリース日: 2022年5月26日

改善点

ROW BETWEEN UNBOUNDED PRECEDING AND CURRENT ROWでフレームが設定されているウィンドウ関数に対して、計算に関与するパーティションが大きい場合、StarRocksは計算を行う前にパーティションのすべてのデータをキャッシュしてしまい、大量のメモリリソースを消費してしまうことがありました。このような場合、StarRocksはこのようなパーティションのすべてのデータをキャッシュする必要がないように最適化されました。5829

バグ修正

以下のバグが修正されています:

  • プライマリキーテーブルを使用してデータをロードする場合、データの各バージョンの作成時刻がモノトニックに増加しない場合(バックワード移動されたシステム時間などの理由による)、データ処理エラーが発生することがあります。これにより、バックエンド(BE)が停止します。#6046
  • 一部のグラフィカルユーザーインターフェース(GUI)ツールがset_sql_limit変数を自動的に設定してしまい、ORDER BY LIMIT SQL文が無視され、クエリの結果が正しくない場合があります。#5966
  • データベースにDROP SCHEMA文が実行されると、データベースが強制的に削除され、復元できなくなります。#6201
  • JSON形式のデータをロードすると、データにJSON形式のエラーが含まれる場合、BEが停止します。たとえば、キーと値がカンマ(、)で区切られていない場合などです。#6098
  • 大量のデータを高い並行性でロードしている場合、データをディスクに書き込むために実行されるタスクがBE上で積み重なる場合があります。このような状況では、BEが停止する可能性があります。#3877
  • StarRocksはテーブルのスキーマ変更を実行する前に必要なメモリ量を推定しますが、テーブルに大量のSTRINGフィールドが含まれる場合、メモリの推定結果が正確でない場合があります。この場合、スキーマ変更操作の各ステージで許可される単一のスキーマ変更操作の最大メモリ量を超える場合、正常に実行されるはずのスキーマ変更操作がエラーになることがあります。#6322
  • プライマリキーテーブルを使用してスキーマ変更を実行した後、そのテーブルにデータをロードすると、「duplicate key xxx」というエラーが発生することがあります。#5878
  • Shuffle Join時に低基数最適化が実行されると、パーティショニングエラーが発生する場合があります。#4890
  • コロケーショングループ(CG)に大量のテーブルが含まれ、頻繁にデータがテーブルにロードされる場合、CGが安定した状態になることができない場合があります。この場合、JOIN文はColocate Join操作をサポートしません。StarRocksはデータのロード時に少し長く待機するように最適化されました。これにより、データがロードされるタブレットレプリカの整合性を最大化できます。

2.1.6

リリース日: 2022年5月10日

バグ修正

以下のバグが修正されています:

  • 複数のDELETE操作を実行した後にクエリを実行すると、クエリの結果が正しくない場合があります。これは、クエリの低基数列の最適化が行われた場合のものです。#5712
  • 特定のデータインジェクションフェーズでタブレットの移行が行われると、タブレットが格納されている元のディスクにデータが書き込まれ続けるため、データが失われ、クエリが正常に実行されなくなります。#5160
  • DECIMALとSTRINGのデータ型を変換すると、戻り値の精度が予期しないものになる場合があります。#5608
  • DECIMALの値にBIGINTの値を掛け算すると、算術オーバーフローが発生する場合があります。このバグを修正するために、いくつかの調整と最適化が行われています。#4211

2.1.5

リリース日: 2022年4月27日

バグ修正

以下のバグが修正されています:

  • DECIMALの乗算時にオーバーフローが発生した場合、計算結果が正しくありません。バグの修正後、DECIMALの乗算がオーバーフローした場合はNULLが返されます。
  • 統計情報が実際の統計情報から大きく逸脱している場合、Colocate Joinの優先度がBroadcast Joinよりも低くなる可能性があります。その結果、クエリプランナーはより適切なJoin戦略としてColocate Joinを選択しない場合があります。#4817
  • 4つ以上のテーブルを結合する場合、複雑な式のための計画が間違っている場合にクエリが失敗します。
  • シャッフルカラムが低基数列の場合、Shuffle Joinの中でBEが停止する場合があります。#4890
  • SPLIT関数がNULLパラメータを使用する場合、BEが停止する場合があります。#4092

2.1.4

リリース日: 2022年4月8日

新機能

  • UUID_NUMERIC関数がサポートされ、LARGEINT値を返すようになりました。UUID関数と比較して、UUID_NUMERIC関数はパフォーマンスが約2桁向上しています。

バグ修正

以下のバグが修正されています:

  • カラムの削除、新しいパーティションの追加、タブレットのクローニング後に、古いタブレットと新しいタブレットの列の一意のIDが一致しない場合があります。これは、システムが共有タブレットスキーマを使用しているため、BEが停止する可能性があります。#4514
  • StarRocksのターゲットクラスターの設定されたFEがリーダーではない場合、StarRocks外部テーブルへのデータロードに失敗します。#4573
  • CAST関数の結果がStarRocksバージョン1.19と2.1で異なります。#4701
  • Duplicate Keyテーブルでスキーマ変更とマテリアライズドビューの作成を同時に行った場合、クエリが失敗します。#4839

2.1.3

リリース日: 2022年3月19日

バグ修正

以下のバグが修正されています:

  • BEの障害によるデータ損失の可能性がある問題(バージョンのパブリッシュバッチを使用して解決)。#3140
  • 不適切な実行計画により、一部のクエリがメモリ制限を超過するエラーが発生する場合があります。
  • 異なるコンパクションプロセスでレプリカ間のチェックサムが一致しない場合があります。#3438
  • JSONのリオーダープロジェクションが正しく処理されない場合、クエリが失敗する可能性があります。#4056

2.1.2

リリース日: 2022年3月14日

バグ修正

以下のバグが修正されています:

  • version 1.19から2.1へのローリングアップグレード時にBEノードが一致しないチャンクサイズであるため、BEノードが停止します。#3834
  • 2.0から2.1へのアップデート中にロードタスクが失敗する場合があります。#3828
  • 1つのタブレットテーブル結合に適切な実行計画が存在しない場合、クエリが失敗します。#3854
  • FEノードが低基数最適化のためのグローバル辞書を構築するために情報を収集する際にデッドロックが発生する可能性があります。#3839
  • BEノードがデッドロックのために中断している場合にクエリが失敗します。
  • SHOW VARIABLESコマンドが失敗した場合、BIツールはStarRocksに接続できません。#3708

2.1.0

リリース日: 2022年2月24日

新機能

  • [プレビュー] StarRocksはIceberg外部テーブルをサポートするようになりました。
  • [プレビュー] パイプラインエンジンが利用可能になりました。これは、マルチコアスケジューリングに最適化された新しい実行エンジンです。クエリの並列度を設定する必要なく自動的に調整することができます。これにより、高並行性のシナリオでのパフォーマンスが向上します。
  • CTAS(CREATE TABLE AS SELECT)ステートメントがサポートされ、ETLとテーブルの作成が容易になります。
  • SQLフィンガープリントがサポートされました。SQLフィンガープリントはaudit.logに生成され、遅いクエリの特定を容易にします。
  • ANY_VALUE、ARRAY_REMOVE、SHA2関数がサポートされました。

改善点

  • コンパクションが最適化されました。フラットテーブルには最大で1万列を含めることができます。
  • ファーストタイムスキャンとページキャッシュのパフォーマンスが最適化されました。ランダムI/Oが減少し、ファーストタイムスキャンのパフォーマンスが向上します。特にSATAディスクでファーストタイムスキャンが発生する場合、改善が顕著です。StarRocksのページキャッシュは元のデータを格納できるため、bitshuffleエンコーディングや不必要なデコードが不要です。キャッシュヒット率とクエリの効率が向上します。
  • プライマリキーテーブルでスキーマ変更がサポートされました。Alter tableを使用してビットマップインデックスの追加、削除、変更ができます。
  • [プレビュー] 文字列のサイズは最大で1MBまで設定できます。
  • JSONのロードのパフォーマンスが最適化されました。単一のファイルに100MBを超えるJSONデータをロードできます。
  • ビットマップインデックスのパフォーマンスが最適化されました。
  • StarRocks Hive外部テーブルのパフォーマンスが最適化されました。CSV形式のデータを読み込むことができます。
  • create tableステートメントでDEFAULT CURRENT_TIMESTAMPがサポートされました。
  • StarRocksは複数の区切り文字を持つCSVファイルをロードすることができます。

バグ修正

以下のバグが修正されています:

  • jsonpathsが特定のロードタスクで指定されている場合、自動的な__opマッピングが効果を発揮しません。
  • BEがBroker Loadを使用してデータをロードする間にソースデータが変更されると、BEが失敗することがあります。
  • マテリアライズドビューが作成された後、一部のSQL文でエラーが発生することがあります。
  • ルーチンロードが引用符で囲まれたjsonpathsのために機能しない場合があります。
  • クエリの並行性が200を超えると急激に低下します。

動作の変更

コロケーショングループを無効にするAPIがDELETE /api/colocate/group_stableからPOST /api/colocate/group_unstableに変更されました。

その他

flink-connector-starrocksが利用可能になり、FlinkはJDBCコネクタと比べてStarRocksデータをバッチで読み込むことができます。これにより、データの読み取り効率が向上します。