doris - Apache Doris は、使いやすく高性能な統合分析データベースです。

(Apache Doris is an easy-to-use, high performance and unified analytics database.)

Created at: 2017-08-10 20:13:30
Language: C++
License: Apache-2.0

アパッチ・ドリス

ライセンス GitHub リリース ジェンキンス・ヴェック ジェンキンス・オリ 総行数 Slack の Doris コミュニティに参加する https://gitter.im/apache-doris/Lobby でチャットに参加してください 英文 CN ドキュメント ツイッター

Apache Doris は、MPP アーキテクチャに基づく使いやすく高性能なリアルタイム分析データベースであり、その極端な速度と使いやすさで知られています。大量のデータの下でクエリ結果を返すのに 1 秒未満の応答時間しか必要とせず、同時実行性の高いポイント クエリ シナリオだけでなく、高スループットの複雑な分析シナリオもサポートできます。

これに基づいて、Apache Doris は、レポート分析、アドホック クエリ、統合データ ウェアハウス、データ レイク クエリ アクセラレーションなどのシナリオをより適切に満たすことができます。ユーザーは、ユーザー行動分析、AB テスト プラットフォーム、ログ検索分析、ユーザー ポートレート分析、注文分析、およびこれに加えて他のアプリケーション。

🎉バージョン1.1.1がリリースされました!チェックアウト🔗リリースノートはこちら。

👀をご覧ください🔗Apache Doris のコア機能、ブログ、およびユーザー ケースの包括的なリストの公式 Web サイト。

📈利用シーン

下の図に示すように、さまざまなデータ統合と処理の後、データ ソースは通常、リアルタイム データ ウェアハウス Apache Doris とオフライン データ レイクまたはデータ ウェアハウス (Apache Hive、Apache Iceberg、または Apache Hudi) に格納されます。

Apache Doris は、次のシナリオで広く使用されています。

  • レポート分析

    • リアルタイム ダッシュボード
    • 社内アナリストおよびマネージャー向けのレポート
    • ユーザー指向または顧客指向の高度な同時レポート分析。たとえば、Web サイト所有者向けのサイト分析や広告主向けの広告レポートのシナリオでは、通常、同時実行には数千 QPS が必要であり、クエリの遅延にはサブ秒の応答が必要です。有名な電子商取引会社の JD.com は広告レポートで Doris を使用しており、1 日あたり 100 億行のデータを書き込み、99 パーセンタイルで数万の同時クエリ QPS と 150 ミリ秒のクエリ レイテンシを実現しています。
  • アドホック クエリ。不規則なクエリ パターンと高いスループット要件を備えたアナリスト指向のセルフサービス分析。XiaoMi は Doris に基づいて成長分析プラットフォーム (Growth Analytics、GA) を構築し、ユーザーの行動データをビジネスの成長分析に使用し、平均クエリ レイテンシは 10 秒、95 パーセンタイル クエリ レイテンシは 30 秒以下、数万1 日あたりの SQL クエリの数。

  • 統合データ ウェアハウスの構築。統合データ ウェアハウス構築のニーズを満たし、複雑なデータ ソフトウェア スタックを簡素化するプラットフォーム。HaiDiLao の Doris ベースの統合データ ウェアハウスは、Apache Spark、Apache Hive、Apache Kudu、Apache HBase、および Apache Phoenix で構成される古いアーキテクチャを置き換え、アーキテクチャを大幅に簡素化します。

  • データ レイク クエリ。外部テーブルを使用して Apache Hive、Apache Iceberg、および Apache Hudi にあるデータをフェデレートすることにより、データのコピーを回避しながら、クエリのパフォーマンスが大幅に向上します。

🖥️コアコンセプト

📂Apache Doris のアーキテクチャ

Apache Doris の全体的なアーキテクチャを次の図に示します。Doris アーキテクチャは非常に単純で、2 種類のプロセスしかありません。

  • フロントエンド(FE):主にユーザーリクエストのアクセス、クエリの解析とプランニング、メタデータの管理、ノード管理関連の作業を担当します。

  • バックエンド(BE):主にデータの保存とクエリプランの実行を担当します。

どちらのタイプのプロセスも水平方向にスケーラブルであり、1 つのクラスターで最大数百台のマシンと数十ペタバイトのストレージ容量をサポートできます。そして、これら 2 種類のプロセスは、一貫性プロトコルを通じて、サービスの高可用性とデータの高信頼性を保証します。この高度に統合されたアーキテクチャ設計により、分散システムの運用と保守のコストが大幅に削減されます。

Apache Doris の全体的なアーキテクチャ

Apache Doris は MySQL プロトコルを採用し、MySQL ダイアレクトとの互換性が高く、標準 SQL をサポートします。ユーザーは、さまざまなクライアント ツールを介して Doris にアクセスし、BI ツールとのシームレスな接続をサポートできます。

💾ストレージ エンジン

ストレージ エンジンに関しては、Apache Doris は列ストレージを使用してデータを列ごとにエンコードおよび圧縮し、読み取ることで、非常に高い圧縮率を実現しながら、関連性のないデータの大量のスキャンを減らし、IO と CPU をより効率的に使用します。資力。Doris は、データ スキャンを減らすために、比較的豊富なインデックス構造もサポートしています。

  • ソートされた複合キー インデックスのサポート: 最大 3 つの列を指定して、複合ソート キーを形成できます。このインデックスを使用すると、データを効果的にプルーニングして、多数の同時レポート シナリオをより適切にサポートできます。
  • Z オーダー インデックス :Z オーダー インデックスを使用すると、スキーマ内のフィールドの任意の組み合わせに対して範囲クエリを効率的に実行できます。
  • MIN/MAX インデックス: 数値型の等価クエリと範囲クエリの効果的なフィルタリング
  • ブルーム フィルター インデックス: カーディナリティの高い列の等価フィルター処理とプルーニングに非常に効果的
  • インデックスの反転: 任意のフィールドの高速検索を可能にします。

💿ストレージ モデル

ストレージ モデルに関しては、Apache Doris はさまざまなストレージ モデルをサポートしており、さまざまなシナリオ向けに特定の最適化が行われています。

  • 集約キー モデル: パフォーマンスを大幅に向上させるために事前に集約することにより、同じキーを持つ値列をマージします。

  • Unique Key モデル: キーは一意です。行レベルのデータ更新を実現するために、同じキーを持つデータは上書きされます。

  • 重複キー モデル: 詳細データ モデルは、ファクト テーブルの詳細ストレージを満たすことができます。

Apache Doris は、マテリアライズド ビューの更新と選択がシステム内で自動的に行われ、ユーザーが手動で選択する必要がないため、マテリアライズド ビューのメンテナンスのコストを大幅に削減する、強力な一貫性のあるマテリアライズド ビューもサポートしています。

🔍クエリ エンジン

クエリ エンジンに関しては、Apache Doris はノード間およびノー​​ド内で並列実行を行う MPP モデルを採用し、複数の大きなテーブルの分散シャッフル結合もサポートしているため、複雑なクエリによりよく対処できます。

Doris クエリ エンジンはベクトル化されており、すべてのメモリ構造を列形式でレイアウトして、仮想関数呼び出しの大幅な削減、キャッシュ ヒット率の向上、SIMD 命令の効率的な使用を実現できます。幅広いテーブル集約シナリオでのパフォーマンスは、ベクトル化されていないエンジンよりも 5 ~ 10 倍高くなります。

Apache Doris は、ランタイム統計に基づいて実行計画を動的に調整できる Adaptive Query Execution テクノロジを使用します。たとえば、実行時にプローブ側にプッシュするフィルタを生成し、フィルタをプローブ側に自動的に浸透させるランタイム フィルタ テクノロジなどです。プローブ内のデータ量を減らし、結合パフォーマンスを高速化します。Doris のランタイム フィルタは、In/Min/Max/Bloom フィルタをサポートしています。

🚅クエリ オプティマイザー

オプティマイザーに関して、Doris は CBO と RBO の組み合わせを使用します。RBO は定数の折りたたみ、サブクエリの書き換え、述語のプッシュダウンなどをサポートし、CBO は Join Reorder をサポートします。CBO は、主に、より正確な統計情報の収集と導出、より正確なコスト モデルの予測などに焦点を当て、継続的に最適化されています。

技術概要🔗アパッチ・ドリスの紹介

🎆アパッチ ドリスを選ぶ理由

  • 🎯 使いやすい: 2 つのプロセスで、他の依存関係はありません。オンライン クラスタ スケーリング、自動レプリカ リカバリ。MySQL プロトコルと互換性があり、標準 SQL を使用します。

  • 🚀 ハイ パフォーマンス:カラムナ ストレージ エンジン、最新の MPP アーキテクチャ、ベクトル化されたクエリ エンジン、事前に集計されたマテリアライズド ビュー、およびデータ インデックスを使用した、低レイテンシで高スループットのクエリに対する非常に高速なパフォーマンス。

  • 🖥️ 単一の統合:単一のシステムで、リアルタイムのデータ サービス、インタラクティブなデータ分析、およびオフライン データ処理のシナリオをサポートできます。

  • ⚛️ 連携クエリ: Hive、Iceberg、Hudi などのデータ レイク、および MySQL や Elasticsearch などのデータベースの連携クエリをサポートします。

  • さまざまなデータ インポート方法: HDFS/S3 からのバッチ インポートと MySQL Binlog/Kafka からのストリーム インポートをサポートします。HTTP インターフェイスを介したマイクロバッチ書き込みと、JDBC の Insert を使用したリアルタイム書き込みをサポートします。

  • 🚙 豊富なエコロジー: Spark は Spark-Doris-Connector を使用して Doris の読み取りと書き込みを行います。Flink-Doris-Connector により、Flink CDC は Doris への 1 回限りのデータ書き込みを実装できます。DBT Doris Adapter は、DBT を使用して Doris のデータを変換するために提供されています。

🙌寄稿者

Apache Doris は Apache インキュベーターを無事卒業し、2022 年 6 月にトップレベル プロジェクトになりました

現在、Apache Doris コミュニティには、さまざまな業界の約 100 社の企業から 350 人を超えるコントリビューターが集まり、アクティブなコントリビューターの数は毎月 100 人近くに達しています。

毎月のアクティブな貢献者

寄稿者の推移

深く感謝いたします🔗Apache Doris への貢献に対するコミュニティ貢献者。

👨‍👩‍👧‍👦ユーザー

Apache Doris は現在、中国および世界中に幅広いユーザー ベースを持ち、現在、Apache Doris は世界中の 700 を超える企業の運用環境で使用されています。Baidu、Meituan、Xiaomi、Jingdong、Bytedance、Tencent、NetEase、Kwai、Weibo、Ke など、時価総額または評価額で中国のトップ 50 のインターネット企業の 80% 以上が Apache Doris を長い間使用しています。ホールディングス。また、金融、エネルギー、製造、電気通信などの一部の伝統的な産業でも広く使用されています。

Apache Doris のユーザー:🔗https://doris.apache.org/users

Apache Doris Web サイトに会社のロゴを追加します。🔗あなたの会社を追加

👣始めましょう

📚ドキュメント

すべてのドキュメント 🔗ドキュメント

⬇️ダウンロード

すべてのリリースとバイナリ バージョン🔗ダウンロード

🗄️コンパイル

コンパイル方法を見る 🔗コンパイル

📮インストール

インストールとデプロイの方法を見る🔗インストールと展開

🧩コンポーネント

📝ドリス コネクタ

Doris は、コネクタを介して Doris に保存されたデータを読み取るための Spark/Flink のサポートを提供し、コネクタを介した Doris へのデータの書き込みもサポートします。

🔗Apache/doris-flink-connector

🔗Apache/doris-spark-connector

🛠ドリスマネージャー

Doris は、ワンクリックの視覚的な自動インストールと展開、クラスター管理、およびクラスターの監視ツールを提供します。

🔗Apache/Doris マネージャー

🌈コミュニティとサポート

📤メーリングリストを購読する

メールリストは、Apache コミュニティで最も認知されている通信形式です。方法を見る🔗メーリングリストを購読する

🙋問題の報告またはプルリクエストの送信

ご不明な点がございましたら、お気軽に🔗GitHub に発行または投稿する🔗GitHub ディスカッションに投稿して修正します。🔗プルリクエスト

🍻貢献する方法

ご提案、ご意見 (批判を含む)、ご意見、ご投稿をお待ちしております。見る🔗貢献する方法🔗コード提出ガイド

⌨️ドリス改善提案 (DSIP)

🔗Doris Improvement Proposal (DSIP)は、すべての主要な機能更新または改善に関する設計ドキュメントのコレクションと考えることができます。

💬お問い合わせ

以下のメーリングリストからお問い合わせください。

名前 範囲
dev@doris.apache.org 開発関連の議論 申し込む 登録解除 アーカイブ

🧰リンク

📜ライセンス

Apache ライセンス、バージョン 2.0

サードパーティの依存関係の一部のライセンスは、Apache 2.0 ライセンスと互換性がありません。そのため、Apache 2.0 ライセンスに準拠するには、一部の Doris 機能を無効にする必要があります。詳細については、

thirdparty/LICENSE.txt