Hologres(中国語名:Interactive Analysis)は、Alibaba Cloud が開発したワンストップのリアルタイム データ ウェアハウスです。このクラウドネイティブ システムは、リアルタイム サービスとビッグ データ分析シナリオを統合します。 PostgreSQL プロトコルと完全に互換性があり、ビッグデータ エコシステムにシームレスに接続されます。同じデータ アーキテクチャを使用して、リアルタイム書き込み、リアルタイム クエリ、リアルタイム オフライン フェデレーション分析をサポートできます。その出現により、ビジネス アーキテクチャが簡素化されると同時に、ビジネスにリアルタイムの意思決定機能が提供され、ビッグ データがより大きな商業的価値を発揮できるようになります。アリババグループの誕生からクラウドでの商用化に至るまで、ビジネスの発展とテクノロジーの進化に伴い、Hologres もコアテクノロジーの競争力を継続的に最適化してきました。 Hologres についてより多くの方に知っていただくために、高性能ストレージ エンジンから高効率クエリ エンジン、高スループット書き込みから高 QPS クエリなど、Hologres の基盤となる技術原理シリーズを継続的に公開し、あらゆる側面から Hologres を解釈していく予定です。引き続きご注目ください! 今回は、Hologres の高性能ネイティブ高速クエリ MaxCompute の技術的原理を分析します。 データ収集方法が充実し、業界データが大量に蓄積されるにつれて、データ規模は従来のソフトウェア業界では耐えられないほどの大量データ(TB、PB、EB)のレベルにまで成長しました。こうして、MaxCompute (旧称 ODPS) が誕生しました。バッチ構造化データの保存と計算に取り組んでおり、大規模なデータ ウェアハウス ソリューションと分析およびモデリング サービスを提供しています。これは、高速で完全に管理された EB レベルのデータ ウェアハウス ソリューションです。 Hologres は、オフラインのビッグ データ シナリオで MaxCompute と自然かつシームレスに統合されます。データをインポートまたはエクスポートせずに、MaxCompute クエリを高速化できます。さまざまな MaxCompute ファイル形式へのアクセスと完全に互換性があり、PB レベルのオフライン データのミリ秒レベルのインタラクティブな分析を実装します。これらすべては、Hologres の背後にある実行プログラム SQE (S クエリ エンジン) と切り離せません。 SQE は MaxCompute へのネイティブ アクセスを実装し、それを Hologres の高性能分散実行エンジン HQE の処理と組み合わせて究極のパフォーマンスを実現します。 Hologres は、次の利点により MaxCompute のクエリを高速化します。 高性能: MaxCompute データは、1 秒未満のクエリ パフォーマンスで直接高速化してクエリできます。 OLAP シナリオでは、アドホック クエリを直接実行できるため、ほとんどのレポート作成やその他の分析シナリオのニーズを満たすことができます。 SQEアーキテクチャの紹介 上の図に示すように、これが SQE の全体的なアーキテクチャです。全体のアーキテクチャも非常にシンプルであることがわかります。 MaxCompute データは Pangu に均一に保存されます。 Hologres が MaxCompute データのクエリを高速化するためにクエリを実行すると、Hologres 側では次の処理が行われます。 Hologres フロントエンドは、RPC を介して SQE マスターからメタ情報およびその他の関連情報を要求します。 MaxCompute 外部テーブルエンジンのコア技術革新 SQE アーキテクチャは、主に次の技術革新の利点に基づいて、MaxCompute データの高性能な高速クエリを可能にします。 1) 抽象的な分散表示 Hologres は、MaxCompute の分散機能を組み合わせて、分散外部テーブルを抽象化し、MaxCompute 分散データへのアクセスをサポートします。現在、クラスター全体にわたる MaxCompute 分散 Pangu ファイルへのアクセスと、最も近い MaxCompute コンピューティング クラスターに基づく読み取りをサポートしています。 2) MaxCompute Metaとのシームレスな相互運用性、バージョンによるメタデータのキャッシュをサポート SQE と MaxCompute の Meta はシームレスに相互運用し、Meta と Data のリアルタイム取得を可能にします。これは、外部スキーマのインポート コマンドを通じて、MaxCompute メタデータを Hologres の外部テーブルに自動的に同期することをサポートし、外部テーブルの自動作成と構造の自動更新を実装します。 3) UDF/式プッシュダウンをサポート SQE は、UDF/式のプッシュダウンをサポートすることで、ユーザー定義の UDF 計算を実装します。式をプッシュダウンすると、無駄なデータ転送によって発生するオーバーヘッドが削減され、パフォーマンスがさらに向上します。 4) 非同期ORCリーダー、非同期プリフェッチ 現在、MaxCompute のデータのほとんどは ORC 形式です。 Hologres V0.10 以降では、Hologres の実行エンジンが更新され、非同期リーダーを使用して非同期読み取りの効率が向上し、非同期プリフェッチがサポートされて読み取りの待ち時間もさらに短縮されました。さらに、Hologres は、IO マージ、LazyRead、Lazy Decoding などの一連の最適化テクノロジをサポートしており、クエリ全体の IO レイテンシを削減して究極のパフォーマンスを実現します。 5) ブロックキャッシュをサポート 毎回ファイルからデータを取得するために IO を使用するのを避けるために、SQE は BlockCache を使用して頻繁に使用されるデータと最近使用されたデータをメモリに保存し、不要な IO を削減して読み取りパフォーマンスを高速化します。同じノードでは、同じアクセスされたデータが、一貫性のあるハッシュを通じてブロック キャッシュを共有します。たとえば、スキャン シナリオでは、パフォーマンスが 2 倍以上向上し、クエリ パフォーマンスが大幅に向上します。 6) スケジューリングのオーバーヘッドを削減するための常駐プロセス 従来のプロセス モデルやその他のアーキテクチャでは、動的プロセス作成やリアルタイム プロセス作成などのスケジューリング操作が必要であり、大きなスケジューリング オーバーヘッドが発生します。 SQE は、不要なスケジューリングのオーバーヘッドを回避するために常駐プロセス モードを採用しています。さらに、ブロックキャッシュのヒット率と有効利用率を大幅に向上させることができます。 7) ディスクオーバーヘッドを削減するためのネットワークシャッフル ネットワーク シャッフルでは、高速かつ安定したフォールト トレラント メカニズムを提供する必要があります。ネットワーク シャッフルでは、データ シャッフルを完了するために、送信プロセスと受信プロセスの両方が同時に稼働していることを確認する必要があります。同様に、ディスクにフラッシュする従来の方法を使用して Network Shuffle を再試行すると、安定性は保証されますが、再試行プロセス中のディスク IO によりパフォーマンスのオーバーヘッドが大きく発生する可能性があります。この問題を解決するために、段階的なスケジューリングを最適化し、高速かつ安定したフォールト トレランスの問題を解決しました。 MaxCompute 外部エンジンが HQE にアップグレードされました 前述のように、MaxCompute 外部テーブルのクエリを高速化するために SQE を使用します。 SQE クエリのパフォーマンスは非常に優れていますが、Hologres と対話するときには、中間に RPC 対話のレイヤーが存在します。データ量が多い場合、ネットワークに一定のボトルネックが発生します。 そのため、Hologres の既存の機能に基づいて、Hologres V0.10 以降の実行エンジンを最適化し、Hologres HQE クエリ エンジンが MaxCompute テーブルを直接読み取ることをサポートしました。これにより、SQE 読み取りと比較してパフォーマンスが 30% 以上向上します。 これは主に以下の点によるものです。 1) SQE と Hologres 間の RPC 対話が節約されます。これは、1 つのデータ シリアル化とデシリアル化を節約することと同等であり、パフォーマンスがさらに向上します。 2) Hologres のブロック キャッシュを再利用できるため、2 番目のクエリはストレージにアクセスする必要がなくなり、ストレージ IO を回避し、メモリから直接データにアクセスして、クエリの速度を向上させることができます。 3) 既存のフィルター プッシュダウン機能を再利用して、処理する必要があるデータの量を削減できます。 4) スキャンのパフォーマンスをさらに高速化するために、基盤となる IO 層で事前読み取りとキャッシュが実装されています。 以下は、顧客の実際のオンライン ビジネス クエリのパフォーマンス データです。 817 個の SQL ステートメントが実行され、全体的なパフォーマンスが 70% 向上し、長いクエリでは 80% 以上向上しました。 注: この最適化は Hologres V0.10 で開始されました。ドキュメントを表示するにはクリックしてください。 MaxCompute アクセラレーション シナリオの選択 Hologres で MaxCompute クエリを高速化する方法には 2 つあります。 1) 外部テーブルを作成します (データは引き続き MaxCompute に保存されます)。 MaxCompute でクエリを実行する場合よりもパフォーマンスが 2 ~ 5 倍向上します。 2) 内部テーブルをインポートすると、外部テーブルに比べてパフォーマンスが約10~100倍向上します。 外部テーブルを作成する原理は、PostgreSQL の外部データ ラッパーであり、外部アクセス インターフェイスを介して外部に保存されたデータにアクセスします。外部テーブルを作成するには、より便利な IMPORT FOREIGN SCHEMA メソッドを使用することをお勧めします。これにより、メタデータの同期が簡素化され、フィールド タイプのマッピングについて心配する必要がなくなります。 外部テーブル結合を直接作成する方法は、実際にはクエリ エンジンの最適化機能を利用して効率を向上させますが、Hologres のインデックス作成機能は利用しません。したがって、外部テーブルを内部テーブルにインポートするときに、クエリ方法に応じて内部テーブルのインデックス構造を指定し、これらのインデックス機能を使用して、より高いクエリパフォーマンスを実現できます。このため、外部テーブルを内部テーブルにインポートすると内部テーブルのパフォーマンスが向上し、データ ウェアハウスのインデックス最適化機能を最大限に活用できます。 これら 2 つの方法の主な比較は次のとおりです。 上記の比較から次のことがわかります。 大量のデータがあり、高いパフォーマンス要件 (100 ミリ秒以内など) があり、クエリのレイテンシに敏感で、クエリに SLA 要件がある場合は、クエリ アクセス用にデータを Hologres 内部テーブルにインポートすることをお勧めします。 MaxComputeとHologresの組み合わせ 上記では、Hologres 外部テーブル クエリ エンジンが MaxCompute クエリを高速化する方法についてのさまざまなシナリオについて説明しましたが、これはすべての種類のクエリが Hologres 外部テーブル エンジンでの実行に適していることを意味するものではありません。 Hologres は、インタラクティブな分析シナリオ向けに設計された同期クエリ エンジンです。これは、ビッグデータ入力とスモールデータ出力のシナリオを対象としており、通常はサービス提供および分析のシナリオで使用されます。 MaxCompute は、大規模なデータ処理シナリオ向けに設計された非同期データ処理エンジンです。これは、ビッグデータの入出力を伴うシナリオを対象としており、通常は ETL シナリオで使用されます。 ETL シナリオでは、ジョブは非同期に送信され、IO インターフェイスはスキャン用に最適化され、コンピューティング プロセスでは高可用性をサポートするために冗長ノード設計が必要であり、障害が発生した場合に自動的に再試行できるようにコンピューティング ステータスをディスクに書き込む必要があります。これらはHologresにはない機能です。したがって、MaxCompute と Hologres を組み合わせることで、データ処理とサービスのワンストップ エクスペリエンスが形成され、データの分離と冗長性が削減され、ビッグ データ ウェアハウスに合理的なソリューション アーキテクチャが提供され、リアルタイムのオフライン統合開発エクスペリエンスがサポートされます。 要約する Hologres は、SQE と MaxCompute の緊密な統合を通じて、Hologres と MaxCompute の利点を最大限に活用します。究極のパフォーマンスを目標とし、MaxCompute データのクエリを直接加速し、ユーザーがより便利かつ効率的にインタラクティブな分析を実行できるようにします。同時に、分析コストも大幅に削減され、オフライン データ ウェアハウス サービスの統合も実現します。 |
<<: CIO Timesと工業情報化部標準化研究所が共同で新創システム認証トレーニングを開始
>>: プライベート クラウドは完璧ではありません。安全に展開するためにはこれらの点に注意してください。
現在、オンライン マーケティングでは、イベント マーケティングとアクティビティ マーケティングがます...
5G 時代の到来により、リアルタイムのオーディオおよびビデオ技術がまったく新しいレベルに上がることは...
SEO とは何ですか? Baidu の公式回答を使用して説明します: SEO (Search Eng...
宝くじサイトに記事を投稿していたとき、このことを深く理解しました。多くのサイトでは宝くじをセンシティ...
パブリック クラウドのオンデマンド価格モデルは、クラウド コンピューティングの主な利点であるアプリケ...
ウェブサイトの SEO を改善するには、まずドメイン名から始める必要があります。ドメイン名は短いもの...
【iTianxia.comからのお知らせ】Dapuはコストパフォーマンスに優れたインナーテキスタイル...
このほど、百芸メディア(DOIT)が主催する2020年度「百芸賞」の受賞者が正式に発表された。 Sa...
香港のダイナミック IP VPS、台湾のダイナミック IP VPS、米国のダイナミック IP VPS...
今年初めの SEO で最もホットな話題は、Baidu が Baidu Sharing Tool を正...
A5ウェブマスターネットワークは11月26日に次のように報告した。「一定期間の内部テストを経て、Ba...
Docker コンテナは現代のアプリケーションの開発と展開において重要な役割を果たしますが、コンテナ...
「私にとって最も辛いのは、廃棄される在庫1000万相当の契約を自らの手で締結したことだ」と、すでに破...
北京時間6月4日、海外メディアの報道によると、米国の位置情報広告サービスおよびマーケティング会社Th...
みなさんこんにちは。私は魏東東です。久しぶりに真面目に記事を書きました。今日は気分が落ち込んでいるの...