列ストア インデックス (デナリ CTP3 機能) について学習していて、データ圧縮に VertiPaq アーキテクチャが使用されていることを知りました。それが何であるか、どのように機能するか、それがアーキテクチャであることを知りたいと思いました。Google で確認しましたが、満足のいく結果は得られませんでした。それが何であるか、どのように機能するか、これの背後にあるアルゴリズム/アーキテクチャなど、詳細を教えてください。
そして、それがデータ圧縮にどのように役立つか
列ストア インデックス (デナリ CTP3 機能) について学習していて、データ圧縮に VertiPaq アーキテクチャが使用されていることを知りました。それが何であるか、どのように機能するか、それがアーキテクチャであることを知りたいと思いました。Google で確認しましたが、満足のいく結果は得られませんでした。それが何であるか、どのように機能するか、これの背後にあるアルゴリズム/アーキテクチャなど、詳細を教えてください。
そして、それがデータ圧縮にどのように役立つか
列ストア インデックスに関する質問に答えてくれることを願って、これに関するブログ記事を書きました 。 -プロジェクト-アポロ/
ご不明な点がございましたら、お気軽にお問い合わせください。
そして、それがデータ圧縮にどのように役立つか
多くの場合、同じ列のデータはあまり変わらないため、圧縮部分は非常にうまく機能します。たとえば (単純化して) 複数 (4) 選択入力からの値を格納する列を想像してみてください。テーブルに 800 万のレコードがある場合でも、列ストアには 4 つの一意の値しかありません。これにより、列の値を圧縮しやすくなります。これにより、インデックスをメモリに収めやすくなり、クエリが高速になります。
データを列単位で格納すると、多くの場合、行単位で格納するよりも効果的にデータを圧縮できます。通常、列内は行内よりも冗長性が高くなります。これは通常、データをより高度に圧縮できることを意味します。データがより圧縮されると、データをメモリにフェッチするために必要な IO が少なくなります。さらに、データの大部分を特定のサイズのメモリに格納できます。IO を減らすと、クエリの応答時間が大幅に短縮されます。作業中のデータ セットをより多くメモリに保持すると、同じデータにアクセスする後続のクエリの応答時間が短縮されます。