مقدمه
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
ابتدا وارد سرور شوید:
کلید GPG مخزن Yandex را اضافه کنید:
مخزن را اضافه کنید:
بستهها را بهروزرسانی کنید:
نصب سرور و کلاینت:
در هنگام نصب، از شما خواسته میشود برای کاربر پیشفرض رمز عبور تعیین کنید.
مرحله ۲ — اجرای سرویس
شروع سرویس:
بررسی وضعیت:
اگر Active: active (running) مشاهده کردید یعنی سرویس فعال است.
مرحله ۳ — ساخت دیتابیس و جدول
ورود به کلاینت:
ساخت دیتابیس:
استفاده از دیتابیس:
ساخت جدول 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
مرحله ۴ — درج، ویرایش و حذف داده
درج داده
افزودن ستون
آپدیت گروهی
توجه: ClickHouse از Update و Delete تکردیفی پشتیبانی نمیکند. فقط عملیات Bulk انجام میدهد.
حذف داده
حذف ستون
مرحله ۵ — اجرای کوئری
Select ساده
Aggregate Query
جمع کل زمان بازدید:
توابع تحلیلی اختصاصی
دو URL پرتکرار:
توابع مهم:
-
count()
-
sum()
-
avg()
-
uniq()
-
topK()
مرحله ۶ — حذف جدول و دیتابیس
حذف جدول:
حذف دیتابیس:
مرحله ۷ — فعالسازی دسترسی ریموت (اختیاری)
ویرایش فایل کانفیگ:
این خط را فعال کنید:
ریستارت سرویس:
باز کردن پورتها:
sudo ufw allow from second_server_ip/32 to any port 9000
اتصال از سرور دوم:
جمعبندی
در این آموزش شما:
-
ClickHouse را نصب کردید
-
دیتابیس و جدول ساختید
-
داده درج، ویرایش و حذف کردید
-
کوئری تحلیلی اجرا کردید
-
دسترسی ریموت را فعال کردید
ClickHouse برای:
-
Big Data
-
تحلیل دادههای حجیم
-
سیستمهای Real-Time Analytics
-
پردازش توزیعشده
یک گزینه بسیار قدرتمند و سریع است.
از همراهی شما با پارمین کلود سپاسگزاریم.
نظرات کاربران