{"id":31637,"date":"2025-10-12T05:41:34","date_gmt":"2025-10-12T02:41:34","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31637"},"modified":"2025-10-12T05:41:34","modified_gmt":"2025-10-12T02:41:34","slug":"timescaledb-nedir-ve-neden-kullanmalisiniz","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/","title":{"rendered":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?"},"content":{"rendered":"<p><body><\/p>\n<h2>TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?<\/h2>\n<p>Zaman serisi verileri, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda giderek daha fazla \u00f6nem kazanmaktad\u0131r. IoT cihazlar\u0131ndan finansal piyasa verilerine, sunucu performans metriklerinden sens\u00f6r okumalar\u0131na kadar bir\u00e7ok alanda s\u00fcrekli akan veri ak\u0131\u015flar\u0131n\u0131 depolamak, analiz etmek ve sorgulamak kritik hale gelmi\u015ftir. Geleneksel ili\u015fkisel veritabanlar\u0131, bu t\u00fcr verilerin b\u00fcy\u00fck hacimleriyle ba\u015fa \u00e7\u0131kmakta zorlanabilirken, TimescaleDB gibi \u00f6zel olarak zaman serisi verileri i\u00e7in tasarlanm\u0131\u015f \u00e7\u00f6z\u00fcmler \u00f6ne \u00e7\u0131kmaktad\u0131r.<\/p>\n<p>TimescaleDB, PostgreSQL tabanl\u0131, a\u00e7\u0131k kaynakl\u0131 bir zaman serisi veritaban\u0131d\u0131r. PostgreSQL&#8217;in g\u00fcvenilirli\u011fini, esnekli\u011fini ve zengin ekosistemini korurken, zaman serisi verilerine \u00f6zg\u00fc performans ve \u00f6l\u00e7eklenebilirlik yetenekleri ekler. Temel olarak bir PostgreSQL uzant\u0131s\u0131 (extension) olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, mevcut PostgreSQL ara\u00e7 ve becerilerinizi kullanarak zaman serisi verilerinizi y\u00f6netebilirsiniz.<\/p>\n<h3>TimescaleDB Kullanman\u0131n Avantajlar\u0131:<\/h3>\n<ul>\n<li><strong>Performans ve \u00d6l\u00e7eklenebilirlik:<\/strong> Verileri otomatik olarak zaman aral\u0131klar\u0131na g\u00f6re par\u00e7alayarak (chunking) ve s\u0131k\u0131\u015ft\u0131rarak sorgu performans\u0131n\u0131 art\u0131r\u0131r ve depolama maliyetlerini d\u00fc\u015f\u00fcr\u00fcr.<\/li>\n<li><strong>Full SQL Deste\u011fi:<\/strong> PostgreSQL&#8217;in t\u00fcm g\u00fcc\u00fcn\u00fc ve esnekli\u011fini kullanmaya devam edersiniz. Karma\u015f\u0131k sorgular, join&#8217;ler, indeksler ve fonksiyonlar zaman serisi verileriniz \u00fczerinde de \u00e7al\u0131\u015f\u0131r.<\/li>\n<li><strong>Otomatik Par\u00e7alama (Automatic Partitioning):<\/strong> Zaman bazl\u0131 par\u00e7alama i\u015flemini sizin yerinize otomatik olarak y\u00f6netir. Bu, manuel par\u00e7a y\u00f6netimi y\u00fck\u00fcn\u00fc ortadan kald\u0131r\u0131r.<\/li>\n<li><strong>Veri S\u0131k\u0131\u015ft\u0131rma:<\/strong> Eski verileri s\u0131k\u0131\u015ft\u0131rarak depolama alan\u0131ndan tasarruf sa\u011flar ve sorgu performans\u0131n\u0131 art\u0131r\u0131r.<\/li>\n<li><strong>S\u00fcrekli Toplamalar (Continuous Aggregates):<\/strong> S\u0131k\u00e7a sorgulanan \u00f6zet verileri arka planda otomatik olarak \u00f6nbelle\u011fe alarak sorgu h\u0131z\u0131n\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131r\u0131r.<\/li>\n<li><strong>Geni\u015f Ekosistem Entegrasyonu:<\/strong> PostgreSQL tabanl\u0131 oldu\u011fu i\u00e7in Grafana, Tableau gibi bir\u00e7ok BI ve g\u00f6rselle\u015ftirme arac\u0131yla kolayca entegre olabilir.<\/li>\n<\/ul>\n<h2>CentOS 7 \u00dczerine TimescaleDB Kurulumu \u0130\u00e7in \u00d6n Haz\u0131rl\u0131klar<\/h2>\n<p>TimescaleDB kurulumuna ba\u015flamadan \u00f6nce, CentOS 7 sunucunuzun baz\u0131 temel gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan ve gerekli \u00f6n haz\u0131rl\u0131klar\u0131n yap\u0131ld\u0131\u011f\u0131ndan emin olmal\u0131y\u0131z. TimescaleDB bir PostgreSQL uzant\u0131s\u0131 oldu\u011fu i\u00e7in \u00f6ncelikle PostgreSQL&#8217;in kurulu ve \u00e7al\u0131\u015f\u0131r durumda olmas\u0131 gerekmektedir.<\/p>\n<h3>Sistem G\u00fcncellemesi ve Temel Paketler<\/h3>\n<p>Herhangi bir kuruluma ba\u015flamadan \u00f6nce sistem paket listesini g\u00fcncellemek ve mevcut paketleri y\u00fckseltmek iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo yum update -y\nsudo yum install -y epel-release # Gerekli olabilecek ek paketler i\u00e7in<\/code><\/pre>\n<h3>PostgreSQL Kurulumu<\/h3>\n<p>CentOS 7&#8217;nin varsay\u0131lan depolar\u0131nda bulunan PostgreSQL s\u00fcr\u00fcm\u00fc genellikle eski olabilir. TimescaleDB&#8217;nin en g\u00fcncel \u00f6zelliklerinden faydalanmak ve daha iyi performans elde etmek i\u00e7in PostgreSQL&#8217;in daha yeni bir s\u00fcr\u00fcm\u00fcn\u00fc (\u00f6rne\u011fin PostgreSQL 13 veya 14) kurman\u0131z \u00f6nerilir. Bunun i\u00e7in PostgreSQL YUM deposunu eklememiz gerekmektedir:<\/p>\n<pre><code class=\"language-bash\"># PostgreSQL YUM deposunu ekleyin\nsudo yum install -y https:\/\/download.postgresql.org\/pub\/repos\/yum\/reporpms\/EL-7-x86_64\/pgdg-redhat-repo-latest.noarch.rpm\n\n<h2>PostgreSQL 13 sunucu ve istemci paketlerini kurun (iste\u011fe ba\u011fl\u0131 olarak 14 de se\u00e7ilebilir)<\/h2>\nsudo yum install -y postgresql13-server postgresql13\n\n<h2>Veritaban\u0131n\u0131 ba\u015flat\u0131n<\/h2>\nsudo \/usr\/pgsql-13\/bin\/postgresql-13-setup initdb\n\n<h2>PostgreSQL servisini etkinle\u015ftirin ve ba\u015flat\u0131n<\/h2>\nsudo systemctl enable postgresql-13\nsudo systemctl start postgresql-13<\/code><\/pre>\n<p>Bu ad\u0131mlarla PostgreSQL 13 ba\u015far\u0131yla kurulmu\u015f ve \u00e7al\u0131\u015f\u0131r duruma getirilmi\u015f olmal\u0131d\u0131r. <code>postgresql-13<\/code> yerine kurdu\u011funuz s\u00fcr\u00fcme g\u00f6re <code>postgresql-XX<\/code> kullanmay\u0131 unutmay\u0131n.<\/p>\n<h3>TimescaleDB Deposu Ekleme<\/h3>\n<p>TimescaleDB paketlerini indirmek i\u00e7in TimescaleDB&#8217;nin kendi YUM deposunu sistemimize eklememiz gerekmektedir:<\/p>\n<pre><code class=\"language-bash\">sudo tee \/etc\/yum.repos.d\/timescale_timescaledb.repo <<EOF\n[timescale_timescaledb]\nname=timescale_timescaledb\nbaseurl=https:\/\/packagecloud.io\/timescale\/timescaledb\/el\/7\/\\$basearch\nrepo_gpgcheck=1\ngpgcheck=0\nenabled=1\ngpgkey=https:\/\/packagecloud.io\/timescale\/timescaledb\/gpgkey\nsslverify=1\nsslcacert=\/etc\/pki\/tls\/certs\/ca-bundle.crt\nmetadata_expire=300\nEOF<\/code><\/pre>\n<p>Bu komut, TimescaleDB deposunu <code>\/etc\/yum.repos.d\/<\/code> dizinine ekleyecektir. Art\u0131k TimescaleDB paketlerini <code>yum<\/code> komutuyla kurmaya haz\u0131r\u0131z.<\/p>\n<h2>TimescaleDB Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h2>\n<p>\u00d6n haz\u0131rl\u0131klar\u0131 tamamlad\u0131\u011f\u0131m\u0131za g\u00f6re, TimescaleDB'yi kurma ve PostgreSQL ile entegre etme ad\u0131mlar\u0131na ge\u00e7ebiliriz.<\/p>\n<h3>TimescaleDB Paketini Kurma<\/h3>\n<p>TimescaleDB paketini kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n. PostgreSQL s\u00fcr\u00fcm\u00fcn\u00fcze uygun paketi se\u00e7ti\u011finizden emin olun (\u00f6rne\u011fin, PostgreSQL 13 i\u00e7in <code>timescaledb-2-postgresql-13<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y timescaledb-2-postgresql-13<\/code><\/pre>\n<h3>PostgreSQL Yap\u0131land\u0131rmas\u0131 (<code>postgresql.conf<\/code>)<\/h3>\n<p>TimescaleDB'nin PostgreSQL ile d\u00fczg\u00fcn \u00e7al\u0131\u015fabilmesi i\u00e7in <code>postgresql.conf<\/code> dosyas\u0131nda baz\u0131 de\u011fi\u015fiklikler yap\u0131lmas\u0131 gerekmektedir. TimescaleDB, bu optimizasyonlar\u0131 kolayla\u015ft\u0131rmak i\u00e7in <code>timescaledb-tune<\/code> ad\u0131nda bir ara\u00e7 sunar. Bu ara\u00e7, sunucunuzun kaynaklar\u0131na (RAM, CPU vb.) g\u00f6re en uygun yap\u0131land\u0131rma ayarlar\u0131n\u0131 \u00f6nerir.<\/p>\n<pre><code class=\"language-bash\"># PostgreSQL yap\u0131land\u0131rma dosyas\u0131n\u0131n yolunu belirtin\n<h2>PostgreSQL 13 i\u00e7in varsay\u0131lan yol: \/usr\/pgsql-13\/bin\/pg_config<\/h2>\nsudo timescaledb-tune --pg-config=\/usr\/pgsql-13\/bin\/pg_config<\/code><\/pre>\n<p>Bu komut, <code>postgresql.conf<\/code> dosyas\u0131nda yap\u0131lmas\u0131 gereken de\u011fi\u015fiklikleri size g\u00f6sterecektir. Genellikle a\u015fa\u011f\u0131daki gibi bir \u00e7\u0131kt\u0131 al\u0131rs\u0131n\u0131z:<\/p>\n<pre><code class=\"language-text\">Detected PostgreSQL configuration file at: \/var\/lib\/pgsql\/13\/data\/postgresql.conf\nDetected PostgreSQL data directory at: \/var\/lib\/pgsql\/13\/data\n\nRecommendations for postgresql.conf:\n\nshared_preload_libraries = 'timescaledb'\nmax_connections = 100\nshared_buffers = 128MB\neffective_cache_size = 384MB\nmaintenance_work_mem = 64MB\nwork_mem = 4MB\nwal_buffers = 16MB\nmin_wal_size = 80MB\nmax_wal_size = 1GB\ndefault_statistics_target = 100\nrandom_page_cost = 4.0\ncpu_tuple_cost = 0.01\ncpu_index_tuple_cost = 0.005\ncpu_operator_cost = 0.0025\neffective_io_concurrency = 1\nmax_worker_processes = 8\nmax_parallel_workers = 8\nmax_parallel_workers_per_gather = 2\n\nFor best results, please add these to your postgresql.conf file.\n<\/code><\/pre>\n<p>Bu \u00f6nerileri uygulamak i\u00e7in, <code>postgresql.conf<\/code> dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n ve \u00f6nerilen sat\u0131rlar\u0131 ekleyin veya mevcut de\u011ferleri de\u011fi\u015ftirin. En kritik olan\u0131, <code>shared_preload_libraries<\/code> sat\u0131r\u0131na <code>timescaledb<\/code> eklemektir:<\/p>\n<pre><code class=\"language-bash\">sudo vi \/var\/lib\/pgsql\/13\/data\/postgresql.conf<\/code><\/pre>\n<p>Dosyada <code>shared_preload_libraries<\/code> sat\u0131r\u0131n\u0131 bulun ve \u015fu \u015fekilde g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-text\">shared_preload_libraries = 'timescaledb'<\/code><\/pre>\n<p>Di\u011fer \u00f6nerilen ayarlar\u0131 da (\u00f6rne\u011fin <code>max_connections<\/code>, <code>shared_buffers<\/code> vb.) dosyan\u0131za ekleyebilir veya g\u00fcncelleyebilirsiniz. De\u011fi\u015fiklikleri kaydettikten sonra PostgreSQL servisini yeniden ba\u015flatman\u0131z gerekmektedir:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart postgresql-13<\/code><\/pre>\n<h3>Veritaban\u0131 Olu\u015fturma ve TimescaleDB Uzant\u0131s\u0131n\u0131 Etkinle\u015ftirme<\/h3>\n<p>\u015eimdi TimescaleDB uzant\u0131s\u0131n\u0131 kullanaca\u011f\u0131m\u0131z bir veritaban\u0131 olu\u015fturup bu veritaban\u0131nda uzant\u0131y\u0131 etkinle\u015ftirmeliyiz.<\/p>\n<pre><code class=\"language-bash\"># postgres kullan\u0131c\u0131s\u0131 olarak psql'e ba\u011flan\u0131n\nsudo -u postgres psql\n\n<h2>Yeni bir veritaban\u0131 olu\u015fturun<\/h2>\nCREATE DATABASE timeseries_db;\n\n<h2>Olu\u015fturdu\u011funuz veritaban\u0131na ba\u011flan\u0131n<\/h2>\n\\c timeseries_db\n\n<h2>TimescaleDB uzant\u0131s\u0131n\u0131 etkinle\u015ftirin<\/h2>\nCREATE EXTENSION IF NOT EXISTS timescaledb CASCADE;\n\n<h2>Uzant\u0131n\u0131n ba\u015far\u0131yla y\u00fcklendi\u011fini kontrol edin<\/h2>\nSELECT * FROM pg_extension WHERE extname = 'timescaledb';\n\n<h2>psql'den \u00e7\u0131k\u0131n<\/h2>\n\\q<\/code><\/pre>\n<p><code>extname<\/code> de\u011feri <code>timescaledb<\/code> olan bir sat\u0131r g\u00f6r\u00fcyorsan\u0131z, kurulum ba\u015far\u0131l\u0131 demektir!<\/p>\n<h2>TimescaleDB Kullan\u0131m\u0131na Ba\u015flama: Temel Kavramlar ve \u00d6rnekler<\/h2>\n<p>TimescaleDB'yi kurup yap\u0131land\u0131rd\u0131ktan sonra, zaman serisi verilerinizi depolamak ve sorgulamak i\u00e7in kullanmaya ba\u015flayabiliriz.<\/p>\n<h3>Hypertable Olu\u015fturma<\/h3>\n<p>TimescaleDB'nin en temel kavram\u0131 \"hypertable\"d\u0131r. Hypertable, normal bir PostgreSQL tablosu gibi g\u00f6r\u00fcn\u00fcr ve \u00e7al\u0131\u015f\u0131r, ancak arka planda TimescaleDB'nin otomatik par\u00e7alama, s\u0131k\u0131\u015ft\u0131rma ve performans optimizasyonlar\u0131ndan faydalan\u0131r. Bir hypertable olu\u015fturmak i\u00e7in \u00f6nce normal bir tablo tan\u0131mlar, ard\u0131ndan bu tabloyu <code>create_hypertable<\/code> fonksiyonu ile hypertable'a d\u00f6n\u00fc\u015ft\u00fcr\u00fcrs\u00fcn\u00fcz.<\/p>\n<pre><code class=\"language-sql\">-- Ba\u011flant\u0131 olu\u015fturdu\u011funuz veritaban\u0131na (timeseries_db)\n-- sudo -u postgres psql -d timeseries_db\n\n-- Normal bir tablo olu\u015fturun\nCREATE TABLE sensor_data (\n    time TIMESTAMPTZ NOT NULL,\n    device_id INT,\n    temperature DOUBLE PRECISION,\n    humidity DOUBLE PRECISION\n);\n\n-- Bu tabloyu 'time' s\u00fctununu kullanarak bir hypertable'a d\u00f6n\u00fc\u015ft\u00fcr\u00fcn\nSELECT create_hypertable('sensor_data', 'time');<\/code><\/pre>\n<p>Burada <code>time<\/code> s\u00fctunu, zaman serisi verilerinin anahtar s\u00fctunudur ve <code>TIMESTAMPTZ<\/code> (zaman dilimi destekli zaman damgas\u0131) veri tipinde olmal\u0131d\u0131r. <code>create_hypertable<\/code> fonksiyonu, bu s\u00fctunu kullanarak verileri otomatik olarak par\u00e7alamaya ba\u015flayacakt\u0131r.<\/p>\n<h3>Veri Ekleme (INSERT)<\/h3>\n<p>Hypertable'lara veri eklemek, normal PostgreSQL tablolar\u0131na veri eklemekle ayn\u0131d\u0131r:<\/p>\n<pre><code class=\"language-sql\">INSERT INTO sensor_data (time, device_id, temperature, humidity) VALUES\n(NOW(), 1, 25.5, 60.2),\n(NOW() - INTERVAL '1 minute', 1, 25.0, 60.0),\n(NOW() - INTERVAL '2 minutes', 2, 22.1, 55.3),\n(NOW() - INTERVAL '5 minutes', 1, 24.8, 61.0);<\/code><\/pre>\n<h3>Veri Sorgulama (SELECT)<\/h3>\n<p>TimescaleDB, zaman serisi verileri i\u00e7in optimize edilmi\u015f \u00f6zel fonksiyonlar sunsa da, standart SQL sorgular\u0131n\u0131z\u0131 da kullanabilirsiniz.<\/p>\n<h4>Temel Sorgular:<\/h4>\n<pre><code class=\"language-sql\">-- Son eklenen 5 veriyi g\u00f6r\u00fcnt\u00fcle\nSELECT * FROM sensor_data ORDER BY time DESC LIMIT 5;\n\n-- Son 1 saat i\u00e7indeki verileri filtrele\nSELECT * FROM sensor_data WHERE time > NOW() - INTERVAL '1 hour';\n\n-- Belirli bir cihaz\u0131n son 30 dakikadaki s\u0131cakl\u0131k verilerini al\nSELECT time, temperature FROM sensor_data\nWHERE device_id = 1 AND time > NOW() - INTERVAL '30 minutes'\nORDER BY time ASC;<\/code><\/pre>\n<h4>Zaman Tabanl\u0131 Agregasyonlar (<code>time_bucket<\/code>):<\/h4>\n<p>TimescaleDB'nin en g\u00fc\u00e7l\u00fc \u00f6zelliklerinden biri, verileri belirli zaman aral\u0131klar\u0131na g\u00f6re gruplamak i\u00e7in kullan\u0131lan <code>time_bucket<\/code> fonksiyonudur. Bu, zaman serisi analizlerinde ortalama, maksimum, minimum gibi de\u011ferleri hesaplamak i\u00e7in \u00e7ok kullan\u0131\u015fl\u0131d\u0131r.<\/p>\n<pre><code class=\"language-sql\">-- Her 15 dakikada bir cihaz\u0131n ortalama s\u0131cakl\u0131\u011f\u0131n\u0131 ve nemini hesapla\nSELECT\n    time_bucket('15 minutes', time) AS fifteen_min_interval,\n    device_id,\n    AVG(temperature) AS avg_temp,\n    AVG(humidity) AS avg_humidity\nFROM sensor_data\nGROUP BY fifteen_min_interval, device_id\nORDER BY fifteen_min_interval DESC, device_id;<\/code><\/pre>\n<p><code>time_bucket('15 minutes', time)<\/code> ifadesi, <code>time<\/code> s\u00fctunundaki zaman damgalar\u0131n\u0131 15 dakikal\u0131k dilimlere b\u00f6ler ve her dilim i\u00e7in bir ba\u015flang\u0131\u00e7 zaman\u0131 d\u00f6nd\u00fcr\u00fcr.<\/p>\n<h3>Veri S\u0131k\u0131\u015ft\u0131rma (Opsiyonel ama \u00d6nemli)<\/h3>\n<p>B\u00fcy\u00fck hacimli zaman serisi verileriyle \u00e7al\u0131\u015f\u0131rken depolama maliyetleri \u00f6nemli olabilir. TimescaleDB, eski verileri s\u0131k\u0131\u015ft\u0131rarak bu maliyetleri d\u00fc\u015f\u00fcrmenize yard\u0131mc\u0131 olur. S\u0131k\u0131\u015ft\u0131rma, hypertable'\u0131n\u0131z \u00fczerinde bir politika olarak ayarlan\u0131r.<\/p>\n<pre><code class=\"language-sql\">-- Hypertable'da s\u0131k\u0131\u015ft\u0131rmay\u0131 etkinle\u015ftirin\nALTER TABLE sensor_data SET (timescaledb.compress = TRUE);\n\n-- S\u0131k\u0131\u015ft\u0131rma i\u00e7in hangi s\u00fctunlar\u0131n nas\u0131l s\u0131k\u0131\u015ft\u0131r\u0131laca\u011f\u0131n\u0131 belirtin (iste\u011fe ba\u011fl\u0131)\nALTER TABLE sensor_data ADD COLUMN IF NOT EXISTS device_id_compressed INT; -- \u00d6rnek: s\u0131k\u0131\u015ft\u0131r\u0131lacak s\u00fctun\n\n-- 7 g\u00fcnden eski verileri s\u0131k\u0131\u015ft\u0131rmak i\u00e7in bir s\u0131k\u0131\u015ft\u0131rma politikas\u0131 olu\u015fturun\nSELECT add_compression_policy('sensor_data', INTERVAL '7 days');<\/code><\/pre>\n<p>Bu komutlar, 7 g\u00fcnden eski verilerin otomatik olarak s\u0131k\u0131\u015ft\u0131r\u0131lmas\u0131n\u0131 sa\u011flayacakt\u0131r. S\u0131k\u0131\u015ft\u0131r\u0131lm\u0131\u015f veriler hala sorgulanabilir durumdad\u0131r, ancak yazma performans\u0131 d\u00fc\u015febilir.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<p>Bu rehberde, CentOS 7 \u00fczerinde TimescaleDB'yi ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve temel kullan\u0131m\u0131n\u0131 \u00f6\u011frendiniz. PostgreSQL'in g\u00fcc\u00fcn\u00fc zaman serisi verileriyle birle\u015ftiren TimescaleDB, IoT, izleme, finansal analiz ve daha bir\u00e7ok alanda \u00f6l\u00e7eklenebilir ve performansl\u0131 \u00e7\u00f6z\u00fcmler sunar. Art\u0131k hypertable'lar olu\u015fturabilir, veri ekleyebilir ve g\u00fc\u00e7l\u00fc SQL sorgular\u0131yla zaman serisi verilerinizi analiz edebilirsiniz. \u0130leri seviye \u00f6zellikler olan s\u00fcrekli toplamalar, veri s\u0131k\u0131\u015ft\u0131rma politikalar\u0131 ve downsampling gibi konular\u0131 ke\u015ffetmeniz, TimescaleDB deneyiminizi daha da zenginle\u015ftirecektir.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<h4>TimescaleDB \u00fccretli mi?<\/h4>\n<p>TimescaleDB'nin temel s\u00fcr\u00fcm\u00fc tamamen a\u00e7\u0131k kaynakl\u0131 ve \u00fccretsizdir. TimescaleDB Enterprise s\u00fcr\u00fcm\u00fc ise ek \u00f6zellikler ve destek sunar, ancak \u00e7o\u011fu kullan\u0131m durumu i\u00e7in a\u00e7\u0131k kaynak s\u00fcr\u00fcm yeterlidir.<\/p>\n<h4>Hangi PostgreSQL s\u00fcr\u00fcmleriyle uyumlu?<\/h4>\n<p>TimescaleDB genellikle PostgreSQL'in son 3-4 ana s\u00fcr\u00fcm\u00fcyle uyumludur. Bu rehberde PostgreSQL 13 kullan\u0131ld\u0131, ancak TimescaleDB'nin resmi belgelerinden en g\u00fcncel uyumluluk bilgilerini kontrol etmeniz \u00f6nerilir.<\/p>\n<h4>Verilerimi nas\u0131l yedeklerim?<\/h4>\n<p>TimescaleDB, standart PostgreSQL yedekleme ara\u00e7lar\u0131yla (\u00f6rne\u011fin <code>pg_dump<\/code> ve <code>pg_restore<\/code>) uyumludur. Hypertable'lar da normal tablolar gibi yedeklenir. Ek olarak, TimescaleDB, b\u00fcy\u00fck veritabanlar\u0131 i\u00e7in \u00f6zel yedekleme ve geri y\u00fckleme ara\u00e7lar\u0131 da sunabilir.<\/p>\n<h4>Performans sorunlar\u0131 ya\u015farsam ne yapmal\u0131y\u0131m?<\/h4>\n<p>Performans sorunlar\u0131 ya\u015f\u0131yorsan\u0131z \u015funlar\u0131 kontrol edebilirsiniz:<\/p>\n<ul>\n<li><code>timescaledb-tune<\/code> arac\u0131n\u0131 tekrar \u00e7al\u0131\u015ft\u0131rarak yap\u0131land\u0131rma \u00f6nerilerini uygulad\u0131\u011f\u0131n\u0131zdan emin olun.<\/li>\n<li>Sorgular\u0131n\u0131z i\u00e7in uygun indeksler (\u00f6zellikle <code>time<\/code> s\u00fctununda) olu\u015fturun.<\/li>\n<li>Hypertable'\u0131n\u0131z\u0131n chunk (par\u00e7a) boyutlar\u0131n\u0131 ve zaman aral\u0131klar\u0131n\u0131 optimize edin.<\/li>\n<li>Veri s\u0131k\u0131\u015ft\u0131rma politikalar\u0131n\u0131 uygulayarak eski verilerin performans\u0131n\u0131 art\u0131r\u0131n.<\/li>\n<li>PostgreSQL loglar\u0131n\u0131 ve sorgu planlar\u0131n\u0131 (EXPLAIN ANALYZE) inceleyerek darbo\u011fazlar\u0131 tespit edin.<\/li>\n<\/ul>\n<h4>CentOS 7 d\u0131\u015f\u0131nda ba\u015fka i\u015fletim sistemlerinde kurulabilir mi?<\/h4>\n<p>Evet, TimescaleDB bir\u00e7ok farkl\u0131 platformda kurulabilir. Debian\/Ubuntu gibi Linux da\u011f\u0131t\u0131mlar\u0131, Docker kapsay\u0131c\u0131lar\u0131 ve bulut platformlar\u0131 (AWS, Google Cloud, Azure) \u00fczerinde de TimescaleDB kurulumu m\u00fcmk\u00fcnd\u00fcr. Kurulum ad\u0131mlar\u0131 i\u015fletim sistemine g\u00f6re farkl\u0131l\u0131k g\u00f6sterebilir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\nZaman serisi verileri, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda giderek daha fazla \u00f6nem kazanmaktad\u0131r. I","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":[1],"tags":[],"class_list":{"0":"post-31637","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","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>TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z? - 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\/timescaledb-nedir-ve-neden-kullanmalisiniz\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\" \/>\n<meta property=\"og:description\" content=\"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z? Zaman serisi verileri, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda giderek daha fazla \u00f6nem kazanmaktad\u0131r. I\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-12T02:41:34+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=\"6 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\",\"datePublished\":\"2025-10-12T02:41:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/\"},\"wordCount\":1438,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/\",\"name\":\"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-12T02:41:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?\"}]},{\"@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":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z? - 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\/timescaledb-nedir-ve-neden-kullanmalisiniz\/","og_locale":"tr_TR","og_type":"article","og_title":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","og_description":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z? Zaman serisi verileri, g\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda giderek daha fazla \u00f6nem kazanmaktad\u0131r. I","og_url":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-12T02:41:34+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"6 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?","datePublished":"2025-10-12T02:41:34+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/"},"wordCount":1438,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/","url":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/","name":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z? - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-12T02:41:34+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/timescaledb-nedir-ve-neden-kullanmalisiniz\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"TimescaleDB Nedir ve Neden Kullanmal\u0131s\u0131n\u0131z?"}]},{"@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\/31637","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=31637"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31637\/revisions"}],"predecessor-version":[{"id":31638,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31637\/revisions\/31638"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31637"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31637"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31637"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}