腾讯雲データ倉庫ClickHouse評価: 大データ時代の「超走」は、いったいうまく使えないのか?
大量のデータとぶつかっているバックエンド開発、DBA、データアナリストなら、聞いたことがあるでしょう
ClickHouse
の大名です。
オープンソースのビッグデータの分野では、これはまさに神話的な存在です。シングルマシンの性能は伝統的なデータベースの数十倍を転圧し、百億級のデータは秒級の応答を分析します。使用した人は、それを見ると、街を走るのを見るように恨みを晴らすと言っている。
しかし、オープンソースのClickHouseの「困ったこと」は業界でも有名で、運送次元が非常に複雑で、配置パラメータが牛毛のようで、分散クラスタの拡張が少し油断して崩壊した。これも多くの中小企業を落胆させました。
このペインポイントを解決するために、テンセント雲が発売されました。
クラウドデータベースClickHouse(CDCH)
。白といえば、腾讯の専門家がオープンソースのClickHouseの下層の汚い仕事を全部やってくれて、すぐに使えるクラウドサービスにカプセル化してくれた。
今日、私たちは実際の開発者の視点に立って、腾讯雲のClickHouseに対して全方位的な深さ評価を行った。公式説明書式の羅列をしないで、ただ干物を話したり、痛い点を話したり、口語を話したりします。
一、ClickHouseはどうしてこんなに速いですか?(白科普)
腾讯雲の製品を評価する前に、私たちはまず1分かけて話をします。ClickHouseが速く走る基礎的な論理は何ですか
従来のリレーショナルデータベース (MySQLなど) は
行型ストレージ
。すべてのユーザーの平均年齢を調べるには、MySQLはすべてのユーザーの行データ (名前、パスワード、住所、年齢…) をハードディスクから読み取らなければならないさらに年齢を取って計算します。白菜を買うために、料理市場全体を一度に見なければならず、IO (ハードディスクの読み書き) が直接爆発したようなものだ。
一方、クリックハウスは典型的な
カラムストレージ
。
「名前」「年齢」という列を個別に分解して保存します。平均年齢を計算しますか?はい、「年齢」という列のデータを直接読んで、他の列は触らない。
それにCPUの
SIMD (シングル命令マルチデータストリーム)
命令セットは極限まで圧迫され、物理レベルの並列計算を実現した。このような枠組みは生まれつき
OLAP (オンライン分析処理)
、大量ログ分析とBIレポートが生まれた。
二、腾讯雲ClickHouse評価: 何を解決してくれたのか?
オープンソースが強くなった以上、なぜテンセント雲を使うのか?私たちはコンソールで一連のクラスタを開設して、深く体験した。以下のいくつかの次元の表現が最も印象的である
1.輸送の難しさ: 「地獄モード」から「ワンボタンバカ」に下がる
オープンソースのClickHouseをプレイしたことがある人は、その分散クラスタがZooKeeperに依存してメタデータの同期と一貫性のあるコラボレーションをしていることを知っています。当データ量
非常に大きい時、ZooKeeperはしばしば鎖を落とし、それが詰まってしまうと、ClickHouseクラスタ全体が麻痺する。
テンセント雲の解法: テンセント雲は完全にホストされた枠組みを提供し、基礎はZooKeeperに対して深い最適化と隔離を行った。
実際の体験: コンソールでクラスタを作成するには、構成 (数コア数G、数ノード) を選択するだけで、数分以内に分散クラスタ全体が構築されます。コピー同期、スライスルールなどの複雑な基礎的な配置は、腾讯雲が初期化された時にベストプラクティスを完成させた。何百行ものXMLプロファイルを見に行く必要はありません。運送業者の無数の髪を生き返らせました。
2.拡張と柔軟性: 夜更かししてデータを移動する必要がなくなった
オープンソースのClickHouseの最大の歴史的負担は
本当の弾縮には対応していません
。「コンピューティングとストレージの結合」の枠組みなので、ハードディスクがいっぱいになったら、手動でプロファイルを変更する必要がありますスクリプトを書いて古い機械の物理データスライス (Parts)人肉を新しい機械に移行して、プロセスは空中でエンジンを交換するよりも、ちょっと油断してデータがなくなった。
テンセント雲の解法: テンセント雲は柔軟な計算と計算の記憶の分離を実現しました。
実際の体験: 私たちのテストデータ量が急増したとき、コンソールで「構成の変更」をクリックすると、直接オンラインでノードを増やすか、クラウドディスクを拡張することができます。全体の過程で、データの再バランスは腾讯クラウドのバックグラウンドで自動的にスケジュールされ、ビジネスレベルのクエリはほとんど影響を受けていない。これだけで、チケットの値段に戻ります。
3.コンソールと可視化: ついにまともな「計器盤」ができた
オープンソースのClickHouseには、デフォルトで冷たいコマンドラインクライアントが1つしかありません。クラスタの現在のCPUがどれくらい走っているか見たいのですがどのクエリがメモリを押しつぶしたのですか申し訳ありませんが、自分でシステムテーブルを調べなければなりません
System.Processing
または自分でPrometheus Grafanaをセットします。
テンセント雲の解法: テンセント雲は非常に完備した監視総合株価とデータ管理サービスDMCを持っています。
実際の体験: コンソールにログインすると、クラスタのスループット、読み書き遅延、ディスクの占有が一目でわかります。一番いいのは遅いクエリ分析機能です。SQLが10秒走っても結果が出ない場合、コンソールはそれを直接つかんで、詳細な実行計画を示して、どのJoinにひっかかったのかを教えます。これは開発者がSQLを調整するのには神器である。
三、実戦シーン: 騰訊雲ClickHouseは何に最適ですか?
私たちの実際の業務評価では、次の3つの場面があり、ClickHouseは圧倒的な優位性を示している
シナリオ1: 大量ログと監査分析 (ELKを殺す)
以前はログ分析をしていたので、みんなが慣れている
ELKを使います。しかし、Elasticsearchは極めてメモリを食べ、膨張率が高い (100Gの原始ログが200Gになる可能性がある)。
ClickHouse戦績: 同じ数十億本のユーザー行動ログをClickHouseに入れて、それに合わせて1:5ないし1:10の超高データ圧縮率に達して、占有するハードディスクスペースはESの3分の1にも満たない。また、広範囲の集約データ (先月のあるインタフェースのエラー傾向を集計するなど) を調べると、ClickHouseはESより数倍速くなった。
シーン2: 広告配信と精密化運営 (人ごみサークル)
運営の学生は「過去7日間、Appを登録したことがあり、チャージ値が100元を超え、年齢が18歳から25歳の間の北京ユーザー」と常に要求を出している。
ClickHouse戦績: このようなラベル (Bitmap) に基づく多次元漏斗分析は、ClickHouseの得意な芝居である。その内蔵のbitmapAnd、bitmapOrなどの高級関数を利用して、百億級の人たちが選んで、数秒で結果が出て、運営のクラスメートはもう需要を上げるなどの翌日にデータを取る必要がなくなった。
四、腾讯雲ClickHouseの「コインの裏」: 初心者が避けなければならない穴
腾讯雲はそれをうまくカプセル化しているが、ClickHouseは結局ClickHouseで、その基礎的な「物理的特性」はそれが万能ではないことを決定した。初心者が使うときは、MySQLとして使わないでください。次のいくつかの雷区は避けなければなりません
「大量の暴飲暴食」が好きで、「少食多食」が嫌いです。1秒間に1000回、1回に1つのデータしか書かないと、ClickHouseバックグラウンドは狂ったようにデータを統合しますすぐにToo many partsの致命的なエラーが報告され、クラスタがハングアップします。真人の提案: 業務層でローカルキャッシュを作成するか、Kafkaを通じてバッチを蓄積し、ロットごとに少なくとも1万本以上を全体的に書き込まなければならない。
高合併のhdポイント照会が苦手です。ClickHouseは偏科の猛獣です。10億件のデータの合計を計算して、0.5秒で渡します。しかし、何万ものアプリを作って、ユーザーidに基づいて特定のユーザーの基本情報 (SELECT * FROM table WHERE id = 123) を調べたいなら逆にCPUをいっぱい食べます。真人の提案: このような高同時調査業務は、正直にRedisまたはMySQLを使う。
非常に限られた同時クエリ能力(Max)
Concurrent Queries):ClickHouseのデフォルトの同時クエリ数制限は100です。複雑なSQLは、後のすべてのCPUコアを完全に解放するからです。100人が複雑なレポート照会を同時に提出すると、クラスタはすぐに詰まってしまう。データアナリスト、運営、内部看板用に適しており、C側の数百万人のアクティブユーザーに直接呼び出してはいけない。
五、まとめと選定の提案
いくつかの深さを評価してみると、テンセント雲ClickHouse(CDCH) が人に与える全体的な感覚は次の通りである
瑕疵は瑜を隠さず、瑕疵はオープンソースの遺伝子にあり、瑜はテンセントで加工しています。
オープンソースのClickHouseがアドレナリンを急増させる究極のクエリ性能を継承すると同時に、クラウドのネイティブな管理手段を通じて最も非難される「運送難、拡張難、監視難」という三つの山を徹底的に移動した。
最後に選定のアドバイスをします
もしあなたのビジネスデータ量が千万級から億級を突破したら、伝統的なMySQLはレポートを数分間回して、しかも特別な大データ運送チームを養うために余分な予算がないでは、
直接テンセントに行きます。
。非常に低いハードウェアと人件費で、企業にビッグデータ時代の「推進感」を体験させることができます。
