Ana içeriğe geç

ClickHouse

Bu makalede

Bilgi

ClickHouse, OLAP sınıfı analitik sorguları yürütmek için tasarlanmış yüksek performanslı sütunlu bir veritabanı yönetim sistemidir (VTYS). VTYS, düşük gecikme süresiyle büyük veri hacimlerini analiz etmeye odaklanmıştır ve analitik, izleme, günlük kaydı ve telemetri işleme görevlerinde yaygın olarak kullanılmaktadır.

ClickHouse. Anahtar Özellikler

  • Sütunlu depolama: veriler satırlar yerine sütunlar halinde depolanır, bu da analitik sorgu yürütmeyi önemli ölçüde hızlandırır ve işlenen veri hacmini azaltır.
  • Yüksek performans: büyük veri kümelerini işlemek için optimize edilmiştir ve vektörleştirilmiş işleme ve verimli CPU kullanımı sayesinde milyarlarca satır üzerinde sorgu yürütebilir.
  • Veri sıkıştırma: özellikle analitik iş yükleri altında, depolanan veri miktarını önemli ölçüde azaltabilen (genellikle satır tabanlı VTYS'ye göre birkaç kat daha küçük) özel sıkıştırma algoritmaları kullanır.
  • SQL uyumluluğu: mevcut uygulamaların göçünü basitleştiren ek analitik fonksiyonlarla genişletilmiş SQL sözdizimini destekler.
  • Dağıtık işleme: yatay ölçeklendirme ve birden fazla sunucuda veri işleme için küme oluşturmayı sağlar.
  • Veri replikasyonu: hata toleransı ve yüksek veri kullanılabilirliği sağlamak için yerleşik replikasyon desteği.
  • Birden fazla veri formatı desteği: CSV, JSON, Parquet, Avro ve diğer formatlarda veri içe ve dışa aktarabilir.
  • Materialize edilmiş görünümler: tekrarlayan sorguları hızlandırmak için arka planda otomatik olarak veri toplar.
  • Harici kaynaklarla entegrasyon: MySQL, PostgreSQL, MongoDB, Kafka, S3 ve diğer sistemlerden doğrudan veri okumayı destekler.

Dağıtım Özellikleri

ID Yazılım Adı Uyumlu OS VM BM VGPU GPU Min CPU (Çekirdekler) Min RAM (GB) Min HDD/SSD (GB) Aktif
492 ClickHouse Ubuntu 24.04, Ubuntu 22.04 + + + + 4 8 120 SİPARİŞ VER
  • Yüklü yazılım:

    • ClickHouse Server >= 26.1.1
    • ClickHouse Client >= 26.1.1
  • Kurulum özellikleri:

    • Yazılım resmi geliştirici betiği aracılığıyla kurulmuştur;
    • Kurulum süresi: 5-10 dakika;
    • Veritabanı, çeşitli SQL istemcileri aracılığıyla ağ bağlantıları için kullanılabilir;
    • Varsayılan olarak root hesabından şifreyle default kullanıcısı kullanılır.

Yapılandırma ve veri dosyası konumları:

  • Ana sunucu yapılandırması: /etc/clickhouse-server/config.xml
  • Kullanıcı ayarları: /etc/clickhouse-server/users.xml
  • Sunucu günlükleri:
    • /var/log/clickhouse-server/clickhouse-server.log
    • /var/log/clickhouse-server/clickhouse-server.err.log
  • Veri: /var/lib/clickhouse/
  • PID dosyası: /run/clickhouse-server/clickhouse-server.pid
  • Sistem limitleri: /etc/security/limits.d/clickhouse.conf

Bağlantılar için mevcut portlar:

Port Protokol Amaç Durum İstemciler/Kullanım
8123 HTTP HTTP arayüzü Aktif DBeaver, DataGrip, Tableau, web arayüzü, JDBC/ODBC
9000 TCP Native ClickHouse yerel protokolü Aktif clickhouse-client, Python/Go sürücüleri
9004 MySQL MySQL protokol emülasyonu Aktif MySQL Workbench, mysql istemcisi
9005 PostgreSQL PostgreSQL protokol emülasyonu Aktif pgAdmin, psql istemcisi
9009 Interserver HTTP Sunucular arası replikasyon Aktif Küme içi iletişim
8443 HTTPS SSL ile HTTP arayüzü Opsiyonel SSL sertifikası yapılandırması gerektirir
9100 gRPC gRPC arayüzü Opsiyonel gRPC istemcileri

Not

8443 ve 9100 portları varsayılan olarak devre dışıdır ve /etc/clickhouse-server/config.xml dosyasında ek yapılandırma gerektirir.

Not

Aksi belirtilmedikçe, yazılımın en son sürümünü resmi geliştirici web sitesinden yükleriz.

ClickHouse Dağıtımından Sonra Başlangıç

Siparişin ödemesinden sonra kayıt sırasında belirtilen e-posta adresine sunucunun çalışmaya hazır olduğuna dair bir bildirim gönderilecektir. VPS'nin IP adresini ve bağlantı için kullanıcı adı ve şifreyi içerecektir. Şirketimizin müşterileri donanımı sunucu ve API kontrol panelinde yönetir - Invapi.

Yetkilendirme detayları:

  • Sunucu IP adresi: e-postada ve kontrol panelinde sağlanır;
  • Kullanıcı adı: default;
  • Şifre: root hesabının şifresiyle eşleşir ve e-posta adresine gönderilir.

Önemli

GUI istemcileri (DBeaver, DataGrip ve diğerleri) için port 8123 (HTTP arayüzü) kullanın. Port 9000 yalnızca yerel clickhouse-client için ayrılmıştır.

ClickHouse'a Bağlanma

Bağlantı Yöntemleri

Bu bölüm, clickhouse-client (komut satırı istemcisi) ve DBeaver (grafiksel arayüz) aracılığıyla ClickHouse'a bağlanmanın en yaygın yollarını açıklar. ClickHouse ayrıca diğer istemciler aracılığıyla bağlantıları destekler: DataGrip, Tableau, MySQL Workbench (port 9004 üzerinden), pgAdmin (port 9005 üzerinden) ve Python, Go, Java ve diğer diller için programlama kütüphaneleri.

clickhouse-client aracılığıyla bağlanma

ClickHouse, veritabanı işlemleri için yerel bir komut satırı istemcisi içerir.

1. Sunucudan bağlanma (yerel olarak):

clickhouse-client

2. Uzak bir makineden bağlanma:

clickhouse-client --host <IP-adresi> --port 9000 --user default --password <şifre>

3. Basit bir sorgu yürütme:

SELECT version();

4. Veritabanları listesini görüntüleme:

SHOW DATABASES;

DBeaver aracılığıyla bağlanma

DBeaver, ClickHouse dahil olmak üzere çeşitli veritabanlarıyla çalışmak için evrensel bir GUI istemcisidir.

1. DBeaver'ı yükleme

DBeaver'ı resmi web sitesinden indirin ve yükleyin.

2. Yeni bir bağlantı oluşturma

  • DBeaver'ı başlatın
  • Database >> New Database Connection seçin (veya Ctrl+Shift+N tuşlarına basın)

  • Veritabanı listesinde ClickHouse'u bulun ve seçin

  • Next düğmesine tıklayın

3. Bağlantı parametrelerini yapılandırma

Ayarlar penceresinde aşağıdaki parametreleri belirtin:

Host: <Sunucunuzun IP adresi>
Port: 8123
Database/Schema: (boş bırakın veya default belirtin)
Username: default
Password: <root_şifresi>

Son derece önemli

DBeaver bağlantıları için port 8123 kullanın.

4. JDBC sürücüsünü indirme

İlk kez bağlanırken, DBeaver ClickHouse için JDBC sürücüsünü indirmenizi isteyecektir:

  • Açılır pencerede Download düğmesine tıklayın:

  • Sürücünün indirilmesinin tamamlanmasını bekleyin:

  • OK düğmesine tıklayın

5. Bağlantıyı test etme

  • Test Connection düğmesine tıklayın;
  • Her şey doğru yapılandırılmışsa, bir mesaj görünecektir: Connected (XXX ms):

  • Mesaj şunları içerecektir:
  • Server: ClickHouse X.X.X.XXX
  • Driver: ClickHouse JDBC Driver X.X.X

6. Kurulumu tamamlama

  • Finish düğmesine tıklayın;
  • Bağlantı Database Navigator'da görünecektir;
  • Veritabanlarını, tabloları ve diğer nesneleri görüntülemek için bağlantı ağacını genişletin.

Yaygın sorunlar:

Hata Neden Çözüm
transport error: 400 8123 yerine port 9000 kullanıldı Port 8123'e değiştirin
Connection refused Yanlış IP veya güvenlik duvarı portu engelliyor IP adresini ve güvenlik duvarı kurallarını doğrulayın
Authentication failed Yanlış kullanıcı adı veya şifre Kimlik bilgilerini doğrulayın
Hostname is not specified SSH tüneli yanlışlıkla yapılandırma olmadan etkinleştirildi Bağlantı ayarlarında SSH sekmesini kapatın

ClickHouse Temel Operasyonla

Veritabanı oluşturma

CREATE DATABASE IF NOT EXISTS my_database;

Tablo oluşturma

CREATE TABLE my_database.events
(
    event_date Date,
    event_time DateTime,
    user_id UInt32,
    event_type String,
    value Float64
)
ENGINE = MergeTree()
PARTITION BY toYYYYMM(event_date)
ORDER BY (event_date, user_id);

Veri ekleme

INSERT INTO my_database.events VALUES
    ('2024-12-25', '2024-12-25 10:00:00', 1, 'click', 1.5),
    ('2024-12-25', '2024-12-25 10:05:00', 2, 'view', 2.3),
    ('2024-12-25', '2024-12-25 10:10:00', 1, 'purchase', 99.99);

Veri seçme

Basit sorgu:

SELECT * FROM my_database.events LIMIT 10;

Veri toplama:

SELECT 
    event_type,
    count() as events_count,
    avg(value) as avg_value
FROM my_database.events
WHERE event_date = '2024-12-25'
GROUP BY event_type;

Zaman serileri:

SELECT 
    toStartOfHour(event_time) as hour,
    count() as events_per_hour
FROM my_database.events
WHERE event_date >= '2024-12-01'
GROUP BY hour
ORDER BY hour;

CSV'den veri içe aktarma

Tablo oluşturma:

CREATE TABLE my_database.logs
(
    timestamp DateTime,
    level String,
    message String
)
ENGINE = MergeTree()
ORDER BY timestamp;

Veri içe aktarma:

INSERT INTO my_database.logs
FROM INFILE '/path/to/file.csv'
FORMAT CSV;

Kullanıcıları ve yetkileri yönetme

Kullanıcı oluşturma:

CREATE USER analyst IDENTIFIED BY 'secure_password';

İzin verme:

GRANT SELECT ON my_database.* TO analyst;

Kullanıcıları görüntüleme:

SHOW USERS;

Yetkileri görüntüleme:

SHOW GRANTS FOR analyst;

Servisi yönetme

Servisi başlatma:

clickhouse start

Servisi durdurma:

clickhouse stop

Servisi yeniden başlatma:

clickhouse restart

Servis durumu:

clickhouse status

Günlükleri görüntüleme:

tail -f /var/log/clickhouse-server/clickhouse-server.log

Not

Root kullanıcısı olarak çalışmıyorsanız, komutların önüne sudo ekleyin: sudo clickhouse start

Aktif portları kontrol etme

ClickHouse'un hangi portları dinlediğini görmek için:

ss -tlnp | grep clickhouse

Veya daha detaylı:

ss -tlnp | grep $(pidof clickhouse-server)

Yapılandırmada yapılandırılmış portları kontrol etmek için:

cat /etc/clickhouse-server/config.xml | grep -E "port>" | head -20

Belirli bir portu kontrol etmek için:

ss -tlnp | grep :8123

Beklenen port kontrol çıktısı:

LISTEN  *:8123  clickhouse-serv  (HTTP)
LISTEN  *:9000  clickhouse-serv  (Native TCP)
LISTEN  *:9004  clickhouse-serv  (MySQL)
LISTEN  *:9005  clickhouse-serv  (PostgreSQL)
LISTEN  *:9009  clickhouse-serv  (Interserver)

Not

ClickHouse yapılandırması ve optimizasyonu hakkında detaylı bilgi resmi geliştirici belgelerinde mevcuttur.

API kullanarak ClickHouse sunucusu siparişi

Bu yazılımı API kullanarak kurmak için bu talimatlara göz atın.


Bu sayfanın bazı içerikleri ya da yazıları AI tarafından oluşturulmuş veya çevrilmiş olabilir.