麒麟シリーズは、(A) - はじめに

 
 
 
通常だけなので、この記事を書くために、原理を知らなくても、麒麟を使用しているため。ない彼のオリジナルの記事、多くの情報を見てブログの多くを確認し、彼自身の理解を持って、コレクションの本質の一部ということです。麒麟は、研究の概要を完了し、それを要約するために自分自身を考えました。最後に、あなたは自分自身を助けるために必要な、リンクがあります。
 
序文
エンタープライズクエリは、アドホッククエリとカスタムクエリの2種類に分けることができます。ハイブ、プレスト、SparkSQL、などのOLAPエンジンの多くは、主に成都には、データ分析の難しさを減らすことができますが、彼らは唯一のアドホッククエリシーンに適用されますが。しかし、データや計算の複雑成長の量と、応答時間は保証されません、実際には、これは、ビジネスのニーズに反して、データアナリストやビジネスの人々は、より良いビジネスを生成するために、データへのリアルタイムのフィードバックを必要とします指導。
大量のデータOLAPクエリを解決するためにどのよう麒麟生成。
麒麟は、SQLクエリ・インターフェース及び上記のHadoopの多次元分析(OLAP)機能を提供するオープンソース分散分析エンジンでは、麒麟がHadoopのプラットフォームに基づいていると言えます。
麒麟は、データによると、MapReduceの並列処理能力とスケーラブルなインフラストラクチャを最大限に活用しHadoopの分散コンピューティングプラットフォーム、大きなデータ容量の効率的な処理(実際には、直方体で麒麟はMapReduceのタスクに基づいている)の上に構築しましたスケールの実装アーキテクチャスケーラブルな。
プロセス:
-データソース(ハイブ、Kafla)
-計算値:MapRedueと建設キューブ
-ストレージ:HBaseの
- SQLクエリの解析:麒麟SQLパーサ
事前に計算されたモードを使用して麒麟は、ユーザーは単に、麒麟は、私たちが計算を実行するのに役立ちますクエリのディメンションを定義し進め、結果は膨大な量のデータを照会し、分析するためのサブ秒のリターンを提供するために、HBaseの中に保存されている、それは時間のためのスペースですソリューション。
実際には、寸法の全ての組み合わせの数に網羅的アプローチが関与している可能性が再び計数します。SQL分析の使用、かなり良い結果から、性能HBaseの抽出データの利点。
言及は、Apacheの麒麟は中国のトップレベルのApacheプロジェクト率いる最初です。
 
コアの概念
 
データウェアハウス
データウェアハウスはDW、すなわち、データ・ウェアハウスと呼ば、BIは、コア部です。メインは、ビジネスの意思決定支援やレポート作成のための多次元分析の方法によって、一緒に異なるデータソースからのデータを統合することです。
従来のデータ・ウェアハウス、データウェアハウスの使用が異なっています。伝統的なトランザクション指向のデータウェアハウス、分析、DW指向。その他の従来のデータベース事業はCRUDを含む、リアルタイム応答をすることですので、3パラダイムに従うことが必要である、ACIDが必要です。データウェアハウスのデータを、主に過去のデータは、主な目的は、ビジネス上の意思決定のためのサポートを提供するので、データの冗長性がたくさんあるかもしれないが、意思決定者のためのより多くの視野角を提供し、複数のディメンションを照会する助けとなります。
伝統的なBIは、データは、データウェアハウスのMysqlは、SQL Severの及び他のデータベースに格納され、共通データの大部分は、ハイブあります。また、ハイブ麒麟デフォルトのデータソース。
 
従来のカートリッジとデータウェアハウスの多数の数との差
従来のデータウェアハウスとビッグデータウェアハウスの間のこの区別を言及して渡します。なぜそれが大規模なデータウェアハウスでなければなりません。
:ここではいくつかの理由があります
。1.データソースの多様化
、元のデータソースがトランザクションからより多くのデータであってもよいが、含まれる:行動データ、財務データなど。
データの2急騰体積は
スタンドアローンオペレーションが満たすことができない、元のデータソースは、より簡単かもしれないが、多様なデータソースの後に、データ量が急増しました。このような処理の行動ログデータとしてニーズは、何の処理方法はありません。ハイブを使用した後、分散パーティション効果の効率をスピードアップするために使用することができます。
3.データ型
構造化データの問題を解決することができるビンの従来の数は、非構造化データは解決できませんでした。そして、データ・ウェアハウスの多数許容される非構造化データのHBaseは、ハイブ外部表を使用してデータを読み出します。
4.サーブ
位置の伝統的な数だけでなく群衆上記データウェアハウスの多数のために、エグゼクティブ、オペレーション、財務担当者に対してより特異的であってもよいが、そのような推薦システム、内部リスク管理システムのような様々なシステムのためのインタフェースデータを提供することができます。
処理速度
、データ・ウェアハウスの多くは、従来のカートリッジの数よりも分散計算効率を使用してアーキテクチャを分散、およびパフォーマンスを心配することなく、オンデマンドで動的に拡張することができます。
 
OLAPとOLTP
多次元分析、意思決定支援、およびいくつかの位置で、より使用に基づいて、OLAP(オンライン分析処理)をオンライン・トランザクション処理、。OLTP(オンラインtranscationプロセス)、オンライン・トランザクション処理、MySQLのような、従来に使用されるデータベースは、\オラクル\ SQLがデータを変更して再検索の単一の行を追加または削除するビジネス・フィードバック・システムに集中する、などを断ちます。
 
ディメンションと指標の
寸法はそのようなテーブルの注文など、観測データの角度を指し、寸法がように順序発生時刻、地域、製品カテゴリ、製品、とを有しています。
寸法は、一般に、日付などの離散的な値は、それぞれ別々の時間次元である、各領域の位置は、重合を算出し、一緒に同じ重合時間の統計的寸法を記録することができます。
統計情報が集約された値は、彼の販売量と販売量のための順序として、演算の結果である測定値であり、2回の測定値である値の統計的な集約のための必要性です。
 
ベースの寸法
これは、表示されたデータセット内のディメンションの異なる値の数を指します。
例えば、国は、200個の異なる値、ベース200の寸法がある場合、寸法です。
通常、ベース・ディメンションは、数十から数十など、何百万または数百万のさえ数十以上の「ユーザーID」ベースとして、個々の寸法の何千ものに変化します。
100万人以上のベース・ディメンションは、多くの場合、超高カーディナリティの寸法と呼ばれています。
超高ベースの複数のディメンションがある場合、ベースのすべての次元においてキューブは、キューブの複雑さを決定し、次いで、確率キューブ拡張が高くなります。
 
ファクトとディメンションテーブル
ファクトテーブル(factTable)は、各時間の特定の要素を含むファクトテーブルのレコード店、を参照し、システムの記録、販売記録や在庫レコードを特定として何が起こったのか。
ファクトテーブルのボリュームは、他のテーブルよりもはるかに大きいです。
ディメンションテーブル(DimensionTable)は、イベントのファクトテーブルの要素の説明です。
これは、ディメンション属性の値を保持している、あなたはファクトテーブルに関連付けることができます。ノルムの外にテーブルとして使用ファクトテーブル頻繁に繰り返し発生エキス、上のプロパティに相当します。
共通のディメンション表:日付(日付、対応する週、月の四半期の属性)、ロケーションテーブルは(国家、地方、州、市などが)。
給付ディメンション表:
-ファクトテーブルのサイズ減少し
、寸法を管理し、維持するために簡単にファクトテーブルへのディメンションテーブルへの変更は、多くの変更である必要はありません- 。
-ディメンション表には、複数のファクトテーブルのために再利用することができます。
方法は、その後、麒麟種は直接ディメンションテーブルとファクトテーブルのすべてに関連しているスターモデルを、使用しています。
 
スターモデル
スターモデルは、データマイニングのいくつかの種類の使用多次元データモデルです。彼はメインテーブルに関連付けられている外部キーによってのみつのテーブル、およびゼロまたはそれ以上のディメンション表、ファクトテーブルとディメンションテーブルは、ディメンションテーブルとの間に相関がないことを特徴とします。
(麒麟に、主キーは、関連するフィールドに参加することに加えて、唯一のディメンションテーブルとファクトテーブルであり、フィールドは同じディメンションテーブルを許可しない、寸法とディメンションテーブル間のフィールドが同じでないことに注意してください。事実とそして、関連するフィールドタイプが参加ディメンション表は同じでなければなりません。これは、キューブを構築するための時間である頻繁にエラーが発生しています。)
 
ディメンション表の設計で麒麟
麒麟のディメンション表は、一定の要件のためです。
データの一貫性を持っているために、主キー値は一意である必要があります。それは、それ以外の場合はエラーになり、ディメンション表内で一意である必要があり、列に関連付けられているディメンション表です。これは、その後の麒麟に記載されたエラーを解決します。
、可能な限り小さくディメンションテーブルディメンションテーブルは麒麟のを確認するためにメモリにロードされますので、デフォルトのしきい値は300メガバイトです。
多くの場合、クイック検索を作成するために、性的なディメンション表につながる低周波、頻繁に変更する場合は、各建物の中にスナップショットのディメンション表を再利用する麒麟の試み、再利用が失敗し、変更します。
ビューは、実際に論理的な構造であるため、実際には存在しない、ハイブのディメンションテーブルビューいけない、それぞれの使用は、時間の追加のオーバーヘッドが生じ、マテリアライズする必要があります。
 
キューブ和直方体
ディメンションや指標を理解するには、データモデルカテゴリーのすべてのフィールドを置くことができます:彼らはどちらかの寸法、どちらかの指標、無3番目のフィールドです。ディメンションとメジャーの定義によると、あなたは、キューブを構築することができます。
所与のデータモデルのため、我々缶N次元のために結合されたすべての寸法で、2種類のN乗の合計の可能性。すなわち、N次元立方体は、N次元の部分空間の立方体である、N個(N-1)次元サブキューブ、N *(N-1)/ 2番目の(N-2)次元サブキューブ... N 1次元サブキューブ0次元立方体サブ構成。実際には、順列と組み合わせ。
寸法の組み合わせごとに、それが重合操作の尺度となり、マテリアライズド・ビューの操作の結果を保存され、直方体と呼ばれます。全体としての寸法の全ての直方体の組み合わせは、キューブと呼ばれています。
例えば、寸法A、B、C、2 2 3の後、電源、即ち、8種類を想定します。
0次元0D:一種類の
寸法1D:[A] [B] [C]
二次元2D:[AB] [AC] 、[BC]
三次元の3D:[ABC]
SQL式計算直方体[A、B]
選択TABLE1のからA、B、合計(量)
A、Bによって基
、マテリアライズド・ビューのすべての一般的な用語の直方体が立方体であるマテリアライズド・ビューのように演算結果が格納されます。
 
麒麟の技術アーキテクチャ
特定のアーキテクチャの2件の組み込みオフラインとオンラインの問い合わせに分けることができますApacheの麒麟システムを以下に示します。

まず外観はオフライン部分を構築しました。フィギュア、左ビットデータソースからわかるように、電流源は麒麟ハイブのデフォルトのデータであり、利用者は、分析するデータを保持しています。メタデータの定義によれば、データ・ソースから抽出されたエンジンデータを構築し、キューブを作成し、データ入力リレーショナルテーブルの形で、及びスターモデルに沿いました。MapReduceのメインの建物の技術。右側のストレージエンジンを保存した後、キューブの建物は、現在の麒麟デフォルトのストレージエンジンは、HBaseのです。
オフラインの工事が完了した後、ユーザーは、クエリ分析の上からSQLクエリシステムを送ることができます。麒麟は、コールするユーザーのためのRESTfulなAPI、JDBC / ODBCインタフェースを提供します。インターフェースが入るから、どんなには、SQLは、最終的にはRESTサービス層を来て、その後の処理のためのクエリエンジンに転送されます。クエリエンジンはSQLを解析し、実行計画は、リレーショナル表のロジックに基づいて生成され、その後、キューブに基づいて物理的な実施計画に変換され、最終カウントは、クエリキューブを生成し、結果を生成することが期待されます。全体のプロセスは、元のデータソースにアクセスしません。利用者から提出されたクエリが麒麟で事前に定義されていない場合は、麒麟はエラーを返します。
これは、データ・ソース麒麟、キューブメモリ実行エンジンのことを言及する価値があり、3つのモジュールは任意に拡大と置き換えてもよいことを意味する抽象化層、のうちの3つのコアモジュールを抽出しました。
 
麒麟のコアモジュール
 
RESTサーバー
RESTサーバーは、アプリケーション開発のためのエントリポイントです。このようなアプリケーションはように、クエリを提供した結果を取得し、キューブビルドタスク、メタデータとユーザー権利へのアクセスをトリガし、することができます。またSQLクエリは、RESTfulな言い訳することによって達成することができます。
 
クエリーエンジン(クエリーエンジン)
キューブは、エンジンを照会する準備ができているときにユーザーのクエリを取得し、解決することができます。対応する戻りがユーザーに結果ように、彼はその後、システム内の他の成分と相互作用します。
 
ルーティング
SQLの生成は、キューブがでのHBaseをキャッシュすることにより、事前に計算され、キャッシュクエリーキューブへの分析と変換の実装計画を担当しています。
 
メタデータ管理ツール
麒麟は、メタデータ駆動型アプリケーションです。キューブのメタデータの最も重要なを含む管理の中麒麟に保存されているすべてのメタデータ、メタデータのための管理ツールXI重要な要素。他のすべてのコンポーネントの適切な機能は、管理ツールがベースであるメタデータに対する要求されています。麒麟のメタデータは、HBaseのに保存されています。
 
タスクエンジン(キューブ作成エンジン)
このエンジンは、その上のシェルスクリプト、Java APIおよびMapReduceのタスク、およびを含むすべてのオフラインタスクを、処理するように設計されています。タスクエンジンは、各タスクが効果的に実施することができ、トラブルシューティングが中に発生することを確実にすること、すべてのタスク麒麟の間で管理され、調整されます。
 
麒麟キューブ3つの構成
のは、キューブの構築についてお話しましょう。全体量の建設、インクリメンタルビルド、フロー構成:キューブ麒麟の建設が3分割しました。最も簡単なのは、すべてのハイブテーブルフルテーブルが構築構築、つまり、全額を構築することです。しかし、現実の世界で建物の全額は、一般的に、使用されていないほとんどのビジネスシナリオエビ、実際に構築するための最も一般的な方法で構築する増分であるので、データは常に、成長しているという事実のように。
ここで紹介する例は、全額を構築します。単一のトランザクション時間が2ヶ月であるため、例えば、家族関連データの連鎖が、そのようなパフォーマンス関連の売上高として、全体量を使用して構築されている必要があり、性能も変更されます、その後、単一真ん中にあっ変更することができます。それだけで全体の今年のパフォーマンスの全額全量、DMテーブルを構築するために使用することができます。しかし、大きさの範囲がより少なく、あまり圧力を制御します。全体として、これを達成するために、DMテーブルを制御することによって制御され、及びで麒麟にのみ新しいセグメントを保持します。
キューブは、このように大幅に建設コストの削減、各建物だけハイブテーブルの新しい部分のデータではなく、すべてのデータの増分ビルドを行うことができます。各セグメントの開始時間と終了時間を有するセグメント麒麟の複数にキューブは、識別されます。
インクリメンタルビルドは、建設の総量異なります。
あなたはセグメントに、モデルを作成し、日付フィールドを持つキューブをパーティションの日付列1を指定する必要があります。
 あなたは最初のセグメント2は、キューブを作成し、デフォルトがあるパーティションの開始日、開始時刻キューブを指定する必要があります。
あなたは記事を参照することができ
麒麟キューブ作成
麒麟キューブを構築し、ジョブ監視を
インクリメンタルは、ビジネスデータのダイナミックな成長の問題を解決する方法を構築します。彼らは導入のETLハイブのタイミング(例えば、一日一回)からのデータ、データソースとしてインクリメンタルビルドハイブを使用するので、しかし、数分の近実質リターン結果の需要を満たすことができません。データの適時性は、データ値の重要性は自明です。麒麟の流れが構築スキームを与えられました。
カフカストリームはカフカから構成データにエンジンタイミング引き込みを構築し、データソースとして使用して構築しました。これは、設計で、マイクロバッチは非常に多くのように思っストリーミングスパーク。1.6バージョンでそのストリーミングビルドの存在に注意してください。
麒麟は提供します:
-キューブは、Web UIインターフェースとRESTful APIを構築することができます
- / ODBCインタフェースのWeb UIインターフェースとRESTful APIとJDBCデータを照会することができます
ユーザーは、自分の状況に応じて構築し、クエリする適切な方法を選択することができます。
 
ブログの参照
基本的な導入麒麟
http://cxy7.com/articles/2018/06/09/1528544157772.html
https://www.jianshu.com/p/abd5e90ab051
http://www.liuhaihua.cn/archives/451581。 HTML
伝統的な倉庫の数とビッグデータプラットフォームの違い
https://blog.csdn.net/Gospelanswer/article/details/78208761
https://support.huaweicloud.com/dws_faq/dws_03_0005.html
米国InMonキンボールデータ・ウェアハウスのアーキテクチャ紛争
https://blog.csdn.net/paicMis/article/details/53236869
https://blog.csdn.net/yanshu2012/article/details/55254300
OLTPとOLAPプレゼンテーション
https://www.cnblogs.com/hhandbibi/p/7118740.html
 

おすすめ

転載: www.cnblogs.com/zzjhn/p/11525025.html