REVIEW:ちょうどの話をするときに、柱状ストレージについて話をしたいと言うの「Apacheドルイド基礎となるストレージの設計。」今、あなたはオンラインストレージモード、列ストレージモード、彼らの長所と短所と知識のコラムストレージモードの最適化を学ぶことができ、この記事伝わってきます。
今日のモットー:DOは思考の一つの方法に限定されるものではなく、物事の多くの異なる寸法のためのより多くのコントラスト。
データストレージから起動します
データベースシステムとの私たちの最初の接触、ラインストレージシステムのほとんど。先生は、私たちは、データベースのテーブルを想像してみましょう大学学校データベース、各データレコードは、データの行で、データの各行は、いくつかの列が含まれています。だから我々は、もう少し複雑なフォームの管理システムであるほとんどのデータ保存用にと思いました。私たちは、データを1行ずつ書き、その後、私たちが望むの行をフィルタリングするための検索条件を押してください。
ほとんどの従来のリレーショナル・データベースは、行がデータを整理するように配向されています。MySQLの、Postgresqlのような。近年では、より多くの伝統的なデータベースには、保存された容量のリストに加わりました。列のストレージ技術は、十年前、決してこのように浮上しているが、人気の高いストレージ・団体になります。
行と列ストア、基礎となるデータベースのデータ編成。(そして、文書タイプなどのコンセプトKVタイプ、タイミング、タイプは、階層ではありません)
ラインストレージ
ストレージシステムをラインデータラインを整理する方法で。(大学の教員配置システムのトピック常にレッツ・インターネットはそれのBBSとの最初の接触であるためか、ブログシステムを行うに動作)は、次のブログのデータがあると仮定します。
[
{
"title": "Oriented Column Store",
"author": "Alex",
"publish_time": 1508423456,
"like_num": 1024
},{
"title": "Apache Druid",
"author": "Bob",
"publish_time": 1504423069,
"like_num": 10
},{
"title": "Algorithm",
"author": "Casey",
"publish_time": 1512523069,
"like_num": 16
}
]
ラインストアは、データがディスク上に格納されている次のようになります。私たちは、どのような店舗のに資するように、Aの方法を考えることができますか?(ここでは考えるように5秒を一時停止したときに)それはラインによって書き込みデータ線を助長している、既存のデータを単に追加したデータを後で記録することができ、データレコードを書き込みます。
OLTP(オンライントランザクション処理)システムのためのラインモード記憶。ライン上に格納されたデータなので、書き込みデータが速くので。クエリデータの印刷記録も簡単です。
ほとんどの学生は、私たちのシステムがこれを実行するために、それをしない、聞いてきますか?なぜ私は柱状ストレージ、および柱状のストレージが必要です、何ですか?
私たちはシナリオは今、ボブさんのブログをチェックしたくない想像してみましょう、私はボブのブログ、またはいくつかのポイント今日のブログのように、システム全体で公表統計したいと思います。ラインストレージシステムならば、データベースがどのように動作するのでしょうか?(10秒を考えるために一時停止)
図に示すように、ポイント数などのすべての統計情報のような、あなたの結果を得るために、like_numアクション列の合計を行い、その後メモリにすべてのデータの行を読み込み、最初に必要。我々は、ディスクは、(バイトを読み取るための実際の必要に応じて)を計算に必要な高分子N(N =データ量)ディスクアクセス時間をブロックの図3のデータを読み取ることができると仮定する。
多くの場合、大規模なデータセットを通じて集約統計データの需要に必要なこれはまれな行動OLAPシステムではありません。過去数年間、柱状ストレージが普及するようになった理由は、この要求に基づいて、私たちも理解することができます。データ、ビッグデータ、データ分析、である、需要OLAP(オンライン分析処理)のオンライン解析システムが増加しているので、書かれたレコード内のトランザクションデータとクエリデータはその心配はありません、データがフィルタリングすることを懸念している、統計。
カラムストア
同じことは、上記のサンプルデータは、我々はデータのどの組織の柱状のストレージを見ています。
[
{
"title": "Oriented Column Store",
"author": "Alex",
"publish_time": 1508423456,
"like_num": 1024
},{
"title": "Apache Druid",
"author": "Bob",
"publish_time": 1504423069,
"like_num": 10
},{
"title": "Algorithm",
"author": "Casey",
"publish_time": 1512523069,
"like_num": 16
}
]
示されるように、データ・ストレージ・カラム各カラム組織一緒。あなたはこの好意を何ができるかを考えてみて?(5秒の一時停止)
はい、私たちはすべてのlike_num統計合計を超える言ったように、列の操作を助長します。手順は以下の通りになります:
(実際にはバイトで読み取る)ディスクが3つのブロックのデータを読み取ることができると仮定します。組織は、データの列に格納されている方法を見ることができるように、1つだけのディスク動作を完了させることができます。
世界のプログラムが、我々は、選択した任意の傾向を学んだし、代償しています。時間のためのスペース、スペース、可用性、一貫性のバランスお互いをするための時間。また、欠点を持っている必要があり、列のストレージを選択します。データに反映まずが書かれています。
新しいデータが到着すると、各列は、対応する位置に格納する必要があります。これは、ディスクに複数回書き込むことが必要です。(もちろん、データベースは、データベースが別の場所に編成されている別の列のデータになり、状況「移動を動かす」真のフィギュア「スクイーズ」ではありません。、複数の書き込み操作を発行することにより、ストレージシステムのほとんどこのような場合の不足をもたらし減らすためにバッファ)
コントラスト
行ストア | カラムストア |
---|---|
データを1行ずつ書いて、読んで、そう頻繁には、データを読み取る際に、これらの不要な列を読む必要があるため | あなただけの必要な列を読み取ることができます |
記録によると、データを読み、書きやすいです | データの書き込みや読み取りのためのレコードが遅くなります |
OLTPシステムに適し | 適したOLAPシステム |
統計集計操作は、大規模なデータセットを助長されていません | データ集約操作の大規模なデータセットに資します |
これは、圧縮されたデータを助長されていません | 圧縮されたデータを助長します |
列のストレージの利点
ランクモードに基づいて、それが自然に次のような利点があります:
-
自動インデックス
列ベースのストレージので、その結果、各列は、インデックスそのものに相当します。だから、インデックスがこの列の適切なインデックスを作成するには、いくつかの操作を行うために追加のデータ構造を必要としないとき。
-
データ圧縮を促進します
二つの理由のための圧縮を助長します。あなたは、列のデータ・ベースのほとんどが実際に重複して、上記のデータを取り、それは同じ著者は、ブログの数を公開されますので、すべての値が表示され、列ベースの作者は確かに少ないブログの数よりもあることがわかります1、そう同じ列のデータ型を持つ第二に、一貫性のあるデータ構造の最適化と圧縮を充填するように導く、よりとり得る数値列のデータ型、カラムの格納された著者は、実際のデータのような大規模な量を格納するブログの必要数であります店に有利な圧縮アルゴリズム。
遂に
現在、多くの分析データベース内の列のストレージモードが一般的です。より多くの伝統的なラインストアデータベースはまた、OracleやSQL Serverなどの保存されたパターンのリストに参加し、分析データの需要が大幅に増加するので、特性が店舗を一覧表示されています。
Apacheのドルイド基礎となるデータストアを話す前に、カラムモードに基づいています。興味はで見ることができます。さらにHBaseのより代表的なモデル列を格納するデータベースです。基礎となるのHBaseとチャットする時間を持っていることは、データを格納する方法です。あなたはまた、(あなたも、あなたがデジタル列を圧縮することができる方法について考え始めることができます)デジタル列を圧縮について話すことができます。
シリーズ:
選択されたと時系列データベース(TSDB)知人
のApacheドルイド理解するための10分
基盤となるストレージの設計Apacheのドルイドを
Apacheのドルイドのクラスタのデザインとワークフローを
参考記事:
https://towardsdatascience.com/the-beauty-of-column-oriented-data-2945c0c9f560
https://dataschool.com/data-modeling-101/row-vs-column-oriented-databases/
より多くのデータストレージ関連の知識のために、私の公共の番号に注意してください。