آموزش نصب و استفاده از ClickHouse در Ubuntu 20.04

مقدمه

ClickHouse یک پایگاه‌داده تحلیلی متن‌باز (Open Source)، ستون‌محور (Column-Oriented) است که توسط Yandex برای سناریوهای OLAP و Big Data توسعه داده شده است.

پشتیبانی ClickHouse از پردازش کوئری‌های بلادرنگ (Real-Time Query Processing) باعث می‌شود برای اپلیکیشن‌هایی که به نتایج تحلیلی در حد چند میلی‌ثانیه نیاز دارند، بسیار مناسب باشد.

زبان کوئری ClickHouse نوعی Dialect از SQL است که امکان نوشتن کوئری‌های Declarative قدرتمند را فراهم می‌کند و در عین حال برای کاربران آشنا با SQL، منحنی یادگیری کوتاهی دارد.


تفاوت پایگاه‌داده ستون‌محور با سطری

در پایگاه‌داده‌های Column-Oriented، داده‌ها بر اساس ستون‌ها ذخیره می‌شوند نه ردیف‌ها.

مزیت اصلی این ساختار این است که هنگام اجرای کوئری، فقط ستون‌های موردنیاز خوانده می‌شوند. بنابراین:

  • داده کمتری از دیسک خوانده می‌شود

  • سرعت پردازش افزایش پیدا می‌کند

  • برای workloadهای تحلیلی مثل OLAP بسیار سریع‌تر از سیستم‌های Row-Based عمل می‌کند


OLAP چیست؟

سیستم‌های Online Analytical Processing (OLAP) برای مدیریت حجم عظیمی از داده‌ها طراحی شده‌اند و می‌توانند کوئری‌های پیچیده را با سرعت بالا اجرا کنند.

ویژگی‌ها:

  • مدیریت داده در مقیاس پتابایت

  • پاسخ‌دهی سریع به کوئری‌های تحلیلی

  • مناسب برای Data Science و Business Analytics


در این آموزش چه می‌آموزید؟

در این راهنما شما:

  • ClickHouse Server و Client را نصب می‌کنید

  • دیتابیس و جدول ایجاد می‌کنید

  • داده درج، ویرایش و حذف می‌کنید

  • کوئری‌های تحلیلی اجرا می‌کنید

  • دسترسی ریموت را فعال می‌کنید

  • فایروال را تنظیم می‌کنید


مرحله ۱ — نصب ClickHouse

ابتدا وارد سرور شوید:

ssh sammy@your_server_ip

کلید GPG مخزن Yandex را اضافه کنید:

sudo apt-key adv –keyserver keyserver.ubuntu.com –recv E0C56BD4

مخزن را اضافه کنید:

echo “deb http://repo.yandex.ru/clickhouse/deb/stable/ main/” | sudo tee /etc/apt/sources.list.d/clickhouse.list

بسته‌ها را به‌روزرسانی کنید:

sudo apt update

نصب سرور و کلاینت:

sudo apt install clickhouse-server clickhouse-client

در هنگام نصب، از شما خواسته می‌شود برای کاربر پیش‌فرض رمز عبور تعیین کنید.


مرحله ۲ — اجرای سرویس

شروع سرویس:

sudo service clickhouse-server start

بررسی وضعیت:

sudo service clickhouse-server status

اگر Active: active (running) مشاهده کردید یعنی سرویس فعال است.


مرحله ۳ — ساخت دیتابیس و جدول

ورود به کلاینت:

clickhouse-client –password

ساخت دیتابیس:

CREATE DATABASE test;

استفاده از دیتابیس:

USE test;

ساخت جدول visits:

CREATE TABLE visits (
id UInt64,
duration Float64,
url String,
created DateTime
) ENGINE = MergeTree()
PRIMARY KEY id
ORDER BY id;

توضیح نوع داده‌ها

  • UInt64 → عدد صحیح بدون علامت

  • Float64 → عدد اعشاری

  • String → رشته متنی

  • DateTime → تاریخ و زمان

Engine چیست؟

Engine ساختار فیزیکی ذخیره‌سازی داده را مشخص می‌کند.
پرکاربردترین Engine: MergeTree

مزایا:

  • مناسب برای Production

  • پشتیبانی از Insertهای حجیم

  • پشتیبانی از Sorting و Partitioning


مرحله ۴ — درج، ویرایش و حذف داده

درج داده

INSERT INTO visits VALUES (1, 10.5, ‘http://example.com’, ‘2019-01-01 00:01:01’);

افزودن ستون

ALTER TABLE visits ADD COLUMN location String;

آپدیت گروهی

ALTER TABLE visits UPDATE url = ‘http://example2.com’ WHERE duration < 15;

توجه: ClickHouse از Update و Delete تک‌ردیفی پشتیبانی نمی‌کند. فقط عملیات Bulk انجام می‌دهد.

حذف داده

ALTER TABLE visits DELETE WHERE duration < 5;

حذف ستون

ALTER TABLE visits DROP COLUMN location;

مرحله ۵ — اجرای کوئری

Select ساده

SELECT url, duration FROM visits WHERE url = ‘http://example2.com’ LIMIT 2;

Aggregate Query

جمع کل زمان بازدید:

SELECT SUM(duration) FROM visits;

توابع تحلیلی اختصاصی

دو URL پرتکرار:

SELECT topK(2)(url) FROM visits;

توابع مهم:

  • count()

  • sum()

  • avg()

  • uniq()

  • topK()


مرحله ۶ — حذف جدول و دیتابیس

حذف جدول:

DROP TABLE visits;

حذف دیتابیس:

DROP DATABASE test;

مرحله ۷ — فعال‌سازی دسترسی ریموت (اختیاری)

ویرایش فایل کانفیگ:

sudo nano /etc/clickhouse-server/config.xml

این خط را فعال کنید:

<listen_host>0.0.0.0</listen_host>

ریستارت سرویس:

sudo service clickhouse-server restart

باز کردن پورت‌ها:

sudo ufw allow from second_server_ip/32 to any port 8123
sudo ufw allow from second_server_ip/32 to any port 9000

اتصال از سرور دوم:

clickhouse-client –host your_server_ip –password

جمع‌بندی

در این آموزش شما:

  • ClickHouse را نصب کردید

  • دیتابیس و جدول ساختید

  • داده درج، ویرایش و حذف کردید

  • کوئری تحلیلی اجرا کردید

  • دسترسی ریموت را فعال کردید

ClickHouse برای:

  • Big Data

  • تحلیل داده‌های حجیم

  • سیستم‌های Real-Time Analytics

  • پردازش توزیع‌شده

یک گزینه بسیار قدرتمند و سریع است.

از همراهی شما با  پارمین کلود سپاسگزاریم.

Click to rate this post!
[Total: 0 Average: 0]

نظرات کاربران

دیدگاهی بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *