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

リリース 2.0.3

コミュニティユーザーと開発者のおかげで、Doris 2.0.3バージョンではオプティマイザ統計、転置インデックス、複合データ型、データレイク、レプリカ管理を含む約1000の改善とバグ修正が行われました。

1 動作変更

  • 複合データ型array/map/structの出力形式が入力形式とJSON仕様に一致するよう変更されました。前バージョンからの主な変更点として、DATE/DATETIMEとSTRING/VARCHARが二重引用符で囲まれ、ARRAY/MAP内のnull値がNULLではなくnullとして表示されます。
  • SHOW_VIEW権限がサポートされました。SELECTやLOAD権限を持つユーザーは、'SHOW CREATE VIEW'ステートメントを実行できなくなり、SHOW_VIEW権限を別途付与する必要があります。

2 新機能

2.1 オプティマイザの統計情報自動収集をサポート

統計情報の収集により、オプティマイザがデータ分布特性を理解し、より良いプランを選択してクエリ性能を大幅に向上させます。バージョン2.0.3から正式にサポートされ、デフォルトで終日有効になっています。

2.2 より多くのdatalakeソースで複合データ型をサポート

2.3 より多くの組み込み関数を追加

3 改善と最適化

3.1 性能最適化

  • 高いフィルタ率を持つ転置インデックスMATCH WHERE条件と、低いフィルタ率を持つ一般的なWHERE条件が組み合わされた場合、インデックス列のI/Oが大幅に削減されます。
  • whereフィルタ後のランダムデータアクセスの効率を最適化しました。
  • JSONデータ型での古いget_json_xx関数の性能を2〜4倍最適化しました。
  • データ読み取りスレッドの優先度を下げる設定をサポートし、リアルタイム書き込みのCPUリソースを確保します。
  • largeintを返すuuid-numeric関数を追加し、文字列を返すuuid関数より20倍高速です。
  • case whenの性能を3倍最適化しました。
  • ストレージエンジン実行での不要な述語計算を削除しました。
  • count演算子をストレージ層にプッシュダウンしてcount性能を向上させました。
  • in/or式でのnullable型の計算性能を最適化しました。
  • より多くのシナリオでjoin前のlimit演算子の書き換えをサポートし、クエリ性能を向上させます。
  • インラインビューから不要なorder by演算子を除去してクエリ性能を向上させます。
  • いくつかのケースでカーディナリティ推定とコストモデルの精度を最適化しました。
  • jdbc catalogの述語プッシュダウンロジックを最適化しました。
  • 初回有効化時のファイルキャッシュの読み取り効率を最適化しました。
  • hiveテーブルのsqlキャッシュポリシーを最適化し、HMSに格納されたパーティション更新時間を使用してキャッシュヒット率を向上させます。
  • mow compactionの効率を最適化しました。
  • 外部テーブルクエリのスレッド割り当てロジックを最適化してメモリ使用量を削減しました。
  • カラムリーダーのメモリ使用量を最適化しました。

3.2 分散レプリカ管理の改善

分散レプリカ管理の改善には、パーティション削除のスキップ、colocateグループ削除、継続的な書き込みによるバランス失敗、ホット・コールド分離テーブルバランスが含まれます。

3.3 セキュリティ強化

4 バグ修正と安定性

4.1 複合データ型

4.2 転置インデックス

4.3 マテリアライズドビュー

4.4 テーブルサンプル

4.5 Unique with merge on write

4.6 ロードとcompaction

4.7 Data Lake互換性

4.8 JDBC外部テーブル互換性

4.9 SQL PlannerとOptimizer

その他

改善とバグ修正の完全なリストはgithub dev/2.0.3-mergedをご覧ください。