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

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

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

便利なサービス移行
複数データソースの統合とレイクハウス変革の実現プロセスにおいて、システム間のSQLダイアレクトの構文と関数サポートの違いにより、SQLクエリのDorisへの移行は課題となります。適切な移行計画がなければ、ビジネス側は新しいシステムのSQL構文に適応するために大幅な修正が必要になる可能性があります。
最新のデプロイメントアーキテクチャ
バージョン3.0以降、Dorisはクラウドネイティブなcompute-storage separation architectureをサポートしています。このアーキテクチャは低コストと高い弾力性を特徴とし、リソース使用率を効果的に改善し、コンピュートとストレージの独立スケーリングを可能にします。

上図はDorisのコンピュート・ストレージ分離のシステムアーキテクチャを示しており、コンピュートとストレージを分離しています。コンピュートノードはもはやプライマリデータを保存せず、基盤の共有ストレージ層(HDFSとオブジェクトストレージ)が統一されたプライマリデータストレージ空間として機能し、コンピュートとストレージリソースの独立スケーリングをサポートします。コンピュート・ストレージ分離アーキテクチャは、レイクハウスソリューションに大きな利点をもたらします:
-
低コストストレージ: ストレージとコンピュートリソースを独立してスケールでき、企業はコンピュートリソースを増やすことなくストレージ容量を増加させることができます。さらに、クラウドオブジェクトストレージを使用することで、企業はより低いストレージコストとより高い可用性を享受でき、同時に比較的低い割合のホットデータのキャッシュにローカル高速ディスクを使用できます。
-
Single Source of Truth: すべてのデータが統一されたストレージ層に保存されるため、同じデータを異なるコンピュートクラスターがアクセス・処理でき、データの一貫性と整合性を保証し、データ同期と重複ストレージの複雑さを軽減します。
-
ワークロードの多様性: ユーザーは異なるワークロードのニーズに基づいてコンピュートリソースを動的に割り当てることができ、バッチ処理、リアルタイム分析、機械学習などの様々なアプリケーションシナリオをサポートします。ストレージとコンピュートを分離することで、企業はより柔軟にリソース使用を最適化し、異なる負荷下での効率的な運用を保証できます。
さらに、ストレージ・コンピュート結合アーキテクチャの下でも、elastic computing nodesを使用してレイクウェアハウスデータクエリシナリオで弾力的コンピューティング機能を提供できます。
オープン性
Dorisはオープンなレイクテーブルフォーマットへのアクセスをサポートするだけでなく、自身が保存するデータに対しても良好なオープン性を持っています。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内部テーブルフォーマットとして保存します。さらに、DorisのクエリオプティマイザーはSPJG(SELECT-PROJECT-JOIN-GROUP-BY)パターンに基づく透過的リライトアルゴリズムをサポートしています。このアルゴリズムはSQLの構造情報を分析し、透過的リライトに適したマテリアライズドビューを自動的に見つけ、クエリSQLに応答する最適なマテリアライズドビューを選択します。
この機能は、実行時の計算を削減することでクエリパフォーマンスを大幅に向上させることができます。また、ビジネスの認識なしに透過的リライトを通じてマテリアライズドビュー内のデータにアクセスすることも可能です。詳細については、Materialized Viewsドキュメントを参照してください。
マルチソース連合分析
Dorisは統一SQLクエリエンジンとして機能し、異なるデータソースを接続して連合分析を行い、データサイロの問題を解決できます。

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

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