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

リリース 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 より多くのデータレイクソースでの複合データタイプのサポート

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コンパクション効率を最適化しました。
  • 外部テーブルクエリのスレッド割り当てロジックを最適化してメモリ使用量を削減しました。
  • 列リーダーのメモリ使用量を最適化しました。

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

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

3.3 セキュリティ強化

4 バグ修正と安定性

4.1 複合データタイプ

4.2 転置インデックス

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

4.4 テーブルサンプル

4.5 Unique with merge on write

4.6 ロードとコンパクション

4.7 データレイク互換性

4.8 JDBC外部テーブル互換性

4.9 SQLプランナーとオプティマイザー

その他

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