レイクハウス概要
レイクハウスは、データレイクとデータウェアハウスの利点を組み合わせた現代的なビッグデータソリューションです。データレイクの低コストと高いスケーラビリティを、データウェアハウスの高性能と強力なデータガバナンス機能と統合し、ビッグデータ時代における様々なデータの効率的で安全、かつ品質管理された保存と処理分析を可能にします。標準化されたオープンなデータ形式とメタデータ管理を通じて、リアルタイムデータと履歴データ、バッチ処理とストリーム処理を統合し、企業のビッグデータソリューションの新たな標準として次第に確立されています。
Doris Solution
Dorisは、拡張可能なコネクタフレームワーク、コンピュート・ストレージ分離アーキテクチャ、高性能データ処理エンジン、データエコシステムのオープン性を通じて、ユーザーに優れたレイクハウスソリューションを提供します。

柔軟なデータアクセス
Dorisは、拡張可能なコネクタフレームワークを通じて主要なデータシステムとデータ形式アクセスをサポートし、SQLに基づく統一されたデータ分析機能を提供することで、既存のデータを移動することなく、ユーザーが簡単にクロスプラットフォームデータクエリと分析を実行できます。詳細については、カタログ 概要を参照してください。
データソースコネクタ
Hive、Iceberg、Hudi、Paimon、またはJDBCプロトコルをサポートするデータベースシステムであっても、Dorisは簡単に接続し、効率的にデータにアクセスできます。
レイクハウスシステムについて、Dorisは、Hive Metastore、AWS Glue、Unity CatalogなどのメタデータサービスからデータTableの構造と分散情報を取得し、合理的なクエリプランニングを実行し、MPPアーキテクチャを活用した分散コンピューティングを実現できます。
詳細については、Iceberg カタログなどの各catalogドキュメントを参照してください。
拡張可能なコネクタフレームワーク
Dorisは、開発者が企業内の固有のデータソースに迅速に接続し、高速なデータ相互運用性を実現するための優れた拡張性フレームワークを提供します。
Dorisは、カタログ、Database、Tableの3つの標準レベルを定義し、開発者が必要なデータソースレベルに簡単にマッピングできるようにします。Dorisはまた、メタデータサービスとストレージサービスアクセス用の標準インターフェースを提供し、開発者は対応するインターフェースを実装するだけでデータソース接続を完了できます。
DorisはTrino Connectorプラグインと互換性があり、Trinoプラグインパッケージを直接Dorisクラスターにデプロイでき、最小限の設定で対応するデータソースにアクセスできます。Dorisは既にKudu、BigQuery、Delta Lakeなどのデータソースへの接続を完了しています。新しいプラグインを自分で適応させることも可能です。
便利なクロスソースデータ処理
Dorisは、実行時に複数のデータcatalogの作成をサポートし、SQLを使用してこれらのデータソースに対する連合クエリを実行できます。例えば、ユーザーはHive内のファクトTableデータとMySQL内のディメンションTableデータを関連付けてクエリできます:
SELECT h.id, m.name
FROM hive.db.hive_table h JOIN mysql.db.mysql_table m
ON h.id = m.id;
Dorisの内蔵ジョブスケジューリング機能と組み合わせることで、スケジュールされたタスクを作成してシステムの複雑性をさらに簡素化することもできます。例えば、ユーザーは上記のクエリの結果を毎時実行される定期タスクとして設定し、各結果をIcebergTableに書き込むことができます:
CREATE JOB schedule_load
ON SCHEDULE EVERY 1 HOUR DO
INSERT INTO iceberg.db.ice_table
SELECT h.id, m.name
FROM hive.db.hive_table h JOIN mysql.db.mysql_table m
ON h.id = m.id;
高性能データ処理
分析データウェアハウスとしてのDorisは、lakeのhouseデータ処理と計算において数多くの最適化を行い、豊富なクエリ高速化機能を提供します:
-
実行エンジン
Doris実行エンジンはMPP実行フレームワークとPipelineデータ処理モデルに基づいており、マルチマシン・マルチコアの分散環境で大規模データを迅速に処理できます。完全ベクトル化実行オペレーターのおかげで、DorisはTPC-DSなどの標準ベンチマークデータセットにおいて計算性能で優位に立っています。
-
クエリオプティマイザ
Dorisはクエリオプティマイザを通じて複雑なSQLリクエストを自動的に最適化・処理できます。クエリオプティマイザは、マルチTable結合、集約、ソート、ページネーションなどの様々な複雑なSQL演算子を深く最適化し、コストモデルと関係代数変換を最大限に活用して、より良いまたは最適な論理・物理実行プランを自動的に取得し、SQL記述の難しさを大幅に軽減し、使いやすさとパフォーマンスを向上させます。
-
データキャッシュとIO最適化
外部データソースへのアクセスは通常ネットワークアクセスであり、高いレイテンシと不安定性を持つ可能性があります。Apache Dorisは豊富なキャッシング機能を提供し、キャッシュタイプ、適時性、戦略において数多くの最適化を行い、メモリとローカル高速ディスクを最大限に活用してホットデータの分析パフォーマンスを向上させます。さらに、Dorisは高スループット、低IOPS、高レイテンシなどのネットワークIO特性に対して的確な最適化を行い、ローカルデータに匹敵する外部データソースアクセス性能を提供します。
-
マテリアライズドビューと透明な高速化
Dorisは豊富なマテリアライズドビュー更新戦略を提供し、完全およびパーティションレベルの増分リフレッシュをサポートして構築コストを削減し、適時性を向上させます。手動リフレッシュに加えて、Dorisはスケジュールリフレッシュとデータ駆動リフレッシュもサポートし、メンテナンスコストをさらに削減してデータ整合性を向上させます。マテリアライズドビューは透明な高速化機能も持ち、クエリオプティマイザが適切なマテリアライズドビューに自動的にルーティングしてシームレスなクエリ高速化を実現できます。また、Dorisのマテリアライズドビューは高性能ストレージフォーマットを使用し、カラムストレージ、圧縮、インテリジェントインデックス技術により効率的なデータアクセス機能を提供し、データキャッシングの代替手段としてクエリ効率を向上させます。
以下に示すように、IcebergTableフォーマットに基づく1TB TPCDSの標準テストセットにおいて、Dorisの99クエリ全体実行はTrinoの1/3です。

実際のユーザーシナリオでは、DorisはPrestoと比較して半分のリソース使用で平均クエリレイテンシを20%、95パーセンタイルレイテンシを50%削減し、ユーザー体験を向上させながらリソースコストを大幅に削減します。

便利なサービス移行
複数のデータソースを統合してレイクハウス変換を実現する過程で、SQLクエリをDorisに移行することは、システム間のSQL方言の構文と機能サポートの違いにより課題となります。適切な移行計画なしには、ビジネス側は新しいシステムのSQL構文に適応するために大幅な修正が必要になる可能性があります。
この問題を解決するため、DorisはSQL方言変換サービスを提供し、ユーザーが他のシステムのSQL方言を直接使用してデータクエリを行えるようにします。変換サービスはこれらのSQL方言をDoris SQLに変換し、ユーザーの移行コストを大幅に削減します。現在、DorisはPresto/Trino、Hive、PostgreSQL、Clickhouseなどの一般的なクエリエンジンに対するSQL方言変換をサポートし、一部の実際のユーザーシナリオでは99%以上の互換性を実現しています。
モダンなデプロイメントアーキテクチャ
バージョン3.0以降、Dorisはクラウドネイティブなコンピュート・ストレージ分離アーキテクチャをサポートします。このアーキテクチャは低コストと高弾性により、リソース使用率を効果的に改善し、コンピュートとストレージの独立したスケーリングを可能にします。

上図はDorisのコンピュート・ストレージ分離のシステムアーキテクチャを示し、コンピュートとストレージを分離します。コンピュートノードはもはやプライマリデータを格納せず、基盤の共有ストレージ層(HDFSとオブジェクトストレージ)が統一されたプライマリデータストレージスペースとして機能し、コンピュートとストレージリソースの独立したスケーリングをサポートします。コンピュート・ストレージ分離アーキテクチャは、レイクハウスソリューションに大きな利点をもたらします:
-
低コストストレージ: ストレージとコンピュートリソースを独立してスケールでき、企業はコンピュートリソースを増加させることなくストレージ容量を増やすことができます。また、クラウドオブジェクトストレージを使用することで、企業はより低いストレージコストとより高い可用性を享受でき、同時に相対的に低い割合のホットデータについてはローカル高速ディスクをキャッシングに使用できます。
-
Single Source of Truth: すべてのデータが統一されたストレージ層に格納され、同じデータを異なるコンピュートクラスターがアクセス・処理できるため、データ整合性と完全性を確保し、データ同期と重複ストレージの複雑さを軽減します。
-
ワークロードの多様性: ユーザーは異なるワークロードのニーズに基づいてコンピュートリソースを動的に割り当て、バッチ処理、リアルタイム分析、機械学習などの様々なアプリケーションシナリオをサポートできます。ストレージとコンピュートを分離することで、企業はより柔軟にリソース使用を最適化し、異なる負荷下での効率的な運用を保証できます。
さらに、ストレージ・コンピュート結合アーキテクチャでは、弾性コンピューティングノードを引き続き使用してlakeウェアハウスデータクエリシナリオで弾性コンピューティング機能を提供できます。
オープン性
DorisはオープンなlakeTableフォーマットへのアクセスをサポートするだけでなく、自身が格納するデータに対しても良好なオープン性を持っています。DorisはオープンなストレージAPIを提供し、Arrow Flight SQLプロトコルに基づく高速データリンクを実装し、Arrow Flightの速度優位とJDBC/ODBCの使いやすさを提供します。このインターフェースに基づいて、ユーザーはPython/Java/Spark/FlinkのABDCクライアントを使用してDorisに格納されたデータにアクセスできます。
オープンファイルフォーマットと比較して、オープンストレージAPIは基盤ファイルフォーマットの具体的な実装を抽象化し、Dorisが豊富なインデックス機能などストレージフォーマットの高度な機能を通じてデータアクセスを高速化できるようにします。また、上位層のコンピュートエンジンは基盤ストレージフォーマットの変更や新機能に適応する必要がなく、すべてのサポートされるコンピュートエンジンが同時に新機能の恩恵を受けることができます。
レイクハウスベストプラクティス
レイクハウスソリューションでは、Dorisは主にレイクハウスクエリ高速化、マルチソース連合分析、レイクハウスデータ処理に使用されます。
レイクハウスクエリ高速化
このシナリオでは、Dorisはコンピュートエンジンとして機能し、レイクハウスデータのクエリ分析を高速化します。

キャッシュ高速化
HiveやIcebergなどのレイクハウスシステムに対して、ユーザーはローカルディスクキャッシングを設定できます。ローカルディスクキャッシングは、クエリで使用されるデータファイルを自動的にローカルキャッシュディレクトリに格納し、LRU戦略を使用してキャッシュ退避を管理します。詳細はData Cacheドキュメントを参照してください。
マテリアライズドビューと透明リライト
Dorisは外部データソースに対するマテリアライズドビューの作成をサポートします。マテリアライズドビューは、SQL定義文に基づいて事前計算された結果をDoris内部Tableフォーマットとして格納します。また、DorisのクエリオプティマイザはSPJG(SELECT-PROJECT-JOIN-GROUP-BY)パターンに基づく透明リライトアルゴリズムをサポートします。このアルゴリズムはSQLの構造情報を分析し、透明リライトに適したマテリアライズドビューを自動的に見つけ、クエリSQLに応答する最適なマテリアライズドビューを選択できます。
この機能は実行時計算を削減することでクエリパフォーマンスを大幅に向上させることができます。また、ビジネスが意識することなく透明リライトを通じてマテリアライズドビューのデータにアクセスできます。詳細はマテリアライズドビュードキュメントを参照してください。
マルチソース連合分析
Dorisは統一SQLクエリエンジンとして機能し、異なるデータソースを接続して連合分析を行い、データサイロを解決します。

ユーザーはDorisで複数のカタログを動的に作成して異なるデータソースに接続できます。SQL文を使用して異なるデータソースからのデータに対して任意の結合クエリを実行できます。詳細はカタログ 概要を参照してください。
レイクハウスデータ処理
このシナリオでは、Dorisはデータ処理エンジンとして機能し、レイクハウスデータを処理します。

タスクスケジューリング
DorisはJob Scheduler機能を導入し、効率的で柔軟なタスクスケジューリングを可能にし、外部システムへの依存を削減します。データソースコネクターと組み合わせることで、ユーザーは外部データの定期処理と格納を実現できます。詳細はJob Schedulerを参照してください。
データモデリング
ユーザーは通常、生データを格納するためにデータレイクを使用し、これに基づいて階層化データ処理を実行し、異なる層のデータを異なるビジネスニーズで利用可能にします。Dorisのマテリアライズドビュー機能は外部データソースに対するマテリアライズドビューの作成をサポートし、マテリアライズドビューに基づいたさらなる処理をサポートし、システムの複雑さを軽減してデータ処理効率を向上させます。
データ書き戻し
データ書き戻し機能はDorisのレイクハウスデータ処理機能のクローズドループを形成します。ユーザーはDorisを通じて外部データソースでデータベースとTableを直接作成し、データを書き込むことができます。現在、JDBC、Hive、Icebergデータソースがサポートされており、将来的にはより多くのデータソースが追加される予定です。詳細は対応するデータソースのドキュメントを参照してください。