{"id":36747,"date":"2025-12-22T14:40:56","date_gmt":"2025-12-22T11:40:56","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36747"},"modified":"2025-12-22T14:40:56","modified_gmt":"2025-12-22T11:40:56","slug":"ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/","title":{"rendered":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131<\/h2>\n<p>B\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken, geleneksel ili\u015fkisel veritaban\u0131 y\u00f6netim sistemleri (RDBMS) genellikle performans s\u0131n\u0131rlar\u0131na ula\u015f\u0131r. \u00d6zellikle analitik sorgular, raporlama ve ger\u00e7ek zamanl\u0131 veri i\u015fleme gibi senaryolarda, s\u00fctun tabanl\u0131 veritabanlar\u0131 \u00f6nemli avantajlar sunar. Bu ba\u011flamda, Yandex taraf\u0131ndan geli\u015ftirilen ve a\u00e7\u0131k kaynak olarak sunulan ClickHouse, y\u00fcksek performansl\u0131 analitik sorgular i\u00e7in tasarlanm\u0131\u015f, s\u00fctun tabanl\u0131 bir OLAP (Online Analytical Processing) veritaban\u0131d\u0131r. Bu makalede, Ubuntu 18.04 i\u015fletim sistemi \u00fczerine ClickHouse&#8217;un nas\u0131l kurulaca\u011f\u0131n\u0131, temel yap\u0131land\u0131rmalar\u0131n\u0131 ve nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h3>ClickHouse Nedir?<\/h3>\n<p>ClickHouse, b\u00fcy\u00fck veri k\u00fcmeleri \u00fczerinde ultra h\u0131zl\u0131 analitik sorgular ger\u00e7ekle\u015ftirmek i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015f, a\u00e7\u0131k kaynakl\u0131, s\u00fctun tabanl\u0131 bir veritaban\u0131 y\u00f6netim sistemidir. Geleneksel sat\u0131r tabanl\u0131 veritabanlar\u0131n\u0131n aksine, ClickHouse verileri s\u00fctunlar halinde depolar. Bu yakla\u015f\u0131m, analitik sorgularda yaln\u0131zca ilgili s\u00fctunlar\u0131n okunmas\u0131n\u0131 sa\u011flayarak disk I\/O&#8217;sunu minimize eder ve sorgu performans\u0131n\u0131 dramatik \u015fekilde art\u0131r\u0131r. \u00d6zellikle petabaytlarca veriye sahip sistemlerde milisaniyeler i\u00e7inde sonu\u00e7lar d\u00f6nd\u00fcrebilme yetene\u011fiyle \u00f6ne \u00e7\u0131kar.<\/p>\n<p>ClickHouse&#8217;un temel \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>S\u00fctun Tabanl\u0131 Depolama:<\/strong> Verileri s\u00fctunlar halinde depolar, bu da analitik sorgularda y\u00fcksek s\u0131k\u0131\u015ft\u0131rma oranlar\u0131 ve h\u0131zl\u0131 okuma performans\u0131 sa\u011flar.<\/li>\n<li><strong>Y\u00fcksek Performans:<\/strong> Paralel i\u015fleme, vekt\u00f6rle\u015ftirilmi\u015f sorgu y\u00fcr\u00fctme ve geli\u015fmi\u015f indeksleme teknikleri sayesinde ola\u011fan\u00fcst\u00fc sorgu h\u0131zlar\u0131 sunar.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Yatay \u00f6l\u00e7eklenebilirli\u011fi destekler. Verileri birden fazla sunucuya (sharding) da\u011f\u0131tabilir ve replikasyon ile y\u00fcksek eri\u015filebilirlik sa\u011flayabilir.<\/li>\n<li><strong>SQL Uyumlulu\u011fu:<\/strong> Standart SQL&#8217;e yak\u0131n bir sorgu dili kullan\u0131r, bu da mevcut SQL bilgisine sahip geli\u015ftiriciler i\u00e7in \u00f6\u011frenme e\u011frisini azalt\u0131r.<\/li>\n<li><strong>\u00c7e\u015fitli Veri Tipleri:<\/strong> Say\u0131sal, metin, tarih\/saat, dizi, i\u00e7 i\u00e7e yap\u0131lar gibi zengin veri tiplerini destekler.<\/li>\n<li><strong>Ger\u00e7ek Zamanl\u0131 \u0130\u015fleme:<\/strong> Verileri an\u0131nda alabilir ve sorgulayabilir, bu da ger\u00e7ek zamanl\u0131 analitik uygulamalar i\u00e7in idealdir.<\/li>\n<li><strong>Esneklik:<\/strong> Farkl\u0131 tablo motorlar\u0131 (MergeTree ailesi, Log ailesi vb.) sunar, her biri belirli kullan\u0131m durumlar\u0131 i\u00e7in optimize edilmi\u015ftir.<\/li>\n<li><strong>A\u00e7\u0131k Kaynak:<\/strong> Apache 2.0 lisans\u0131 alt\u0131nda a\u00e7\u0131k kaynakl\u0131d\u0131r, geni\u015f bir topluluk deste\u011fine sahiptir.<\/li>\n<\/ul>\n<p>ClickHouse, genellikle web analizi, uygulama performans\u0131 izleme, a\u011f trafi\u011fi analizi, IoT veri i\u015fleme, finansal veri analizi gibi alanlarda kullan\u0131l\u0131r. B\u00fcy\u00fck \u00f6l\u00e7ekli olay g\u00fcnl\u00fcklerini, metrikleri veya i\u015flem verilerini analiz etmek isteyen her t\u00fcrl\u00fc i\u015fletme i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r.<\/p>\n<h3>Neden Ubuntu 18.04?<\/h3>\n<p>Ubuntu 18.04 LTS (Bionic Beaver), uzun s\u00fcreli destek (Long Term Support) sunan pop\u00fcler ve kararl\u0131 bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Kurulum ve yap\u0131land\u0131rma kolayl\u0131\u011f\u0131, geni\u015f paket deposu ve g\u00fc\u00e7l\u00fc topluluk deste\u011fi sayesinde sunucu ortamlar\u0131nda yayg\u0131n olarak tercih edilir. ClickHouse, bir\u00e7ok Linux da\u011f\u0131t\u0131m\u0131nda \u00e7al\u0131\u015fabilse de, Ubuntu 18.04, kararl\u0131 bir \u00fcretim ortam\u0131 kurmak i\u00e7in m\u00fckemmel bir se\u00e7imdir. Bu makaledeki ad\u0131mlar, bu \u00f6zel s\u00fcr\u00fcm i\u00e7in optimize edilmi\u015ftir, ancak benzer ad\u0131mlar di\u011fer Debian tabanl\u0131 sistemlerde de uygulanabilir.<\/p>\n<h3>Sistem Gereksinimleri<\/h3>\n<p>ClickHouse&#8217;un performans\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde donan\u0131m kaynaklar\u0131na ba\u011fl\u0131d\u0131r. \u00d6zellikle b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken, yeterli kaynak sa\u011flamak kritik \u00f6neme sahiptir.<\/p>\n<ul>\n<li><strong>\u0130\u015fletim Sistemi:<\/strong> Ubuntu 18.04 LTS (64-bit)<\/li>\n<li><strong>CPU:<\/strong> \u00c7ekirdek say\u0131s\u0131 ne kadar fazlaysa, paralel sorgu i\u015fleme o kadar verimli olur. En az 2-4 \u00e7ekirdek \u00f6nerilir, \u00fcretim ortamlar\u0131 i\u00e7in daha fazlas\u0131 tercih edilir.<\/li>\n<li><strong>RAM:<\/strong> ClickHouse, verileri \u00f6nbelle\u011fe almak ve sorgular\u0131 i\u015flemek i\u00e7in belle\u011fi yo\u011fun bir \u015fekilde kullan\u0131r. En az 8 GB RAM \u00f6nerilir, ancak i\u015flenecek veri boyutuna ve sorgu karma\u015f\u0131kl\u0131\u011f\u0131na ba\u011fl\u0131 olarak 32 GB veya daha fazlas\u0131 gerekebilir.<\/li>\n<li><strong>Disk:<\/strong> Y\u00fcksek h\u0131zl\u0131 depolama (NVMe SSD veya SAS SSD) \u015fiddetle tavsiye edilir. Geleneksel HDD&#8217;ler, ClickHouse&#8217;un okuma performans\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde d\u00fc\u015f\u00fcrebilir. Disk alan\u0131, depolanacak veri miktar\u0131na g\u00f6re belirlenmelidir. ClickHouse&#8217;un y\u00fcksek s\u0131k\u0131\u015ft\u0131rma oranlar\u0131 sayesinde, disk alan\u0131 ihtiyac\u0131 tahmin edilenden daha az olabilir.<\/li>\n<li><strong>A\u011f:<\/strong> Y\u00fcksek bant geni\u015fli\u011fine sahip bir a\u011f ba\u011flant\u0131s\u0131, \u00f6zellikle da\u011f\u0131t\u0131k sistemlerde veya b\u00fcy\u00fck veri y\u00fcklemelerinde \u00f6nemlidir.<\/li>\n<\/ul>\n<p>Bu makaledeki kurulum, minimum gereksinimleri kar\u015f\u0131layan bir sanal makine veya bulut sunucusu \u00fczerinde de \u00e7al\u0131\u015facakt\u0131r, ancak \u00fcretim ortamlar\u0131 i\u00e7in yukar\u0131daki \u00f6neriler dikkate al\u0131nmal\u0131d\u0131r.<\/p>\n<h3>Kurulum \u00d6ncesi Haz\u0131rl\u0131klar<\/h3>\n<p>ClickHouse kurulumuna ba\u015flamadan \u00f6nce sistemin g\u00fcncel oldu\u011fundan ve gerekli \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olmal\u0131y\u0131z.<\/p>\n<h4>Sistemi G\u00fcncelleme<\/h4>\n<p>\u00d6ncelikle sunucunuzdaki paket listelerini g\u00fcncelleyelim ve mevcut paketleri y\u00fckseltelim. Bu, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<h4>Gerekli Ba\u011f\u0131ml\u0131l\u0131klar\u0131 Kurma<\/h4>\n<p>ClickHouse&#8217;un d\u00fczg\u00fcn \u00e7al\u0131\u015fmas\u0131 i\u00e7in baz\u0131 temel ara\u00e7lara ve k\u00fct\u00fcphanelere ihtiyac\u0131m\u0131z olabilir. <code>apt-transport-https<\/code> paketi, HTTPS \u00fczerinden paket depolar\u0131na eri\u015fim i\u00e7in gereklidir.<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y apt-transport-https ca-certificates dirmngr<\/code><\/pre>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h4>\n<p>E\u011fer sunucunuzda UFW (Uncomplicated Firewall) etkinse, ClickHouse&#8217;un varsay\u0131lan portlar\u0131n\u0131 a\u00e7man\u0131z gerekebilir. ClickHouse, varsay\u0131lan olarak iki ana port kullan\u0131r:<\/p>\n<ul>\n<li><strong>8123\/TCP:<\/strong> HTTP\/HTTPS istemci ba\u011flant\u0131lar\u0131 i\u00e7in (\u00f6rne\u011fin, taray\u0131c\u0131 veya HTTP API \u00fczerinden eri\u015fim).<\/li>\n<li><strong>9000\/TCP:<\/strong> TCP istemci ba\u011flant\u0131lar\u0131 i\u00e7in (<code>clickhouse-client<\/code> ve di\u011fer s\u00fcr\u00fcc\u00fcler taraf\u0131ndan kullan\u0131l\u0131r).<\/li>\n<\/ul>\n<p>Bu portlar\u0131 a\u00e7mak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 8123\/tcp\nsudo ufw allow 9000\/tcp\nsudo ufw enable # E\u011fer UFW etkin de\u011filse etkinle\u015ftirin\nsudo ufw status # G\u00fcvenlik duvar\u0131 durumunu kontrol edin<\/code><\/pre>\n<p>E\u011fer ClickHouse&#8217;a sadece belirli IP adreslerinden eri\u015filmesini istiyorsan\u0131z, <code>sudo ufw allow from [IP_ADRESI] to any port 8123<\/code> ve <code>sudo ufw allow from [IP_ADRESI] to any port 9000<\/code> gibi daha spesifik kurallar tan\u0131mlayabilirsiniz.<\/p>\n<h3>ClickHouse Kurulumu<\/h3>\n<p>ClickHouse&#8217;u Ubuntu 18.04 \u00fczerine kurman\u0131n en kolay yolu, resmi ClickHouse deposunu APT paket y\u00f6neticisine eklemektir. Bu, ClickHouse&#8217;un en g\u00fcncel ve kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc y\u00fcklemenizi sa\u011flar ve gelecekteki g\u00fcncellemeleri kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>Resmi ClickHouse Deposu Ekleme<\/h4>\n<p>\u00d6ncelikle ClickHouse GPG anahtar\u0131n\u0131 sisteminize eklemelisiniz. Bu, indirdi\u011finiz paketlerin orijinalli\u011fini do\u011frulamak i\u00e7in kullan\u0131l\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt-key adv --keyserver hkp:\/\/keyserver.ubuntu.com:80 --recv E0C56BD4\n<h2>Alternatif olarak, e\u011fer yukar\u0131daki komut ba\u015far\u0131s\u0131z olursa:<\/h2>\n<h2>sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E0C56BD4<\/code><\/pre>\n<\/h2>\n<p>\u015eimdi ClickHouse deposunu APT kaynak listenize ekleyin:<\/p>\n<pre><code class=\"language-bash\">echo \"deb https:\/\/packages.clickhouse.com\/deb stable main\" | sudo tee \/etc\/apt\/sources.list.d\/clickhouse.list<\/code><\/pre>\n<p>Depoyu ekledikten sonra, APT paket listelerinizi tekrar g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<h4>ClickHouse Sunucu ve \u0130stemcisini Kurma<\/h4>\n<p>Art\u0131k ClickHouse sunucu ve istemci paketlerini y\u00fckleyebilirsiniz. <code>clickhouse-server<\/code> ana veritaban\u0131 sunucusunu i\u00e7erirken, <code>clickhouse-client<\/code> veritaban\u0131na ba\u011flanmak ve sorgular \u00e7al\u0131\u015ft\u0131rmak i\u00e7in kullan\u0131lan komut sat\u0131r\u0131 aray\u00fcz\u00fcd\u00fcr.<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y clickhouse-server clickhouse-client<\/code><\/pre>\n<p>Kurulum s\u0131ras\u0131nda ClickHouse, varsay\u0131lan yap\u0131land\u0131rma dosyalar\u0131n\u0131 olu\u015fturacak ve sunucu servisini ba\u015flatacakt\u0131r.<\/p>\n<h4>Kurulumu Do\u011frulama<\/h4>\n<p>ClickHouse sunucusunun ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>systemctl<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status clickhouse-server<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz. E\u011fer sunucu \u00e7al\u0131\u015fm\u0131yorsa, <code>sudo systemctl start clickhouse-server<\/code> komutuyla ba\u015flatmay\u0131 deneyebilirsiniz. Hatalar\u0131 kontrol etmek i\u00e7in <code>sudo journalctl -u clickhouse-server<\/code> komutunu kullanabilirsiniz.<\/p>\n<h3>ClickHouse Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>ClickHouse&#8217;un ana yap\u0131land\u0131rma dosyalar\u0131 <code>\/etc\/clickhouse-server\/<\/code> dizininde bulunur. Bu dosyalar, sunucunun davran\u0131\u015f\u0131n\u0131, a\u011f ayarlar\u0131n\u0131, g\u00fcvenlik politikalar\u0131n\u0131 ve depolama yollar\u0131n\u0131 kontrol etmenizi sa\u011flar.<\/p>\n<h4>Ana Yap\u0131land\u0131rma Dosyalar\u0131<\/h4>\n<ul>\n<li><strong><code>\/etc\/clickhouse-server\/config.xml<\/code>:<\/strong> Bu dosya, sunucunun temel ayarlar\u0131n\u0131 (\u00f6rne\u011fin, dinleme portlar\u0131, veri ve g\u00fcnl\u00fck dizinleri, g\u00fcvenlik duvar\u0131 kurallar\u0131) i\u00e7erir. \u00c7o\u011fu sunucu d\u00fczeyindeki yap\u0131land\u0131rma bu dosyada yap\u0131l\u0131r.<\/li>\n<li><strong><code>\/etc\/clickhouse-server\/users.xml<\/code>:<\/strong> Kullan\u0131c\u0131 hesaplar\u0131, \u015fifreler, izinler ve profiller bu dosyada tan\u0131mlan\u0131r. G\u00fcvenlik i\u00e7in \u00f6nemli bir dosyad\u0131r.<\/li>\n<li><strong><code>\/etc\/clickhouse-server\/config.d\/<\/code> ve <code>\/etc\/clickhouse-server\/users.d\/<\/code>:<\/strong> Bu dizinler, ana <code>config.xml<\/code> ve <code>users.xml<\/code> dosyalar\u0131na ek yap\u0131land\u0131rma par\u00e7ac\u0131klar\u0131 eklemek i\u00e7in kullan\u0131l\u0131r. Bu yakla\u015f\u0131m, ana dosyalar\u0131 de\u011fi\u015ftirmeden yap\u0131land\u0131rma yapman\u0131z\u0131 sa\u011flar ve g\u00fcncellemeler s\u0131ras\u0131nda \u00e7ak\u0131\u015fmalar\u0131 \u00f6nler.<\/li>\n<\/ul>\n<h4>G\u00fcvenlik Ayarlar\u0131<\/h4>\n<p>Varsay\u0131lan olarak, ClickHouse sunucusu sadece localhost&#8217;tan gelen ba\u011flant\u0131lar\u0131 dinler. Uzak eri\u015fime izin vermek i\u00e7in <code>config.xml<\/code> dosyas\u0131n\u0131 d\u00fczenlemeniz gerekir.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/clickhouse-server\/config.xml<\/code><\/pre>\n<p>Dosyada <code><listen_host>::<\/listen_host><\/code> veya <code><listen_host>0.0.0.0<\/listen_host><\/code> sat\u0131r\u0131n\u0131 bulup yorum sat\u0131r\u0131 olmaktan \u00e7\u0131kar\u0131n (veya ekleyin). Bu, ClickHouse&#8217;un t\u00fcm a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 dinlemesini sa\u011flar.<\/p>\n<pre><code class=\"language-xml\">    <listen_host>::<\/listen_host>\n    <!-- <listen_host>0.0.0.0<\/listen_host> --><\/code><\/pre>\n<p>De\u011fi\u015fiklikleri kaydettikten sonra ClickHouse servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart clickhouse-server<\/code><\/pre>\n<p><strong>Kullan\u0131c\u0131 Y\u00f6netimi:<\/strong> Varsay\u0131lan olarak, ClickHouse&#8217;un <code>default<\/code> kullan\u0131c\u0131s\u0131 \u015fifresizdir. \u00dcretim ortamlar\u0131nda bu kullan\u0131c\u0131ya g\u00fc\u00e7l\u00fc bir \u015fifre atamak veya yeni, yetkilendirilmi\u015f kullan\u0131c\u0131lar olu\u015fturmak \u00e7ok \u00f6nemlidir. <code>users.xml<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek kullan\u0131c\u0131 \u015fifrelerini ve izinlerini ayarlayabilirsiniz.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/clickhouse-server\/users.xml<\/code><\/pre>\n<p><code>default<\/code> kullan\u0131c\u0131s\u0131 i\u00e7in <code><password><\/code> etiketini ekleyin:<\/p>\n<pre><code class=\"language-xml\">    <users>\n        <default>\n            <password>your_strong_password<\/password>\n            <networks>\n                <ip>::\/0<\/ip>\n            <\/networks>\n            <profile>default<\/profile>\n            <quota>default<\/quota>\n        <\/default>\n    <\/users><\/code><\/pre>\n<p>Yeni bir kullan\u0131c\u0131 olu\u015fturmak i\u00e7in, <code><users><\/code> etiketi alt\u0131na ba\u015fka bir kullan\u0131c\u0131 blo\u011fu ekleyebilirsiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-xml\">        <my_user>\n            <password>my_strong_user_password<\/password>\n            <networks>\n                <ip>::\/0<\/ip>\n            <\/networks>\n            <profile>default<\/profile>\n            <quota>default<\/quota>\n        <\/my_user><\/code><\/pre>\n<p>Yine, de\u011fi\u015fikliklerden sonra ClickHouse servisini yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/p>\n<h4>Performans Ayarlar\u0131<\/h4>\n<p>ClickHouse, varsay\u0131lan olarak iyi performans g\u00f6sterse de, \u00f6zel kullan\u0131m durumunuza g\u00f6re baz\u0131 ayarlar\u0131 optimize etmek performans\u0131 daha da art\u0131rabilir. <code>config.xml<\/code> i\u00e7inde <code>max_memory_usage<\/code>, <code>max_threads<\/code>, <code>min_bytes_to_use_direct_io<\/code> gibi parametreler bulunur. Bu ayarlar, sunucunun belle\u011fi, CPU \u00e7ekirdeklerini ve disk I\/O&#8217;yu nas\u0131l kullanaca\u011f\u0131n\u0131 kontrol eder. Genellikle, bu ayarlar\u0131 de\u011fi\u015ftirmeden \u00f6nce ClickHouse belgelerini detayl\u0131ca incelemek ve testler yapmak \u00f6nemlidir.<\/p>\n<h3>ClickHouse Kullan\u0131m\u0131<\/h3>\n<p>ClickHouse sunucusu \u00e7al\u0131\u015f\u0131r durumda ve yap\u0131land\u0131r\u0131lm\u0131\u015f oldu\u011funa g\u00f6re, \u015fimdi onunla etkile\u015fime ge\u00e7ebilir ve veri i\u015flemlerini ger\u00e7ekle\u015ftirebiliriz.<\/p>\n<h4>ClickHouse \u0130stemcisi ile Ba\u011flanma<\/h4>\n<p><code>clickhouse-client<\/code>, komut sat\u0131r\u0131ndan ClickHouse&#8217;a ba\u011flanmak i\u00e7in kullan\u0131lan bir ara\u00e7t\u0131r. E\u011fer <code>default<\/code> kullan\u0131c\u0131s\u0131na \u015fifre atad\u0131ysan\u0131z veya yeni bir kullan\u0131c\u0131 olu\u015fturduysan\u0131z, ba\u011flant\u0131 s\u0131ras\u0131nda kimlik bilgilerini sa\u011flaman\u0131z gerekecektir.<\/p>\n<pre><code class=\"language-bash\">clickhouse-client --user default --password your_strong_password<\/code><\/pre>\n<p>E\u011fer varsay\u0131lan kullan\u0131c\u0131ya \u015fifre atamad\u0131ysan\u0131z veya yerel ba\u011flant\u0131 kuruyorsan\u0131z, sadece <code>clickhouse-client<\/code> komutunu kullanabilirsiniz.<\/p>\n<p>Ba\u015far\u0131l\u0131 bir ba\u011flant\u0131dan sonra, ClickHouse istemci komut istemini g\u00f6receksiniz:<\/p>\n<pre><code class=\"language-text\">ClickHouse client is successfully connected.\n><\/code><\/pre>\n<h4>Veritaban\u0131 Olu\u015fturma<\/h4>\n<p>Verileri depolamak i\u00e7in bir veritaban\u0131 olu\u015fturman\u0131z gerekir. \u00d6rne\u011fin, <code>my_database<\/code> ad\u0131nda bir veritaban\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE my_database;<\/code><\/pre>\n<p>Olu\u015fturulan veritabanlar\u0131n\u0131 listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-sql\">SHOW DATABASES;<\/code><\/pre>\n<p>\u015eimdi bu veritaban\u0131n\u0131 kullanmak \u00fczere se\u00e7ebiliriz:<\/p>\n<pre><code class=\"language-sql\">USE my_database;<\/code><\/pre>\n<h4>Tablo Olu\u015fturma<\/h4>\n<p>ClickHouse&#8217;un en \u00f6nemli \u00f6zelliklerinden biri, \u00e7e\u015fitli tablo motorlar\u0131d\u0131r. En yayg\u0131n ve \u00f6nerilen motor, \u00f6zellikle analitik sorgular i\u00e7in optimize edilmi\u015f olan <code>MergeTree<\/code> ailesidir. Bu motor, verileri par\u00e7alara (parts) b\u00f6ler, s\u0131ral\u0131 depolama sa\u011flar ve h\u0131zl\u0131 veri ekleme\/sorgulama i\u00e7in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<p>\u00d6rnek olarak, web sitesi ziyaretlerini depolayacak bir tablo olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE website_visits (\n    timestamp DateTime,\n    user_id UInt64,\n    page_url String,\n    duration_ms UInt32,\n    ip_address String\n) ENGINE = MergeTree()\nORDER BY (timestamp, user_id);<\/code><\/pre>\n<p>Bu \u00f6rnekte:<\/p>\n<ul>\n<li><code>timestamp<\/code>, <code>DateTime<\/code> tipinde bir s\u00fctundur.<\/li>\n<li><code>user_id<\/code>, <code>UInt64<\/code> (i\u015faretsiz 64-bit tamsay\u0131) tipindedir.<\/li>\n<li><code>page_url<\/code> ve <code>ip_address<\/code>, <code>String<\/code> (de\u011fi\u015fken uzunlukta metin) tipindedir.<\/li>\n<li><code>duration_ms<\/code>, <code>UInt32<\/code> tipindedir.<\/li>\n<li><code>ENGINE = MergeTree()<\/code>: Tablo motorunu belirtir.<\/li>\n<li><code>ORDER BY (timestamp, user_id)<\/code>: Verilerin diskte <code>timestamp<\/code> ve ard\u0131ndan <code>user_id<\/code> s\u00fctunlar\u0131na g\u00f6re s\u0131ralanaca\u011f\u0131n\u0131 belirtir. Bu, birincil anahtar (primary key) gibi davran\u0131r ve sorgu performans\u0131n\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde etkiler.<\/li>\n<\/ul>\n<p>Tablolar\u0131 listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-sql\">SHOW TABLES;<\/code><\/pre>\n<p>Bir tablonun yap\u0131s\u0131n\u0131 g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-sql\">DESCRIBE TABLE website_visits;<\/code><\/pre>\n<h4>Veri Ekleme<\/h4>\n<p>Tabloya veri eklemek i\u00e7in <code>INSERT INTO<\/code> komutunu kullan\u0131r\u0131z. ClickHouse, toplu (batch) veri eklemeleri i\u00e7in optimize edilmi\u015ftir, bu nedenle tek tek sat\u0131r eklemek yerine m\u00fcmk\u00fcn oldu\u011funca \u00e7ok sat\u0131r\u0131 tek bir sorguda eklemek daha verimlidir.<\/p>\n<pre><code class=\"language-sql\">INSERT INTO website_visits (timestamp, user_id, page_url, duration_ms, ip_address) VALUES\n    ('2023-10-26 10:00:00', 101, '\/home', 1500, '192.168.1.10'),\n    ('2023-10-26 10:01:30', 102, '\/products\/item-a', 3000, '192.168.1.11'),\n    ('2023-10-26 10:02:15', 101, '\/products\/item-b', 2200, '192.168.1.10'),\n    ('2023-10-26 10:03:40', 103, '\/about', 800, '192.168.1.12');<\/code><\/pre>\n<h4>Veri Sorgulama<\/h4>\n<p>Verileri sorgulamak i\u00e7in standart SQL <code>SELECT<\/code> ifadelerini kullan\u0131r\u0131z. ClickHouse, gruplama, filtreleme, s\u0131ralama ve limitlendirme gibi bir\u00e7ok geli\u015fmi\u015f analitik fonksiyonu destekler.<\/p>\n<p>T\u00fcm verileri se\u00e7me:<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM website_visits LIMIT 5;<\/code><\/pre>\n<p>Belirli bir kullan\u0131c\u0131ya ait ziyaretleri filtreleme:<\/p>\n<pre><code class=\"language-sql\">SELECT * FROM website_visits WHERE user_id = 101;<\/code><\/pre>\n<p>Belirli bir sayfay\u0131 ziyaret eden kullan\u0131c\u0131 say\u0131s\u0131n\u0131 bulma:<\/p>\n<pre><code class=\"language-sql\">SELECT page_url, COUNT(DISTINCT user_id) AS unique_visitors\nFROM website_visits\nGROUP BY page_url\nORDER BY unique_visitors DESC;<\/code><\/pre>\n<p>Ortalama ziyaret s\u00fcresini hesaplama:<\/p>\n<pre><code class=\"language-sql\">SELECT AVG(duration_ms) FROM website_visits;<\/code><\/pre>\n<p>Belirli bir zaman aral\u0131\u011f\u0131ndaki toplam ziyaret say\u0131s\u0131n\u0131 bulma:<\/p>\n<pre><code class=\"language-sql\">SELECT COUNT() FROM website_visits\nWHERE timestamp BETWEEN '2023-10-26 10:00:00' AND '2023-10-26 10:02:00';<\/code><\/pre>\n<h4>Veri Silme ve G\u00fcncelleme (MergeTree Motoru \u0130\u00e7in)<\/h4>\n<p>ClickHouse, \u00f6zellikle MergeTree motoru ile, geleneksel veritabanlar\u0131ndaki gibi sat\u0131r baz\u0131nda <code>DELETE<\/code> ve <code>UPDATE<\/code> i\u015flemlerini verimli bir \u015fekilde desteklemez. Bunun nedeni, s\u00fctun tabanl\u0131 depolaman\u0131n ve veri s\u0131k\u0131\u015ft\u0131rmas\u0131n\u0131n bu t\u00fcr i\u015flemleri maliyetli hale getirmesidir. Ancak, ClickHouse bu t\u00fcr ihtiya\u00e7lar i\u00e7in <code>ALTER TABLE ... DELETE<\/code> ve <code>ALTER TABLE ... UPDATE<\/code> komutlar\u0131n\u0131 sunar. Bu komutlar, e\u015fzamans\u0131z olarak ve belirli bir ko\u015fulu kar\u015f\u0131layan t\u00fcm sat\u0131rlar\u0131 silerek veya g\u00fcncelleyerek \u00e7al\u0131\u015f\u0131r. Genellikle, bu i\u015flemler b\u00fcy\u00fck veri bloklar\u0131n\u0131 etkiler ve an\u0131nda ger\u00e7ekle\u015fmeyebilir.<\/p>\n<p>\u00d6rne\u011fin, belirli bir <code>user_id<\/code>&#8216;ye ait t\u00fcm kay\u0131tlar\u0131 silmek:<\/p>\n<pre><code class=\"language-sql\">ALTER TABLE website_visits DELETE WHERE user_id = 103;<\/code><\/pre>\n<p>Bir s\u00fctundaki de\u011feri g\u00fcncellemek:<\/p>\n<pre><code class=\"language-sql\">ALTER TABLE website_visits UPDATE duration_ms = 2000 WHERE user_id = 101 AND page_url = '\/home';<\/code><\/pre>\n<p>Bu i\u015flemlerin tamamlan\u0131p tamamlanmad\u0131\u011f\u0131n\u0131 <code>system.mutations<\/code> tablosundan kontrol edebilirsiniz.<\/p>\n<p>Analitik veritabanlar\u0131nda yayg\u0131n bir yakla\u015f\u0131m, verileri silmek veya g\u00fcncellemek yerine, yeni bir durumla birlikte yeni kay\u0131tlar eklemek ve sorgularda en son durumu filtrelemektir. Veya, belirli bir zaman aral\u0131\u011f\u0131ndan eski verileri periyodik olarak tamamen silmek i\u00e7in partition (b\u00f6l\u00fcm) silme mekanizmalar\u0131n\u0131 kullanmakt\u0131r.<\/p>\n<h4>Dizinler (Indexes)<\/h4>\n<p>MergeTree tablolar\u0131nda, <code>ORDER BY<\/code> ifadesinde belirtilen s\u00fctunlar birincil dizin (primary index) g\u00f6revi g\u00f6r\u00fcr. Bu dizin, verilerin diskte s\u0131ralanmas\u0131n\u0131 sa\u011flar ve sorgularda <code>WHERE<\/code> veya <code>ORDER BY<\/code> yan t\u00fcmcelerinde kullan\u0131lan bu s\u00fctunlar i\u00e7in h\u0131zl\u0131 veri eri\u015fimi sa\u011flar. ClickHouse ayr\u0131ca, belirli sorgu tiplerini h\u0131zland\u0131rmak i\u00e7in ikincil dizinler (secondary indexes veya data skipping indexes) olu\u015fturman\u0131za da olanak tan\u0131r. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-sql\">ALTER TABLE website_visits ADD INDEX ip_idx (ip_address) TYPE bloom_filter GRANULARITY 1;<\/code><\/pre>\n<p>Bu, <code>ip_address<\/code> s\u00fctunu \u00fczerinde bir Bloom filtresi dizini olu\u015fturur. Bloom filtreleri, belirli bir de\u011ferin bir veri blo\u011funda olup olmad\u0131\u011f\u0131n\u0131 h\u0131zl\u0131ca kontrol etmek i\u00e7in kullan\u0131\u015fl\u0131d\u0131r, ancak kesin sonu\u00e7lar d\u00f6nd\u00fcrmezler (yanl\u0131\u015f pozitifler olabilir). Di\u011fer dizin tipleri de mevcuttur.<\/p>\n<h4>G\u00f6r\u00fcn\u00fcmler (Views)<\/h4>\n<p>ClickHouse, SQL g\u00f6r\u00fcn\u00fcmlerini (VIEW) destekler. G\u00f6r\u00fcn\u00fcmler, karma\u015f\u0131k sorgular\u0131 basitle\u015ftirmek ve veri eri\u015fimini soyutlamak i\u00e7in kullan\u0131labilir. \u0130ki t\u00fcr g\u00f6r\u00fcn\u00fcm vard\u0131r:<\/p>\n<ul>\n<li><strong>Normal G\u00f6r\u00fcn\u00fcmler:<\/strong> Temel bir <code>SELECT<\/code> sorgusunun sonucunu temsil eder. Sorguland\u0131\u011f\u0131nda her seferinde yeniden hesaplan\u0131r.<\/li>\n<li><strong>Materialized G\u00f6r\u00fcn\u00fcmler (Somutla\u015ft\u0131r\u0131lm\u0131\u015f G\u00f6r\u00fcn\u00fcmler):<\/strong> Temel tablodaki veriler de\u011fi\u015fti\u011finde otomatik olarak g\u00fcncellenen, fiziksel olarak depolanan bir sorgu sonucudur. \u00d6zellikle s\u0131k\u00e7a sorgulanan \u00f6zet verileri veya agregasyonlar\u0131 \u00f6nceden hesaplamak i\u00e7in \u00e7ok faydal\u0131d\u0131r.<\/li>\n<\/ul>\n<p>Normal g\u00f6r\u00fcn\u00fcm \u00f6rne\u011fi:<\/p>\n<pre><code class=\"language-sql\">CREATE VIEW daily_unique_visitors AS\nSELECT toDate(timestamp) AS visit_date, COUNT(DISTINCT user_id) AS unique_users\nFROM website_visits\nGROUP BY visit_date\nORDER BY visit_date;<\/code><\/pre>\n<p>Materialized g\u00f6r\u00fcn\u00fcm \u00f6rne\u011fi (daha karma\u015f\u0131k, ayr\u0131 bir hedef tablo gerektirir):<\/p>\n<pre><code class=\"language-sql\">CREATE TABLE daily_stats (\n    visit_date Date,\n    total_visits UInt64,\n    unique_visitors UInt64\n) ENGINE = SummingMergeTree(visit_date)\nORDER BY visit_date;\n\nCREATE MATERIALIZED VIEW daily_stats_mv TO daily_stats AS\nSELECT\n    toDate(timestamp) AS visit_date,\n    COUNT() AS total_visits,\n    COUNT(DISTINCT user_id) AS unique_visitors\nFROM website_visits\nGROUP BY visit_date;<\/code><\/pre>\n<h3>ClickHouse Fonksiyonlar\u0131 ve \u00d6zellikleri<\/h3>\n<p>ClickHouse, analitik sorgular i\u00e7in zengin bir fonksiyon setine sahiptir. Bunlar aras\u0131nda matematiksel fonksiyonlar, tarih\/saat fonksiyonlar\u0131, string fonksiyonlar\u0131, dizi fonksiyonlar\u0131, ko\u015fullu fonksiyonlar ve geli\u015fmi\u015f agregasyon fonksiyonlar\u0131 bulunur.<\/p>\n<ul>\n<li><strong>Agregasyon Fonksiyonlar\u0131:<\/strong> <code>count()<\/code>, <code>sum()<\/code>, <code>avg()<\/code>, <code>min()<\/code>, <code>max()<\/code>, <code>uniq()<\/code>, <code>quantile()<\/code>, <code>groupArray()<\/code> gibi bir\u00e7ok fonksiyon.<\/li>\n<li><strong>Tarih\/Saat Fonksiyonlar\u0131:<\/strong> <code>toDate()<\/code>, <code>toStartOfDay()<\/code>, <code>toHour()<\/code>, <code>now()<\/code>, <code>formatDateTime()<\/code> gibi zaman serisi analizleri i\u00e7in kritik fonksiyonlar.<\/li>\n<li><strong>Dizi Fonksiyonlar\u0131:<\/strong> <code>arrayElement()<\/code>, <code>arrayJoin()<\/code>, <code>has()<\/code>, <code>arrayFilter()<\/code> gibi dizi veri tipleriyle \u00e7al\u0131\u015fmak i\u00e7in fonksiyonlar.<\/li>\n<li><strong>Sorgu Optimizasyonlar\u0131:<\/strong> ClickHouse, sorgular\u0131 otomatik olarak optimize etmek i\u00e7in geli\u015fmi\u015f algoritmalar kullan\u0131r. \u00d6rne\u011fin, <code>PREWHERE<\/code> anahtar kelimesi, filtrelemeyi m\u00fcmk\u00fcn oldu\u011funca erken a\u015famalarda yaparak performans\u0131 art\u0131rabilir.<\/li>\n<li><strong>Veri S\u0131k\u0131\u015ft\u0131rma:<\/strong> Verileri diskte depolarken y\u00fcksek s\u0131k\u0131\u015ft\u0131rma oranlar\u0131 kullanarak disk alan\u0131ndan tasarruf sa\u011flar ve okuma performans\u0131n\u0131 art\u0131r\u0131r.<\/li>\n<li><strong>Replikasyon ve Sharding:<\/strong> \u00dcretim ortamlar\u0131nda y\u00fcksek eri\u015filebilirlik ve yatay \u00f6l\u00e7eklenebilirlik sa\u011flamak i\u00e7in ClickHouse, ZooKeeper veya ClickHouse Keeper kullanarak veri replikasyonunu ve sharding&#8217;i destekler. Bu sayede veriler birden fazla sunucuya da\u011f\u0131t\u0131l\u0131r ve bir sunucu hatas\u0131nda veri kayb\u0131 \u00f6nlenir.<\/li>\n<\/ul>\n<h3>Bak\u0131m ve \u0130zleme<\/h3>\n<p>ClickHouse sunucunuzun sa\u011fl\u0131\u011f\u0131n\u0131 ve performans\u0131n\u0131 izlemek, sorunlar\u0131 erken tespit etmek i\u00e7in \u00f6nemlidir.<\/p>\n<h4>Log Dosyalar\u0131<\/h4>\n<p>ClickHouse, operasyonel bilgileri ve hatalar\u0131 log dosyalar\u0131na yazar. Varsay\u0131lan olarak, bu dosyalar <code>\/var\/log\/clickhouse-server\/<\/code> dizininde bulunur.<\/p>\n<ul>\n<li><code>clickhouse-server.log<\/code>: Ana sunucu g\u00fcnl\u00fckleri.<\/li>\n<li><code>clickhouse-server.err.log<\/code>: Hata g\u00fcnl\u00fckleri.<\/li>\n<li><code>clickhouse-server.trace.log<\/code>: Daha detayl\u0131 izleme bilgileri (genellikle hata ay\u0131klama i\u00e7in kullan\u0131l\u0131r).<\/li>\n<\/ul>\n<p>Bu log dosyalar\u0131n\u0131 d\u00fczenli olarak kontrol etmek, sunucu sorunlar\u0131n\u0131 te\u015fhis etmek i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h4>Performans \u0130zleme<\/h4>\n<p>ClickHouse, dahili <code>system<\/code> veritaban\u0131nda bir\u00e7ok tablo arac\u0131l\u0131\u011f\u0131yla sunucu metriklerini ve performans bilgilerini sunar:<\/p>\n<ul>\n<li><code>system.metrics<\/code>: Anl\u0131k sunucu metrikleri (CPU kullan\u0131m\u0131, bellek, disk I\/O vb.).<\/li>\n<li><code>system.events<\/code>: Sunucuda ger\u00e7ekle\u015fen olaylar\u0131n say\u0131s\u0131 (sorgu say\u0131s\u0131, hata say\u0131s\u0131 vb.).<\/li>\n<li><code>system.processes<\/code>: \u015eu anda \u00e7al\u0131\u015fan sorgular\u0131n listesi.<\/li>\n<li><code>system.query_log<\/code>: Tamamlanm\u0131\u015f sorgular\u0131n ge\u00e7mi\u015fi ve performans detaylar\u0131.<\/li>\n<\/ul>\n<p>\u00d6rne\u011fin, \u00e7al\u0131\u015fan sorgular\u0131 g\u00f6rmek i\u00e7in:<\/p>\n<pre><code class=\"language-sql\">SELECT query_id, query, elapsed, query_duration_ms FROM system.processes;<\/code><\/pre>\n<p>Bu tablolar, sunucu performans\u0131n\u0131 anlamak ve darbo\u011fazlar\u0131 tespit etmek i\u00e7in paha bi\u00e7ilmez bilgiler sa\u011flar. Prometheus, Grafana gibi izleme ara\u00e7lar\u0131 ile entegrasyon i\u00e7in de kullan\u0131labilirler.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<ul>\n<li><strong>ClickHouse Sunucusu Ba\u015flam\u0131yor:<\/strong>\n<ul>\n<li>Log dosyalar\u0131n\u0131 kontrol edin (<code>\/var\/log\/clickhouse-server\/clickhouse-server.err.log<\/code>).<\/li>\n<li>Yap\u0131land\u0131rma dosyalar\u0131nda (<code>config.xml<\/code>, <code>users.xml<\/code>) s\u00f6zdizimi hatas\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/li>\n<li>Portlar\u0131n ba\u015fka bir servis taraf\u0131ndan kullan\u0131l\u0131p kullan\u0131lmad\u0131\u011f\u0131n\u0131 kontrol edin (<code>sudo netstat -tulnp | grep 8123<\/code>).<\/li>\n<li>Yeterli disk alan\u0131 olup olmad\u0131\u011f\u0131n\u0131 kontrol edin.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Uzak Ba\u011flant\u0131 Yap\u0131lam\u0131yor:<\/strong>\n<ul>\n<li><code>config.xml<\/code> dosyas\u0131nda <code><listen_host>::<\/listen_host><\/code> veya <code><listen_host>0.0.0.0<\/listen_host><\/code> ayar\u0131n\u0131n etkin oldu\u011fundan emin olun.<\/li>\n<li>G\u00fcvenlik duvar\u0131nda (UFW veya bulut sa\u011flay\u0131c\u0131n\u0131z\u0131n g\u00fcvenlik grubu) 8123 ve 9000 portlar\u0131n\u0131n a\u00e7\u0131k oldu\u011fundan emin olun.<\/li>\n<li>Kullan\u0131c\u0131 ad\u0131 ve \u015fifrenin do\u011fru oldu\u011fundan emin olun (<code>users.xml<\/code>).<\/li>\n<\/ul>\n<\/li>\n<li><strong>Sorgular Yava\u015f \u00c7al\u0131\u015f\u0131yor:<\/strong>\n<ul>\n<li><code>ORDER BY<\/code> anahtar\u0131n\u0131n tablo tan\u0131m\u0131nda do\u011fru ayarland\u0131\u011f\u0131ndan ve sorgularda kullan\u0131ld\u0131\u011f\u0131ndan emin olun.<\/li>\n<li>Yeterli RAM ve CPU kayna\u011f\u0131 oldu\u011fundan emin olun.<\/li>\n<li>Disk I\/O performans\u0131n\u0131 kontrol edin (SSD kullan\u0131l\u0131yor mu?).<\/li>\n<li>Sorgu plan\u0131n\u0131 inceleyin ve gereksiz tam tablo taramalar\u0131ndan ka\u00e7\u0131n\u0131n.<\/li>\n<li><code>system.query_log<\/code> tablosundaki yava\u015f sorgular\u0131 analiz edin.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Disk Alan\u0131 Doluyor:<\/strong>\n<ul>\n<li>Veri s\u0131k\u0131\u015ft\u0131rman\u0131n etkin oldu\u011fundan emin olun (MergeTree varsay\u0131lan olarak s\u0131k\u0131\u015ft\u0131rma kullan\u0131r).<\/li>\n<li>Gereksiz eski verileri d\u00fczenli olarak temizlemek i\u00e7in TTL (Time-To-Live) politikalar\u0131n\u0131 veya b\u00f6l\u00fcm silme i\u015flemlerini kullan\u0131n.<\/li>\n<li><code>ALTER TABLE ... DROP PARTITION<\/code> komutuyla belirli b\u00f6l\u00fcmleri silebilirsiniz.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 18.04 i\u015fletim sistemi \u00fczerine ClickHouse&#8217;un kurulumunu, temel yap\u0131land\u0131rmalar\u0131n\u0131 ve kullan\u0131m\u0131n\u0131 ayr\u0131nt\u0131l\u0131 bir \u015fekilde ele ald\u0131k. ClickHouse, b\u00fcy\u00fck \u00f6l\u00e7ekli analitik veri i\u015fleme ihtiya\u00e7lar\u0131 i\u00e7in g\u00fc\u00e7l\u00fc, h\u0131zl\u0131 ve \u00f6l\u00e7eklenebilir bir \u00e7\u00f6z\u00fcmd\u00fcr. S\u00fctun tabanl\u0131 mimarisi, geli\u015fmi\u015f indeksleme yetenekleri ve zengin SQL deste\u011fi sayesinde, terabaytlarca hatta petabaytlarca veri \u00fczerinde milisaniyeler i\u00e7inde sorgu sonu\u00e7lar\u0131 elde etmenizi sa\u011flar.<\/p>\n<p>Kurulum \u00f6ncesi haz\u0131rl\u0131klardan ba\u015flayarak, ClickHouse deposunu ekleme, sunucu ve istemciyi kurma, temel g\u00fcvenlik ve a\u011f yap\u0131land\u0131rmalar\u0131n\u0131 yapma ad\u0131mlar\u0131n\u0131 g\u00f6sterdik. Ayr\u0131ca, veritaban\u0131 ve tablo olu\u015fturma, veri ekleme, sorgulama ve MergeTree motorunun temel prensipleri gibi pratik kullan\u0131m senaryolar\u0131n\u0131 da inceledik. Son olarak, bak\u0131m, izleme ve s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlara y\u00f6nelik \u00e7\u00f6z\u00fcm \u00f6nerileri sunduk.<\/p>\n<p>ClickHouse&#8217;un potansiyelini tam olarak kullanmak i\u00e7in, tablo motorlar\u0131, veri tipleri, geli\u015fmi\u015f fonksiyonlar, replikasyon ve sharding gibi konular\u0131 daha derinlemesine ara\u015ft\u0131rman\u0131z \u00f6nerilir. Ancak bu makaledeki bilgiler, ClickHouse ile \u00e7al\u0131\u015fmaya ba\u015flamak i\u00e7in sa\u011flam bir temel olu\u015fturmaktad\u0131r. B\u00fcy\u00fck veri analizi d\u00fcnyas\u0131na ad\u0131m atarken ClickHouse&#8217;un sundu\u011fu performanstan ve esneklikten faydalanarak projelerinizde \u00f6nemli ba\u015far\u0131lar elde edebilirsiniz.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131\nB\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken, geleneksel ili\u015fkisel veritaban\u0131 y\u00f6netim sistem","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1468],"tags":[],"class_list":{"0":"post-36747","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131 B\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken, geleneksel ili\u015fkisel veritaban\u0131 y\u00f6netim sistem\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-22T11:40:56+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131\",\"datePublished\":\"2025-12-22T11:40:56+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/\"},\"wordCount\":3115,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/\",\"name\":\"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-22T11:40:56+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131","og_description":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131 B\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken, geleneksel ili\u015fkisel veritaban\u0131 y\u00f6netim sistem","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-22T11:40:56+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131","datePublished":"2025-12-22T11:40:56+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/"},"wordCount":3115,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/","name":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131 - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-22T11:40:56+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerine-clickhouse-kurulumu-ve-kullanimi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 18.04 \u00dczerine ClickHouse Kurulumu ve Kullan\u0131m\u0131"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=36747"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36747\/revisions"}],"predecessor-version":[{"id":36748,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36747\/revisions\/36748"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}