データ分析エンジンが開花していますが、なぜClickHouseに多額の投資をする必要があるのでしょうか。

より技術的な交換、仕事の機会、およびトライアルのメリットについては、ByteDanceデータプラットフォームのWeChatパブリックアカウントに注意を払い、 [1]に返信して公式の交換グループに参加してください。

近年、OLAP製品の競争はますます激しくなっています。現在、ImpalaやGreenplumなどの前世代のより成熟したデータ分析製品だけでなく、新世代のClickHouse、Kylin、Druid、Dorisもあります。 、およびStarRocksは、さまざまなシナリオで独自の特性を備えています。分析エンジン。これらの製品にはそれぞれ独自の利点があります。ユーザーは、選択する際に各製品を包括的に理解する必要があります。また、自社に適した製品を正確に選択するには、最新バージョンに対応するための製品知識が必要です。

ByteDanceのDouyin、Toutiaoなどの製品は急速に成長しており、分析と処理が必要なデータも指数関数的に増加しており、リアルタイム分析の要件が非常に高くなっています。OLAPエンジンを選択する際、ByteはKylin、Druid、Sparkなども試し、他の製品についても広範な調査を行いました。継続的な試みと考察の結果、Bytesはパフォーマンス、安定性、再利用性の観点から検討し、最終的にByteDanceの広範なビジネス成長分析作業を実行するための主要な分析エンジンとしてClickHouseを選択しました。現在、ByteDanceのClickHouseノードの総数は18,000を超え、管理されるデータの総量は700PBを超え、最大のクラスター規模は2,400ノードを超えています。これは国内および世界でも最大のClickHouseユーザーの1つです。

ByteDanceのOLAPの進化

最初、最大の要件は「高速」だったので、バイトチームはミリ秒レベルのクエリ遅延を提供するという利点があるKylinを試しました。ただし、同時に、事前集計の必要性、事前にデータモデルを定義する必要性、インタラクティブな分析を実行できないなどの問題もあります。データ量が増えると、速度が低下します。結果を返します。次に、チームはSparkを使用して問題を解決したいと考えています。ただし、Sparkには、クエリ速度が十分に速くない、リソース使用率が高い、安定性が十分でない、データを長期間サポートできないなど、チームを悩ませている多くの問題もあります。

慎重に検討した結果、Byteは次の観点からOLAP分析エンジンを選択することを決定しました。

1つは、OLAPの非常にシンプルでシンプルな要件です。高可用性と強力なパフォーマンスです。OLAPにどれだけの再利用とIDが追加されても、コアおよび主要な要件は、十分なデータを格納し、十分に安定し、データを非常に迅速に見つけることです。これが最初の要件です。使いやすいこと、つまり、大量のデータの下での対話型分析のパフォーマンス要件を満たし、第2レベルの応答を実現することです。

2つ目は再利用です。チームは、使いやすさに基づいて、一連のテクノロジースタックを使用して、ほとんどまたはすべての問題を可能な限り解決することを望んでいます。これには、エンジンをカスタマイズできる必要があり、開発者はこのテクノロジーでさまざまなシナリオ指向のシナリオを構築できます。スタック。アプリケーション。

3つ目は使いやすさで、ユーザーはより自律的に製品を使用できます。

結局、当時市場に出回っていたさまざまなオープンソースエンジンを調査してテストした後、チームは最終的にClickHouseをOLAPクエリエンジンとして選択し、これに基づいて反復を開始しました。

 

ClickHouseの紹介

ClickHouseは、オンライン分析(OLAP)用の列型データベース管理システム(DBMS)です。2016年にオープンソースになり、その強力なパフォーマンスで知られています。列指向ストレージ、ベクトル化された実行エンジン、高い圧縮率、およびマルチコア並列コンピューティングの特性を備えています。

1.強力なパフォーマンス

最速のOLAPエンジンとして知られている、1億データ程度の同じサーバーのパフォーマンス比較は次のとおりです。

2.機能が豊富

ClickHouseは、データの統計分析のためのさまざまなシナリオをサポートしています。

  • SQLのようなクエリをサポートします。

  • 多くのライブラリ機能(IP変換、URL分析など、推定計算/ HyperLoglogなど)をサポートします。

  • 配列(Array)とネストされたデータ構造(Nested Data Structure)をサポートします。

  • データベースのジオレプリケーションの展開をサポートします。

3.高速データインポート速度

ClickHouseは、1秒あたり50〜200Mのオーダーの超高スループットのリアルタイム書き込み機能を備えた、大規模な並列コンピューティングフレームワークを使用しています。

ClickHouseはLSMTreeのような構造を採用しており、データが書き込まれた後、バックグラウンドで定期的に圧縮されます。ClickHouseは、LSMツリーのような構造により、すべてのデータを追加して順番に書き込み、書き込み後にデータセグメントを変更することはできません。バックグラウンド圧縮では、複数のセグメントがマージおよびソートされ、ディスクに順番に書き戻されます。シーケンシャル書き込み機能は、ディスクのスループット容量を最大限に活用します。

4.開発の良い見通し

2016年のオープンソース以来、ClickHouseは、他のトップインタラクティブ分析データベースの数倍のパフォーマンスで急速に成長しました。現在、ClickHouseはGithubで24.2Kのスターを獲得しており、1000人以上の貢献者がいます。

 

ClickHouseのデメリット

完璧なデータエンジンはありません。頻繁に使用する過程で、ByteはClickHouseのいくつかの欠点も発見しました。

1.相関クエリ能力が低い

ClickHouseの利点は、単一テーブルのクエリパフォーマンスにありますが、柔軟なクエリを必要とする一部のシナリオでは、ClickHouseの複数テーブルの関連付け機能の欠如が明らかになり、そのようなシナリオに対応することは困難です。

2.動物園の飼育係に依存

Zookeeperは主に、ClickHouseでのレプリカテーブルデータ(ReplicatedMergeTreeエンジン)と分散テーブル(分散)操作の同期に使用されます。ただし、Zookeeperを不適切に使用すると、ClickHouseクラスターが簡単に不安定になる可能性があります。

3.アップサートをサポートしていません

ClickHouseは、データのバッチ削除または変更のみをサポートします。ReplacingMergeTreeは、非同期で重複を削除するためにマージに依存する必要があります。

4.複雑な操作とメンテナンス

ClickHouseが拡大または縮小する場合、新しいテーブルを作成してデータを再度インポートするのは非常に不便です。ClickHouseクラスターは、クラスタートポロジの変更を自動的に検出することも、データのバランスを自動的にとることもできません。クラスター内のデータ量が多い場合、複製テーブルと分散テーブルが多すぎてテーブルのディメンションを達成しようとすると、クラスター間のデータバランスが高くなり、運用と保守のコストが高くなります。

詳細については、VolcanoEngineByteHouseの 公式ウェブサイトにジャンプして ください。 詳細については、ホワイトペーパー「ClickHouseからByteHouseへ」 をダウンロード してください〜

 

{{o.name}}
{{m.name}}

おすすめ

転載: my.oschina.net/u/5588928/blog/5553446