diff --git a/.gitignore b/.gitignore
index f53598b4b4..7acee3ad01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,8 +16,8 @@
/docs/publish
/docs/edit
/docs/website
-/docs/venv/
-/docs/tools/venv/
+/docs/venv
+/docs/tools/venv
/docs/tools/translate/venv
/docs/tools/translate/output.md
/docs/en/single.md
diff --git a/docs/tools/build.py b/docs/tools/build.py
index 65fc6d12f5..30a8d6f1ee 100755
--- a/docs/tools/build.py
+++ b/docs/tools/build.py
@@ -82,6 +82,7 @@ def build_for_lang(lang, args):
'fr': 'Français',
'ru': 'Русский',
'ja': '日本語',
+ 'tr': 'Türkçe',
'fa': 'فارسی'
}
@@ -92,6 +93,7 @@ def build_for_lang(lang, args):
'fr': 'Documentation ClickHouse %s',
'ru': 'Документация ClickHouse %s',
'ja': 'ClickHouseドキュメント %s',
+ 'tr': 'ClickHouse Belgeleri %s',
'fa': 'مستندات %sClickHouse'
}
@@ -375,7 +377,7 @@ if __name__ == '__main__':
os.chdir(os.path.join(os.path.dirname(__file__), '..'))
website_dir = os.path.join('..', 'website')
arg_parser = argparse.ArgumentParser()
- arg_parser.add_argument('--lang', default='en,es,fr,ru,zh,ja,fa')
+ arg_parser.add_argument('--lang', default='en,es,fr,ru,zh,ja,tr,fa')
arg_parser.add_argument('--docs-dir', default='.')
arg_parser.add_argument('--theme-dir', default=website_dir)
arg_parser.add_argument('--website-dir', default=website_dir)
diff --git a/docs/tools/make_links.sh b/docs/tools/make_links.sh
index dfe9c56615..2a27990f44 100755
--- a/docs/tools/make_links.sh
+++ b/docs/tools/make_links.sh
@@ -6,7 +6,7 @@
function do_make_links()
{
- langs=(en es zh fr ru ja fa)
+ langs=(en es zh fr ru ja tr fa)
src_file="$1"
for lang in "${langs[@]}"
do
diff --git a/docs/tools/translate/translate.py b/docs/tools/translate/translate.py
index 5b4dc3f548..759e5b849d 100755
--- a/docs/tools/translate/translate.py
+++ b/docs/tools/translate/translate.py
@@ -63,8 +63,8 @@ def translate_toc(root, lang):
def translate_po():
import babel.messages.pofile
- base_dir = os.path.join(os.path.dirname(__file__), '..', '..', 'website', 'locale')
- for lang in ['en', 'zh', 'es', 'fr', 'ru', 'ja', 'fa']:
+ base_dir = os.path.join(os.path.dirname(__file__), '..', '..', '..', 'website', 'locale')
+ for lang in ['en', 'zh', 'es', 'fr', 'ru', 'ja', 'tr', 'fa']:
po_path = os.path.join(base_dir, lang, 'LC_MESSAGES', 'messages.po')
with open(po_path, 'r') as f:
po_file = babel.messages.pofile.read_po(f, locale=lang, domain='messages')
diff --git a/docs/tools/translate/update-po.sh b/docs/tools/translate/update-po.sh
index bf9d1d4b7f..f2f4039bcb 100755
--- a/docs/tools/translate/update-po.sh
+++ b/docs/tools/translate/update-po.sh
@@ -2,11 +2,11 @@
# Usage: update-po.sh
set -ex
BASE_DIR=$(dirname $(readlink -f $0))
-WEBSITE_DIR="${BASE_DIR}/../../website"
+WEBSITE_DIR="${BASE_DIR}/../../../website"
LOCALE_DIR="${WEBSITE_DIR}/locale"
MESSAGES_POT="${LOCALE_DIR}/messages.pot"
BABEL_INI="${BASE_DIR}/babel-mapping.ini"
-LANGS="en zh es fr ru ja fa"
+LANGS="en zh es fr ru ja tr fa"
source "${BASE_DIR}/venv/bin/activate"
cd "${WEBSITE_DIR}"
pybabel extract "." -o "${MESSAGES_POT}" -F "${BABEL_INI}"
diff --git a/docs/tr/commercial/cloud.md b/docs/tr/commercial/cloud.md
new file mode 100644
index 0000000000..f20656cc42
--- /dev/null
+++ b/docs/tr/commercial/cloud.md
@@ -0,0 +1,21 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+---
+
+# ClickHouse Bulut Servis Sağlayıcıları {#clickhouse-cloud-service-providers}
+
+!!! info "Bilgin"
+ Yönetilen ClickHouse hizmeti ile genel bir bulut başlattıysanız, çekinmeyin [çekme isteği aç](https://github.com/ClickHouse/ClickHouse/edit/master/docs/en/commercial/cloud.md) aşağıdaki listeye ekleyerek.
+
+## Yandex Bulut {#yandex-cloud}
+
+[Yandex Clickhouse için yönetilen hizmet](https://cloud.yandex.com/services/managed-clickhouse?utm_source=referrals&utm_medium=clickhouseofficialsite&utm_campaign=link3) aşağıdaki temel özellikleri sağlar:
+
+- İçin tamamen yönetilen ZooKeeper hizmeti [ClickHouse çoğaltma](../engines/table_engines/mergetree_family/replication.md)
+- Çoklu depolama tipi seçenekleri
+- Farklı kullanılabilirlik bölgelerinde yinelemeler
+- Şifreleme ve izolasyon
+- Otomatik bakım
+
+{## [Orijinal makale](https://clickhouse.tech/docs/en/commercial/cloud/) ##}
diff --git a/docs/tr/commercial/index.md b/docs/tr/commercial/index.md
new file mode 100644
index 0000000000..104a342714
--- /dev/null
+++ b/docs/tr/commercial/index.md
@@ -0,0 +1,9 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: Ticari
+toc_priority: 70
+toc_title: Ticari
+---
+
+
diff --git a/docs/tr/development/architecture.md b/docs/tr/development/architecture.md
new file mode 100644
index 0000000000..4713c2e540
--- /dev/null
+++ b/docs/tr/development/architecture.md
@@ -0,0 +1,203 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 62
+toc_title: "ClickHouse mimarisine genel bak\u0131\u015F"
+---
+
+# ClickHouse mimarisine genel bakış {#overview-of-clickhouse-architecture}
+
+ClickHouse gerçek bir sütun yönelimli DBMS olduğunu. Veriler sütunlar tarafından ve dizilerin yürütülmesi sırasında (vektörler veya sütun parçaları) saklanır. Mümkün olduğunda, işlemler tek tek değerler yerine dizilere gönderilir. Buna denir “vectorized query execution,” ve gerçek veri işleme maliyetini düşürmeye yardımcı olur.
+
+> Bu fikir yeni bir şey değil. Bu kadar uzanır `APL` programlama dili ve Tor andunları: `A +`, `J`, `K`, ve `Q`. Dizi programlama bilimsel veri işlemede kullanılır. Bu fikir ilişkisel veritabanlarında yeni bir şey değildir: örneğin, `Vectorwise` sistem.
+
+Sorgu işlemeyi hızlandırmak için iki farklı yaklaşım vardır: vektörize sorgu yürütme ve çalışma zamanı kodu oluşturma. İkincisi, tüm Yönlendirme ve dinamik gönderimi kaldırır. Bu yaklaşımların hiçbiri diğerinden kesinlikle daha iyi değildir. Çalışma zamanı kodu üretimi, birçok işlemi birleştirdiğinde daha iyi olabilir, böylece CPU yürütme birimlerini ve boru hattını tam olarak kullanır. Vectorized sorgu yürütme daha az pratik olabilir, çünkü önbelleğe yazılması ve geri okunması gereken geçici vektörler içerir. Geçici veri L2 önbelleğinde uymuyorsa, bu bir sorun haline gelir. Ancak vektörize sorgu yürütme, CPU'nun SIMD yeteneklerini daha kolay kullanır. Bir [araştırma öd paperevi](http://15721.courses.cs.cmu.edu/spring2016/papers/p5-sompolski.pdf) arkadaşlarımız tarafından yazıldı, her iki yaklaşımı birleştirmenin daha iyi olduğunu gösteriyor. ClickHouse vectorized sorgu yürütme kullanır ve çalışma zamanı kodu üretimi için başlangıç desteği sınırlıdır.
+
+## Sütun {#columns}
+
+`IColumn` arabirim, bellekteki sütunları temsil etmek için kullanılır (aslında, sütunların parçaları). Bu arayüz, çeşitli ilişkisel operatörlerin uygulanması için yardımcı yöntemler sağlar. Hemen hemen tüm işlemler değişmez: orijinal sütunu değiştirmezler, ancak yeni bir değiştirilmiş bir tane oluştururlar. Örneğin, `IColumn :: filter` yöntem bir filtre bayt maskesi kabul eder. Bu için kullanılır `WHERE` ve `HAVING` ilişkisel operatörler. Ek örnekler: `IColumn :: permute` desteklemek için yöntem `ORDER BY`, bu `IColumn :: cut` desteklemek için yöntem `LIMIT`.
+
+Çeşitli `IColumn` uygulanışlar (`ColumnUInt8`, `ColumnString` ve benzeri) sütunların bellek düzeninden sorumludur. Bellek düzeni genellikle bitişik bir dizidir. Sütunların tamsayı türü için, sadece bir bitişik dizidir, örneğin `std :: vector`. İçin `String` ve `Array` sütunlar, iki vektördür: biri bitişik olarak yerleştirilmiş tüm dizi elemanları için ve her dizinin başlangıcına ait ofsetler için ikinci bir tane. Ayrıca var `ColumnConst` bu bellekte sadece bir değer depolar, ancak bir sütuna benziyor.
+
+## Alan {#field}
+
+Bununla birlikte, bireysel değerlerle de çalışmak mümkündür. Bireysel bir değeri temsil etmek için, `Field` kullanılır. `Field` sadece ayrımcılığa uğramış bir birlik mi `UInt64`, `Int64`, `Float64`, `String` ve `Array`. `IColumn` has the `operator[]` n - inci değerini bir olarak alma yöntemi `Field` ve... `insert` bir ekleme yöntemi `Field` bir sütunun sonuna. Bu yöntemler çok verimli değildir, çünkü geçici olarak uğraşmayı gerektirirler `Field` tek bir değeri temsil eden nesneler. Daha etkili yöntemleri vardır, mesela: `insertFrom`, `insertRangeFrom` ve bu yüzden.
+
+`Field` bir tablo için belirli bir veri türü hakkında yeterli bilgiye sahip değildir. Mesela, `UInt8`, `UInt16`, `UInt32`, ve `UInt64` hepsi olarak temsil edilir `UInt64` in a `Field`.
+
+## Sızdıran Soyutlamalar {#leaky-abstractions}
+
+`IColumn` verilerin ortak ilişkisel dönüşümleri için yöntemler vardır, ancak tüm ihtiyaçları karşılamazlar. Mesela, `ColumnUInt64` iki sütunun toplamını hesaplamak için bir yöntem yoktur ve `ColumnString` bir alt dize araması çalıştırmak için bir yöntem yok. Bu sayısız rutinleri dışında uygulanmaktadır `IColumn`.
+
+Sütunlar üzerinde çeşitli işlevler kullanarak genel, verimli olmayan bir şekilde uygulanabilir `IColumn` çıkarma yöntemleri `Field` değerleri veya belirli bir veri iç bellek düzeni bilgisini kullanarak özel bir şekilde `IColumn` uygulanış. Döküm fonksiyonları ile belirli bir `IColumn` yazın ve doğrudan iç temsil ile anlaşma. Mesela, `ColumnUInt64` has the `getData` bir iç diziye başvuru döndüren yöntem, daha sonra ayrı bir yordam okur veya bu diziyi doğrudan doldurur. Sahibiz “leaky abstractions” çeşitli rutinlerin verimli uzmanlıklarına izin vermek.
+
+## Veri Türleri {#data_types}
+
+`IDataType` seri hale getirme ve serileştirmeden sorumludur: ikili veya metin biçiminde sütunların veya bireysel değerlerin parçalarını okumak ve yazmak için. `IDataType` tablolardaki veri türlerine doğrudan karşılık gelir. Örneğin, `DataTypeUInt32`, `DataTypeDateTime`, `DataTypeString` ve böyle devam eder.
+
+`IDataType` ve `IColumn` sadece gevşek birbirleriyle ilişkilidir. Farklı veri türleri bellekte aynı tarafından temsil edilebilir `IColumn` uygulanışlar. Mesela, `DataTypeUInt32` ve `DataTypeDateTime` her ikisi de tarafından temsil edilir `ColumnUInt32` veya `ColumnConstUInt32`. Buna ek olarak, aynı veri türü farklı tarafından temsil edilebilir `IColumn` uygulanışlar. Mesela, `DataTypeUInt8` tarafından temsil edilebilir `ColumnUInt8` veya `ColumnConstUInt8`.
+
+`IDataType` yalnızca meta verileri depolar. Mesela, `DataTypeUInt8` hiçbir şey saklamıyor (vptr hariç) ve `DataTypeFixedString` mağazalar sadece `N` (sabit boyutlu dizelerin boyutu).
+
+`IDataType` çeşitli veri formatları için yardımcı yöntemlere sahiptir. Örnekler, Olası Alıntı ile bir değeri serileştirmek, json için bir değeri serileştirmek ve XML formatının bir parçası olarak bir değeri serileştirmek için kullanılan yöntemlerdir. Veri formatlarına doğrudan yazışma yoktur. Örneğin, farklı veri biçimleri `Pretty` ve `TabSeparated` aynı kullanabilirsiniz `serializeTextEscaped` hel methodper yöntemi `IDataType` Arabirim.
+
+## Blok {#block}
+
+A `Block` bellekteki bir tablonun bir alt kümesini (yığın) temsil eden bir kapsayıcıdır. Bu sadece üçlü bir dizi: `(IColumn, IDataType, column name)`. Sorgu yürütme sırasında veri tarafından işlenir `Block`s. Eğer bir `Block`(bu yaptığımız verileri `IColumn` nesne), biz onun türü hakkında bilgi var (içinde `IDataType`) bu bize bu sütunla nasıl başa çıkacağımızı söyler ve sütun adına sahibiz. Tablodan orijinal sütun adı veya hesaplamaların geçici sonuçlarını almak için atanan bazı yapay ad olabilir.
+
+Bir bloktaki sütunlar üzerinde bazı işlevleri hesapladığımızda, bloğa sonucu olan başka bir sütun ekleriz ve işlemler değişmez olduğu için işlevin argümanları için sütunlara dokunmayız. Daha sonra, gereksiz sütunlar bloktan kaldırılabilir, ancak değiştirilemez. Ortak alt ifadelerin ortadan kaldırılması için uygundur.
+
+İşlenen her veri yığını için bloklar oluşturulur. Aynı hesaplama türü için, sütun adları ve türleri farklı bloklar için aynı kalır ve yalnızca sütun verileri değişir unutmayın. Küçük blok boyutları shared\_ptrs ve sütun adlarını kopyalamak için geçici dizeleri yüksek bir ek yükü olduğundan blok üstbilgisinden blok verileri bölmek daha iyidir.
+
+## Blok Akışları {#block-streams}
+
+Blok akışları veri işleme içindir. Bir yerden veri okumak, veri dönüşümleri gerçekleştirmek veya bir yere veri yazmak için blok akışları kullanıyoruz. `IBlockInputStream` has the `read` mevcut iken bir sonraki bloğu getirme yöntemi. `IBlockOutputStream` has the `write` bloğu bir yere itmek için yöntem.
+
+Akar responsibles areular sorumludur:
+
+1. Bir tabloya okuma veya yazma. Tablo sadece okuma veya yazma blokları için bir akış döndürür.
+2. Veri formatlarının uygulanması. Örneğin, bir terminale veri çıkışı yapmak istiyorsanız `Pretty` biçim, blokları ittiğiniz bir blok çıkış akışı oluşturursunuz ve bunları biçimlendirir.
+3. Veri dönüşümleri gerçekleştirme. Diyelim ki var `IBlockInputStream` ve filtrelenmiş bir akış oluşturmak istiyorum. Yarat createtığınız `FilterBlockInputStream` ve akışı ile başlatın. Sonra bir blok çektiğinizde `FilterBlockInputStream`, akışınızdan bir blok çeker, filtreler ve filtrelenmiş bloğu size döndürür. Sorgu yürütme boru hatları bu şekilde temsil edilir.
+
+Daha sofistike dönüşümler var. Örneğin, çektiğiniz zaman `AggregatingBlockInputStream`, kaynağındaki tüm verileri okur, toplar ve sizin için toplanmış bir veri akışı döndürür. Başka bir örnek: `UnionBlockInputStream` yapıcıdaki birçok giriş kaynağını ve ayrıca bir dizi iş parçacığını kabul eder. Birden çok iş parçacığı başlatır ve paralel olarak birden fazla kaynaktan okur.
+
+> Blok akışları “pull” akışı kontrol etme yaklaşımı: ilk akıştan bir blok çektiğinizde, gerekli blokları iç içe geçmiş akışlardan çeker ve tüm yürütme boru hattı çalışır. Ne “pull” ne “push” en iyi çözümdür, çünkü kontrol akışı örtükdür ve bu, birden fazla sorgunun eşzamanlı yürütülmesi (birçok boru hattının birlikte birleştirilmesi) gibi çeşitli özelliklerin uygulanmasını sınırlar. Bu sınırlama, coroutines ile veya sadece birbirlerini bekleyen ekstra iş parçacıkları çalıştırarak aşılabilir. Kontrol akışını açık hale getirirsek daha fazla olasılığa sahip olabiliriz: verileri bir hesaplama biriminden diğerine bu hesaplama birimlerinin dışında geçirme mantığını bulursak. Re thisad this [makale](http://journal.stuffwithstuff.com/2013/01/13/iteration-inside-and-out/) daha fazla düşünce için.
+
+Sorgu yürütme boru hattının her adımda geçici veri oluşturduğuna dikkat etmeliyiz. Blok boyutunu yeterince küçük tutmaya çalışıyoruz, böylece geçici veriler CPU önbelleğine sığıyor. Bu varsayımla, geçici veri yazmak ve okumak, diğer hesaplamalarla karşılaştırıldığında neredeyse ücretsizdir. Boru hattındaki birçok operasyonu bir araya getirmek için bir alternatif düşünebiliriz. Boru hattını mümkün olduğunca kısa hale getirebilir ve geçici verilerin çoğunu kaldırabilir, bu da bir avantaj olabilir, ancak dezavantajları da vardır. Örneğin, bölünmüş bir boru hattı, Ara verileri önbelleğe almayı, aynı anda çalışan benzer sorgulardan Ara verileri çalmayı ve benzer sorgular için boru hatlarını birleştirmeyi kolaylaştırır.
+
+## Biçimliler {#formats}
+
+Veri formatları blok akışları ile uygulanır. Var “presentational” sadece müşteriye veri çıkışı için uygun biçimler, örneğin `Pretty` sadece sağlayan biçim `IBlockOutputStream`. Ve gibi giriş / çıkış biçimleri vardır `TabSeparated` veya `JSONEachRow`.
+
+Satır akışları da vardır: `IRowInputStream` ve `IRowOutputStream`. Verileri bloklarla değil, tek tek satırlarla çekmenize/itmenize izin verirler. Ve sadece satır yönelimli formatların uygulanmasını basitleştirmek için gereklidir. Sarıcı `BlockInputStreamFromRowInputStream` ve `BlockOutputStreamFromRowOutputStream` satır yönelimli akışları normal blok yönelimli akışlara dönüştürmenize izin verin.
+
+## I/O {#io}
+
+Bayt yönelimli giriş / çıkış için, `ReadBuffer` ve `WriteBuffer` soyut sınıflar. C++yerine kullanılırlar `iostream`s. merak etmeyin: her olgun C++ projesi başka bir şey kullanıyor `iostream`s iyi nedenlerden dolayı.
+
+`ReadBuffer` ve `WriteBuffer` sadece bitişik bir tampon ve bu tampondaki konuma işaret eden bir imleç. Uygulamalar, arabellek belleğine sahip olabilir veya sahip olmayabilir. Arabelleği aşağıdaki verilerle doldurmak için sanal bir yöntem vardır (for `ReadBuffer`) veya tamponu bir yere yıkamak için (için `WriteBuffer`). Sanal yöntemler nadiren denir.
+
+Uygulamaları `ReadBuffer`/`WriteBuffer` sıkıştırma uygulamak için dosyalar ve dosya tanımlayıcıları ve ağ soketleri ile çalışmak için kullanılır (`CompressedWriteBuffer` is initialized with another WriteBuffer and performs compression before writing data to it), and for other purposes – the names `ConcatReadBuffer`, `LimitReadBuffer`, ve `HashingWriteBuffer` kendileri için konuşuyoruz.
+
+Read / WriteBuffers sadece baytlarla ilgilenir. Fonksiyonları vardır `ReadHelpers` ve `WriteHelpers` başlık dosyaları biçimlendirme giriş/çıkış ile yardımcı olmak için. Örneğin, ondalık biçimde bir sayı yazmak için yardımcılar vardır.
+
+Bir sonuç kümesi yazmak istediğinizde neler olduğuna bakalım `JSON` stdout için biçimlendirin. Eğer bir sonuç getirilecek hazır set var `IBlockInputStream`. Yarat createtığınız `WriteBufferFromFileDescriptor(STDOUT_FILENO)` STDOUT için bayt yazmak için. Yarat createtığınız `JSONRowOutputStream` bununla başlatıldı `WriteBuffer`, satır yazmak için `JSON` stdout. Yarat createtığınız `BlockOutputStreamFromRowOutputStream` bu da yetmiyormuş gibi göstermek için `IBlockOutputStream`. Sonra Ara `copyData` veri aktarmak için `IBlockInputStream` -e doğru `IBlockOutputStream` ve her şey çalışıyor. İçten, `JSONRowOutputStream` çeşitli json sınırlayıcıları yazacak ve `IDataType::serializeTextJSON` bir referans ile yöntem `IColumn` ve satır numarası argüman olarak. Sonuç olarak, `IDataType::serializeTextJSON` bir yöntem çağırır `WriteHelpers.h`: mesela, `writeText` sayısal türler ve `writeJSONString` için `DataTypeString`.
+
+## Tablolar {#tables}
+
+Bu `IStorage` arayüz tabloları temsil eder. Bu arayüzün farklı uygulamaları farklı tablo motorlarıdır. Örnekler şunlardır `StorageMergeTree`, `StorageMemory` ve bu yüzden. Bu sınıfların örnekleri sadece tablolardır.
+
+Anahtar `IStorage` yöntemler şunlardır `read` ve `write`. Ayrıca vardır `alter`, `rename`, `drop` ve bu yüzden. Bu `read` yöntem aşağıdaki bağımsız değişkenleri kabul eder: bir tablodan okunacak sütun kümesi, `AST` dikkate alınması gereken sorgu ve döndürülmesi gereken akış sayısı. Bir veya birden fazla döndürür `IBlockInputStream` nesneler ve sorgu yürütme sırasında bir tablo altyapısı içinde tamamlanan veri işleme aşaması hakkında bilgi.
+
+Çoğu durumda, read yöntemi yalnızca belirtilen sütunları bir tablodan okumaktan sorumludur, daha fazla veri işleme için değil. Tüm diğer veri işleme sorgu yorumlayıcısı tarafından yapılır ve sorumluluk dışında `IStorage`.
+
+Ancak önemli istisnalar var:
+
+- AST sorgusu için geçirilir `read` yöntemi ve tablo altyapısı dizin kullanımını türetmek ve bir tablodan daha az veri okumak için kullanabilirsiniz.
+- Bazen tablo motoru verileri belirli bir aşamaya kadar işleyebilir. Mesela, `StorageDistributed` uzak sunuculara sorgu gönderebilir, farklı uzak sunuculardan gelen verilerin birleştirilebileceği bir aşamaya veri işlemelerini isteyebilir ve bu önceden işlenmiş verileri döndürebilir. Sorgu yorumlayıcısı daha sonra verileri işlemeyi tamamlar.
+
+Tablo `read` yöntem birden çok döndürebilir `IBlockInputStream` nesneleri paralel veri işleme izin vermek için. Bu çoklu blok giriş akışları bir tablodan paralel olarak okuyabilir. Ardından, bu akışları bağımsız olarak hesaplanabilen çeşitli dönüşümlerle (ifade değerlendirme veya filtreleme gibi) sarabilir ve bir `UnionBlockInputStream` bunların üzerine, paralel olarak birden fazla akıştan okumak için.
+
+Ayrıca vardır `TableFunction`s. bunlar geçici olarak dönen işlevlerdir `IStorage` içinde kullanılacak nesne `FROM` bir sorgu yan tümcesi.
+
+Tablo motorunuzu nasıl uygulayacağınıza dair hızlı bir fikir edinmek için, basit bir şeye bakın `StorageMemory` veya `StorageTinyLog`.
+
+> Bu sonucu `read` yöntem, `IStorage` dönüşler `QueryProcessingStage` – information about what parts of the query were already calculated inside storage.
+
+## Ayrıştırıcılar {#parsers}
+
+Elle yazılmış özyinelemeli iniş ayrıştırıcı bir sorgu ayrıştırır. Mesela, `ParserSelectQuery` sorgunun çeşitli bölümleri için temel ayrıştırıcıları yinelemeli olarak çağırır. Ayrıştırıcılar bir `AST`. Bu `AST` örnekleri olan düğüm bylerle temsil edilir `IAST`.
+
+> Ayrıştırıcı jeneratörler tarihsel nedenlerle kullanılmaz.
+
+## Tercümanlar {#interpreters}
+
+Sorgu yürütme kanalının oluşturulmasından tercümanlar sorumludur. `AST`. Gibi basit tercümanlar vardır `InterpreterExistsQuery` ve `InterpreterDropQuery` veya daha sofistike `InterpreterSelectQuery`. Sorgu yürütme boru hattı, blok giriş veya çıkış akışlarının birleşimidir. Örneğin, yorumlama sonucu `SELECT` sorgu olduğunu `IBlockInputStream` sonuç kümesini okumak için; INSERT sorgusunun sonucu `IBlockOutputStream` ekleme için veri yazmak ve yorumlama sonucu `INSERT SELECT` sorgu olduğunu `IBlockInputStream` bu, ilk okumada boş bir sonuç kümesi döndürür, ancak verileri kopyalar `SELECT` -e doğru `INSERT` aynı zamanda.
+
+`InterpreterSelectQuery` kullanma `ExpressionAnalyzer` ve `ExpressionActions` sorgu analizi ve dönüşümler için makine. Bu, kural tabanlı sorgu iyileştirmelerinin çoğunun yapıldığı yerdir. `ExpressionAnalyzer` oldukça dağınık ve yeniden yazılmalıdır: modüler dönüşümlere veya sorguya izin vermek için ayrı sınıflara çeşitli sorgu dönüşümleri ve optimizasyonlar çıkarılmalıdır.
+
+## İşlevler {#functions}
+
+Sıradan fonksiyonlar ve toplam fonksiyonlar vardır. Toplama işlevleri için bir sonraki bölüme bakın.
+
+Ordinary functions don't change the number of rows – they work as if they are processing each row independently. In fact, functions are not called for individual rows, but for `Block`'s vectorized sorgu yürütme uygulamak için veri.
+
+Gibi bazı çeşitli fonksiyonlar vardır [blockSize](../sql_reference/functions/other_functions.md#function-blocksize), [rowNumberİnBlock](../sql_reference/functions/other_functions.md#function-rownumberinblock), ve [runningAccumulate](../sql_reference/functions/other_functions.md#function-runningaccumulate), blok işlemeyi istismar eden ve satırların bağımsızlığını ihlal eden.
+
+Clickhouse'un güçlü yazımı var, bu yüzden örtük tür dönüşümü yok. Bir işlev belirli bir tür kombinasyonunu desteklemiyorsa, bir istisna atar. Ancak, birçok farklı tür kombinasyonu için işlevler çalışabilir (aşırı yüklenebilir). Örneğin, `plus` fonksiyonu (uygulamak için `+` operatör) sayısal türlerin herhangi bir kombinasyonu için çalışır: `UInt8` + `Float32`, `UInt16` + `Int8` ve bu yüzden. Ayrıca, bazı variadic işlevleri gibi bağımsız değişkenlerin herhangi bir sayıda kabul edebilir `concat` işlev.
+
+Bir işlev açıkça desteklenen veri türlerini gönderir ve desteklenen çünkü bir işlev uygulamak biraz rahatsız edici olabilir `IColumns`. Örneğin, `plus` işlev, sayısal türlerin ve sabit veya sabit olmayan sol ve sağ bağımsız değişkenlerin her birleşimi için bir C++ şablonunun örneklendirilmesiyle oluşturulan koda sahiptir.
+
+Bu şablon kodu kabartmak önlemek için çalışma zamanı kodu nesil uygulamak için mükemmel bir yerdir. Ayrıca, kaynaşmış çarpma-ekleme gibi kaynaşmış işlevler eklemeyi veya bir döngü yinelemesinde birden fazla karşılaştırma yapmayı mümkün kılar.
+
+Vektörize sorgu yürütme nedeniyle, işlevler kısa devre değildir. Örneğin, yazarsanız `WHERE f(x) AND g(y)`, her iki taraf da satırlar için bile hesaplanır `f(x)` sıfırdır (hariç `f(x)` sıfır sabit bir ifadedir). Ama eğer seçicilik `f(x)` durum yüksek ve hesaplama `f(x)` çok daha ucuzdur `g(y)`, çok geçişli hesaplama uygulamak daha iyidir. İlk önce hesaplayacaktı `f(x)`, daha sonra sonucu sütunları süzün ve sonra hesaplayın `g(y)` sadece daha küçük, filtrelenmiş veri parçaları için.
+
+## Toplama Fonksiyonları {#aggregate-functions}
+
+Toplama işlevleri durumsal işlevlerdir. Geçirilen değerleri bir duruma biriktirir ve bu durumdan sonuç almanıza izin verir. İle Yönet theyil theirler. `IAggregateFunction` Arabirim. Devletler oldukça basit olabilir (devlet `AggregateFunctionCount` sadece bir tek `UInt64` değeri) veya oldukça karmaşık (devlet `AggregateFunctionUniqCombined` doğrusal bir dizi, bir karma tablo ve bir kombinasyonudur `HyperLogLog` olasılıksal veri yapısı).
+
+Devletler tahsis edilir `Arena` (bir bellek havuzu) yüksek önemlilik yürütürken birden çok durumla başa çıkmak için `GROUP BY` sorgu. Devletler önemsiz olmayan bir yapıcı ve yıkıcı olabilir: örneğin, karmaşık toplama durumları ek belleği kendileri tahsis edebilir. Devletlerin yaratılmasına ve yok edilmesine ve mülkiyet ve yıkım düzeninin doğru bir şekilde geçmesine biraz dikkat gerektirir.
+
+Toplama durumları serileştirilmiş ve dağıtılmış sorgu yürütme sırasında ağ üzerinden geçmek veya bunları yeterli RAM olmadığı diskte yazmak için serileştirilmiş. Hatta bir tablo ile saklanabilir `DataTypeAggregateFunction` verilerin artımlı toplanmasına izin vermek için.
+
+> Toplu işlev durumları için seri hale getirilmiş veri biçimi şu anda sürümlendirilmemiş. Toplama durumları yalnızca geçici olarak saklanırsa sorun olmaz. Ama biz var `AggregatingMergeTree` artan toplama için tablo motoru ve insanlar zaten üretimde kullanıyor. Gelecekte herhangi bir toplama işlevi için seri hale getirilmiş biçimi değiştirirken geriye dönük uyumluluğun gerekli olmasının nedeni budur.
+
+## Hizmetçi {#server}
+
+Sunucu birkaç farklı arayüz uygular:
+
+- Herhangi bir yabancı istemciler için bir HTTP arabirimi.
+- Dağıtılmış sorgu yürütme sırasında yerel ClickHouse istemcisi ve sunucular arası iletişim için bir TCP arabirimi.
+- Çoğaltma için veri aktarımı için bir arabirim.
+
+DAHİLİ olarak, coroutines veya lifler olmadan sadece ilkel bir çok iş parçacıklı sunucudur. Sunucu, yüksek oranda basit sorguları işlemek için değil, nispeten düşük oranda karmaşık sorguları işlemek için tasarlandığından, her biri analitik için çok miktarda veri işleyebilir.
+
+Sunucu başlatır `Context` sorgu yürütme için gerekli ortama sahip sınıf: kullanılabilir veritabanlarının, kullanıcıların ve erişim haklarının, ayarların, kümelerin, işlem listesinin, sorgu günlüğünün vb. listesi. Tercümanlar bu ortamı kullanır.
+
+Sunucu TCP protokolü için tam geriye ve ileriye dönük uyumluluk sağlıyoruz: eski istemciler yeni sunucularla konuşabilir ve yeni istemciler eski sunucularla konuşabilir. Ancak sonsuza dek korumak istemiyoruz ve yaklaşık bir yıl sonra eski sürümler için destek kaldırıyoruz.
+
+!!! note "Not"
+ Çoğu harici uygulama için, HTTP arayüzünü kullanmanızı öneririz, çünkü basit ve kullanımı kolaydır. TCP protokolü, iç veri yapılarına daha sıkı bir şekilde bağlanır: veri bloklarını geçirmek için bir iç biçim kullanır ve sıkıştırılmış veriler için özel çerçeveleme kullanır. Bu protokol için bir C kütüphanesi yayınlamadık çünkü pratik olmayan ClickHouse kod tabanının çoğunu bağlamayı gerektiriyor.
+
+## Dağıtılmış Sorgu Yürütme {#distributed-query-execution}
+
+Bir küme kurulumundaki sunucular çoğunlukla bağımsızdır. Sen-ebilmek yaratmak a `Distributed` bir kümedeki bir veya tüm sunucularda tablo. Bu `Distributed` table does not store data itself – it only provides a “view” Bir kümenin birden çok düğümündeki tüm yerel tablolara. Bir seçtiğinizde `Distributed` tablo, bu sorguyu yeniden yazar, Yük Dengeleme ayarlarına göre uzak düğümleri seçer ve sorguyu onlara gönderir. Bu `Distributed` tablo, farklı sunuculardan gelen Ara sonuçların birleştirilebileceği bir aşamaya kadar bir sorguyu işlemek için uzak sunuculardan ister. Sonra Ara sonuçları alır ve onları birleştirir. Dağıtılmış tablo, uzak sunuculara mümkün olduğunca fazla çalışma dağıtmaya çalışır ve ağ üzerinden çok fazla ara veri göndermez.
+
+In veya JOIN yan tümcelerinde alt sorgular olduğunda işler daha karmaşık hale gelir ve her biri bir `Distributed` Tablo. Bu sorguların yürütülmesi için farklı stratejilerimiz var.
+
+Dağıtılmış sorgu yürütme için genel bir sorgu planı yoktur. Her düğüm, işin kendi kısmı için yerel sorgu planına sahiptir. Biz sadece basit tek geçişli dağıtılmış sorgu yürütme var: biz uzak düğümler için sorgular göndermek ve sonra sonuçları birleştirmek. Ancak bu, yüksek önemlilik grubu BYs ile veya JOIN için büyük miktarda geçici veri içeren karmaşık sorgular için mümkün değildir. Bu gibi durumlarda, gerek “reshuffle” ek koordinasyon gerektiren sunucular arasındaki veriler. ClickHouse bu tür bir sorgu yürütülmesini desteklemiyor ve üzerinde çalışmamız gerekiyor.
+
+## Ağaç Birleştirme {#merge-tree}
+
+`MergeTree` birincil anahtarla dizin oluşturmayı destekleyen bir depolama altyapısı ailesidir. Birincil anahtar, isteğe bağlı bir sütun veya ifade kümesi olabilir. Veri `MergeTree` tablo saklanır “parts”. Her bölüm verileri birincil anahtar sırasına göre saklar, böylece veriler birincil anahtar tuple tarafından lexicographically sıralanır. Tüm tablo sütunları ayrı olarak saklanır `column.bin` bu kısımlardaki dosyalar. Dosyalar sıkıştırılmış bloklardan oluşur. Her blok, ortalama değer boyutuna bağlı olarak genellikle 64 KB ila 1 MB sıkıştırılmamış veridir. Bloklar, birbiri ardına bitişik olarak yerleştirilmiş sütun değerlerinden oluşur. Sütun değerleri her sütun için aynı sıradadır (birincil anahtar siparişi tanımlar), bu nedenle birçok sütun tarafından yineleme yaptığınızda, karşılık gelen satırlar için değerler alırsınız.
+
+Birincil anahtarın kendisi “sparse”. Her satır Adres yok ama verilerin sadece biraz değişir. Ayıran `primary.idx` dosya, n'nin çağrıldığı her N-inci satır için birincil anahtarın değerine sahiptir `index_granularity` (genellikle, n = 8192). Ayrıca, her sütun için, biz var `column.mrk` dosyaları ile “marks,” veri dosyasındaki her N-inci satıra ofset olan. Her işaret bir çifttir: dosyadaki ofset sıkıştırılmış bloğun başlangıcına ve sıkıştırılmış bloktaki ofset verilerin başlangıcına. Genellikle, sıkıştırılmış bloklar işaretlerle hizalanır ve sıkıştırılmış bloktaki ofset sıfırdır. İçin veri `primary.idx` her zaman bellekte bulunur ve veri `column.mrk` dosyalar önbelleğe alınır.
+
+Bir kısm aından bir şey okuy readacağımız zaman `MergeTree` bak biz `primary.idx` veri ve istenen verileri içerebilecek aralıkları bulun, ardından `column.mrk` veri ve bu aralıkları okumaya başlamak için nerede için uzaklıklar hesaplayın. Çünkü seyrek, fazla veri okunabilir. ClickHouse, basit nokta sorgularının yüksek bir yükü için uygun değildir, çünkü tüm Aralık `index_granularity` her anahtar için satırlar okunmalı ve her sütun için sıkıştırılmış bloğun tamamı sıkıştırılmalıdır. Dizin için fark edilebilir bellek tüketimi olmadan tek bir sunucu başına trilyonlarca satır tutabilmemiz gerektiğinden dizini seyrek yaptık. Ayrıca, birincil anahtar seyrek olduğundan, benzersiz değildir: ekleme zamanında tablodaki anahtarın varlığını denetleyemez. Bir tabloda aynı anahtara sahip birçok satır olabilir.
+
+Ne zaman sen `INSERT` içine veri bir demet `MergeTree`, bu grup birincil anahtar sırasına göre sıralanır ve yeni bir bölüm oluşturur. Bazı parçaları periyodik olarak seçen ve parça sayısını nispeten düşük tutmak için bunları tek bir sıralanmış parçaya birleştiren arka plan iş parçacıkları vardır. Bu yüzden denir `MergeTree`. Tabii ki, birleştirme yol açar “write amplification”. Tüm parçalar değişmez: sadece oluşturulur ve silinir, ancak değiştirilmez. SELECT yürütüldüğünde, tablonun bir anlık görüntüsünü (bir parça kümesi) tutar. Birleştirildikten sonra, arızadan sonra iyileşmeyi kolaylaştırmak için eski parçaları bir süre tutuyoruz, bu nedenle birleştirilmiş bir parçanın muhtemelen kırıldığını görürsek, kaynak parçalarıyla değiştirebiliriz.
+
+`MergeTree` içermediği için bir lsm ağacı değildir “memtable” ve “log”: inserted data is written directly to the filesystem. This makes it suitable only to INSERT data in batches, not by individual row and not very frequently – about once per second is ok, but a thousand times a second is not. We did it this way for simplicity's sake, and because we are already inserting data in batches in our applications.
+
+> MergeTree tabloları yalnızca bir (birincil) dizine sahip olabilir: herhangi bir ikincil dizin yoktur. Bir mantıksal tablo altında birden fazla fiziksel gösterime izin vermek, örneğin verileri birden fazla fiziksel sırayla depolamak veya hatta orijinal verilerle birlikte önceden toplanmış verilerle gösterimlere izin vermek güzel olurdu.
+
+Arka plan birleştirmeleri sırasında ek iş yapan MergeTree motorları vardır. Örnekler şunlardır `CollapsingMergeTree` ve `AggregatingMergeTree`. Bu, güncellemeler için özel destek olarak kabul edilebilir. Kullanıcıların genellikle arka plan birleştirmeleri yürütüldüğünde zaman üzerinde hiçbir kontrole sahip çünkü bu gerçek güncellemeler olmadığını unutmayın, ve bir veri `MergeTree` tablo hemen hemen her zaman tamamen birleştirilmiş formda değil, birden fazla bölümde saklanır.
+
+## Çoğalma {#replication}
+
+Clickhouse çoğaltma başına tablo bazında yapılandırılabilir. Aynı sunucuda bazı çoğaltılmış ve bazı çoğaltılmamış tablolar olabilir. Ayrıca, iki faktörlü çoğaltmaya sahip bir tablo ve üç faktörlü bir tablo gibi farklı şekillerde çoğaltılmış tablolar da olabilir.
+
+Çoğaltma uygulanır `ReplicatedMergeTree` depolama motoru. The path in `ZooKeeper` depolama altyapısı için bir parametre olarak belirtilir. Aynı yolu olan tüm tablolar `ZooKeeper` birbirlerinin kopyaları haline gelir: verilerini senkronize eder ve tutarlılığı korurlar. Yinelemeler, bir tablo oluşturarak veya bırakarak dinamik olarak eklenebilir ve kaldırılabilir.
+
+Çoğaltma, zaman uyumsuz bir çoklu ana düzeni kullanır. Bir oturum olan herhangi bir yinelemeye veri ekleyebilirsiniz. `ZooKeeper` ve veriler diğer tüm yinelemelere zaman uyumsuz olarak çoğaltılır. ClickHouse güncelleştirmeleri desteklemediğinden, çoğaltma çakışmaz. Eklerin çekirdek onayı olmadığından, bir düğüm başarısız olursa, yalnızca eklenen veriler kaybolabilir.
+
+Çoğaltma için meta veri zookeeper saklanır. Hangi eylemlerin yapılacağını listeleyen bir çoğaltma günlüğü vardır. Eylemler şunlardır: parça al; parçaları Birleştir; bir bölüm bırak vb. Her çoğaltma, çoğaltma günlüğünü kendi kuyruğuna kopyalar ve sonra da sıradaki eylemleri yürütür. Örneğin, ekleme, “get the part” eylem günlüğüne oluşturulur ve her çoğaltma bu bölümü indirir. Birleştirmeler, baytla aynı sonuçları elde etmek için yinelemeler arasında koordine edilir. Tüm parçalar tüm kopyalarda aynı şekilde birleştirilir. Bir kopyayı lider olarak seçerek elde edilir ve bu çoğaltma birleştirir ve yazar “merge parts” günlük eylemler.
+
+Çoğaltma fiziksel: yalnızca sıkıştırılmış parçalar sorgular değil düğümler arasında aktarılır. Birleştirmeler, çoğu durumda ağ amplifikasyonundan kaçınarak ağ maliyetlerini düşürmek için her yinelemede bağımsız olarak işlenir. Büyük birleştirilmiş parçalar, yalnızca önemli çoğaltma gecikmesi durumunda ağ üzerinden gönderilir.
+
+Ayrıca, her bir kopya, ZooKeeper içindeki durumunu parça seti ve sağlama toplamı olarak depolar. Yerel dosya sistemindeki durum ZooKeeper referans durumundan ayrıldığında, kopya diğer kopyalardan eksik ve bozuk parçaları indirerek tutarlılığını geri yükler. Yerel dosya sisteminde beklenmeyen veya bozuk bazı veriler olduğunda, ClickHouse onu kaldırmaz, ancak ayrı bir dizine taşır ve unutur.
+
+!!! note "Not"
+ ClickHouse kümesi bağımsız parçalardan oluşur ve her parça kopyalardan oluşur. Küme **elastik değil**, böylece yeni bir parça ekledikten sonra, veriler otomatik olarak kırıklar arasında yeniden dengelenmez. Bunun yerine, küme yükünün eşit olmayan şekilde ayarlanması gerekiyor. Bu uygulama size daha fazla kontrol sağlar ve onlarca düğüm gibi nispeten küçük kümeler için uygundur. Ancak üretimde kullandığımız yüzlerce düğüm içeren kümeler için bu yaklaşım önemli bir dezavantaj haline gelir. Kümeler arasında otomatik olarak bölünebilen ve dengelenebilen dinamik olarak çoğaltılmış bölgelerle kümeye yayılan bir tablo altyapısı uygulamalıyız.
+
+{## [Orijinal makale](https://clickhouse.tech/docs/en/development/architecture/) ##}
diff --git a/docs/tr/development/browse_code.md b/docs/tr/development/browse_code.md
new file mode 100644
index 0000000000..dacebf0105
--- /dev/null
+++ b/docs/tr/development/browse_code.md
@@ -0,0 +1,14 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 63
+toc_title: "ClickHouse Kaynak Koduna G\xF6z At\u0131n"
+---
+
+# ClickHouse Kaynak Koduna Göz Atın {#browse-clickhouse-source-code}
+
+Kullanabilirsiniz **Woboq** online kod tarayıcı mevcut [burada](https://clickhouse.tech/codebrowser/html_report///ClickHouse/src/index.html). Bu kod navigasyon ve semantik vurgulama, arama ve indeksleme sağlar. Kod anlık görüntüsü günlük olarak güncellenir.
+
+Ayrıca, kaynaklara göz atabilirsiniz [GitHub](https://github.com/ClickHouse/ClickHouse) herzamanki.
+
+IDE'NİN ne kullanacağı ile ilgileniyorsanız, CLion, QT Creator, vs Code ve KDevelop (uyarılar ile) öneririz. Herhangi bir favori IDE kullanabilirsiniz. Vim ve Emacs da sayılır.
diff --git a/docs/tr/development/build.md b/docs/tr/development/build.md
new file mode 100644
index 0000000000..3a3cda15f1
--- /dev/null
+++ b/docs/tr/development/build.md
@@ -0,0 +1,141 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 64
+toc_title: "Linux \xFCzerinde ClickHouse nas\u0131l olu\u015Fturulur"
+---
+
+# Geliştirme için ClickHouse nasıl inşa edilir {#how-to-build-clickhouse-for-development}
+
+Aşağıdaki öğretici Ubuntu Linux sistemine dayanmaktadır.
+Uygun değişikliklerle, başka herhangi bir Linux dağıtımı üzerinde de çalışması gerekir.
+Desteklenen platformlar: x86\_64 ve AArch64. Power9 için destek deneyseldir.
+
+## Git, Cmake, Python ve Ninja'yı yükleyin {#install-git-cmake-python-and-ninja}
+
+``` bash
+$ sudo apt-get install git cmake python ninja-build
+```
+
+Veya eski sistemlerde cmake yerine cmake3.
+
+## Gcc 9'u yükle {#install-gcc-9}
+
+Bunu yapmak için çeşitli yollar vardır.
+
+### Bir PPA paketinden yükleme {#install-from-a-ppa-package}
+
+``` bash
+$ sudo apt-get install software-properties-common
+$ sudo apt-add-repository ppa:ubuntu-toolchain-r/test
+$ sudo apt-get update
+$ sudo apt-get install gcc-9 g++-9
+```
+
+### Kaynaklardan yükleyin {#install-from-sources}
+
+Bakmak [utils/ci/build-gcc-from-sources.sh](https://github.com/ClickHouse/ClickHouse/blob/master/utils/ci/build-gcc-from-sources.sh)
+
+## Yapılar için GCC 9 kullanın {#use-gcc-9-for-builds}
+
+``` bash
+$ export CC=gcc-9
+$ export CXX=g++-9
+```
+
+## Checkout ClickHouse Kaynakları {#checkout-clickhouse-sources}
+
+``` bash
+$ git clone --recursive git@github.com:ClickHouse/ClickHouse.git
+```
+
+veya
+
+``` bash
+$ git clone --recursive https://github.com/ClickHouse/ClickHouse.git
+```
+
+## ClickHouse İnşa {#build-clickhouse}
+
+``` bash
+$ cd ClickHouse
+$ mkdir build
+$ cd build
+$ cmake ..
+$ ninja
+$ cd ..
+```
+
+Bir yürütülebilir dosya oluşturmak için çalıştırın `ninja clickhouse`.
+Bu yaratacak `programs/clickhouse` ile kullanılabilecek çalıştırılabilir `client` veya `server` değişkenler.
+
+# Herhangi bir Linux üzerinde ClickHouse nasıl oluşturulur {#how-to-build-clickhouse-on-any-linux}
+
+Yapı aşağıdaki bileşenleri gerektirir:
+
+- Git (yalnızca kaynakları kontrol etmek için kullanılır, yapı için gerekli değildir)
+- Cmake 3.10 veya daha yeni
+- Ninja (önerilir) veya yapmak
+- C ++ derleyici: gcc 9 veya clang 8 veya daha yeni
+- Linker :lld veya altın (klasik GNU ld çalışmaz)
+- Python (sadece LLVM yapısında kullanılır ve isteğe bağlıdır)
+
+Tüm bileşenler yüklüyse, yukarıdaki adımlarla aynı şekilde oluşturabilirsiniz.
+
+Ubuntu Eoan için örnek:
+
+ sudo apt update
+ sudo apt install git cmake ninja-build g++ python
+ git clone --recursive https://github.com/ClickHouse/ClickHouse.git
+ mkdir build && cd build
+ cmake ../ClickHouse
+ ninja
+
+OpenSUSE Tumbleweed için örnek:
+
+ sudo zypper install git cmake ninja gcc-c++ python lld
+ git clone --recursive https://github.com/ClickHouse/ClickHouse.git
+ mkdir build && cd build
+ cmake ../ClickHouse
+ ninja
+
+Fedora Rawhide için örnek:
+
+ sudo yum update
+ yum --nogpg install git cmake make gcc-c++ python2
+ git clone --recursive https://github.com/ClickHouse/ClickHouse.git
+ mkdir build && cd build
+ cmake ../ClickHouse
+ make -j $(nproc)
+
+# ClickHouse inşa etmek zorunda değilsiniz {#you-dont-have-to-build-clickhouse}
+
+ClickHouse önceden oluşturulmuş ikili ve paketlerde mevcuttur. İkili dosyalar taşınabilir ve herhangi bir Linux lezzet üzerinde çalıştırılabilir.
+
+Onlar sürece her Master taahhüt ve her çekme isteği için kararlı, prestable ve test bültenleri için inşa edilmiştir.
+
+En taze yapıyı bulmak için `master`, go to [taahhüt sayfası](https://github.com/ClickHouse/ClickHouse/commits/master), commit yakınındaki ilk yeşil onay işaretini veya kırmızı çarpı işaretini tıklayın ve “Details” hemen sonra bağlantı “ClickHouse Build Check”.
+
+# ClickHouse Debian paketi nasıl oluşturulur {#how-to-build-clickhouse-debian-package}
+
+## Git ve Pbuilder'ı yükleyin {#install-git-and-pbuilder}
+
+``` bash
+$ sudo apt-get update
+$ sudo apt-get install git python pbuilder debhelper lsb-release fakeroot sudo debian-archive-keyring debian-keyring
+```
+
+## Checkout ClickHouse Kaynakları {#checkout-clickhouse-sources-1}
+
+``` bash
+$ git clone --recursive --branch master https://github.com/ClickHouse/ClickHouse.git
+$ cd ClickHouse
+```
+
+## Run Release Script {#run-release-script}
+
+``` bash
+$ ./release
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/development/build/)
diff --git a/docs/tr/development/build_cross_arm.md b/docs/tr/development/build_cross_arm.md
new file mode 100644
index 0000000000..d0d18162d6
--- /dev/null
+++ b/docs/tr/development/build_cross_arm.md
@@ -0,0 +1,43 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 67
+toc_title: "AARCH64 (ARM64) i\xE7in Linux'ta ClickHouse nas\u0131l olu\u015Fturulur)"
+---
+
+# AARCH64 (ARM64) mimarisi için Linux'ta ClickHouse nasıl oluşturulur {#how-to-build-clickhouse-on-linux-for-aarch64-arm64-architecture}
+
+Bu, Linux makineniz olduğunda ve onu oluşturmak için kullanmak istediğinizde geçerlidir `clickhouse` AARCH64 CPU mimarisi ile başka bir Linux makinede çalışacak ikili. Bu, Linux sunucularında çalışan sürekli entegrasyon kontrolleri için tasarlanmıştır.
+
+AARCH64 için çapraz yapı, [Inşa talimatları](build.md) önce onları takip et.
+
+# Clang-8'i Yükle {#install-clang-8}
+
+Yönergeleri izleyin https://apt.llvm.org / Ubuntu veya Debian kurulumunuz için.
+Örneğin, Ubuntu Bionic'te aşağıdaki komutları kullanabilirsiniz:
+
+``` bash
+echo "deb [trusted=yes] http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main" | sudo tee /etc/apt/sources.list.d/llvm.list
+sudo apt-get update
+sudo apt-get install clang-8
+```
+
+# Çapraz Derleme Araç Setini Yükle {#install-cross-compilation-toolset}
+
+``` bash
+cd ClickHouse
+mkdir -p build-aarch64/cmake/toolchain/linux-aarch64
+wget 'https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz?revision=2e88a73f-d233-4f96-b1f4-d8b36e9bb0b9&la=en' -O gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz
+tar xJf gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu.tar.xz -C build-aarch64/cmake/toolchain/linux-aarch64 --strip-components=1
+```
+
+# ClickHouse İnşa {#build-clickhouse}
+
+``` bash
+cd ClickHouse
+mkdir build-arm64
+CC=clang-8 CXX=clang++-8 cmake . -Bbuild-arm64 -DCMAKE_TOOLCHAIN_FILE=cmake/linux/toolchain-aarch64.cmake
+ninja -C build-arm64
+```
+
+Ortaya çıkan ikili, yalnızca AARCH64 CPU mimarisi ile Linux'ta çalışacaktır.
diff --git a/docs/tr/development/build_cross_osx.md b/docs/tr/development/build_cross_osx.md
new file mode 100644
index 0000000000..2001ad985e
--- /dev/null
+++ b/docs/tr/development/build_cross_osx.md
@@ -0,0 +1,64 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 66
+toc_title: "Mac OS X i\xE7in Linux'ta ClickHouse nas\u0131l olu\u015Fturulur"
+---
+
+# Mac OS X için Linux'ta ClickHouse nasıl oluşturulur {#how-to-build-clickhouse-on-linux-for-mac-os-x}
+
+Bu, Linux makineniz olduğunda ve onu oluşturmak için kullanmak istediğinizde geçerlidir `clickhouse` OS X üzerinde çalışacak ikili. bu, Linux sunucularında çalışan sürekli entegrasyon kontrolleri için tasarlanmıştır. Clickhouse'u doğrudan Mac OS X'te oluşturmak istiyorsanız, devam edin [başka bir talimat](build_osx.md).
+
+Mac OS X için çapraz yapı, [Inşa talimatları](build.md) önce onları takip et.
+
+# Clang-8'i Yükle {#install-clang-8}
+
+Yönergeleri izleyin https://apt.llvm.org / Ubuntu veya Debian kurulumunuz için.
+Örneğin biyonik için komutlar gibidir:
+
+``` bash
+sudo echo "deb [trusted=yes] http://apt.llvm.org/bionic/ llvm-toolchain-bionic-8 main" >> /etc/apt/sources.list
+sudo apt-get install clang-8
+```
+
+# Çapraz Derleme Araç Setini Yükle {#install-cross-compilation-toolset}
+
+Yüklediğimiz yolu hatırlayalım `cctools` olarak $ {CCTOOLS}
+
+``` bash
+mkdir ${CCTOOLS}
+
+git clone https://github.com/tpoechtrager/apple-libtapi.git
+cd apple-libtapi
+INSTALLPREFIX=${CCTOOLS} ./build.sh
+./install.sh
+cd ..
+
+git clone https://github.com/tpoechtrager/cctools-port.git
+cd cctools-port/cctools
+./configure --prefix=${CCTOOLS} --with-libtapi=${CCTOOLS} --target=x86_64-apple-darwin
+make install
+```
+
+Ayrıca, MacOS X SDK'YI çalışma ağacına indirmemiz gerekiyor.
+
+``` bash
+cd ClickHouse
+wget 'https://github.com/phracker/MacOSX-SDKs/releases/download/10.14-beta4/MacOSX10.14.sdk.tar.xz'
+mkdir -p build-darwin/cmake/toolchain/darwin-x86_64
+tar xJf MacOSX10.14.sdk.tar.xz -C build-darwin/cmake/toolchain/darwin-x86_64 --strip-components=1
+```
+
+# ClickHouse İnşa {#build-clickhouse}
+
+``` bash
+cd ClickHouse
+mkdir build-osx
+CC=clang-8 CXX=clang++-8 cmake . -Bbuild-osx -DCMAKE_TOOLCHAIN_FILE=cmake/darwin/toolchain-x86_64.cmake \
+ -DCMAKE_AR:FILEPATH=${CCTOOLS}/bin/x86_64-apple-darwin-ar \
+ -DCMAKE_RANLIB:FILEPATH=${CCTOOLS}/bin/x86_64-apple-darwin-ranlib \
+ -DLINKER_NAME=${CCTOOLS}/bin/x86_64-apple-darwin-ld
+ninja -C build-osx
+```
+
+Ortaya çıkan ikili bir Mach-O yürütülebilir biçimine sahip olacak ve Linux üzerinde çalıştırılamaz.
diff --git a/docs/tr/development/build_osx.md b/docs/tr/development/build_osx.md
new file mode 100644
index 0000000000..af75072507
--- /dev/null
+++ b/docs/tr/development/build_osx.md
@@ -0,0 +1,93 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 65
+toc_title: "Mac OS X \xFCzerinde ClickHouse nas\u0131l olu\u015Fturulur"
+---
+
+# Mac OS X üzerinde ClickHouse nasıl oluşturulur {#how-to-build-clickhouse-on-mac-os-x}
+
+Build Mac OS X 10.15 (Catalina) üzerinde çalışmalıdır)
+
+## Homebrew Yüklemek {#install-homebrew}
+
+``` bash
+$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+
+## Gerekli derleyicileri, araçları ve kitaplıkları yükleyin {#install-required-compilers-tools-and-libraries}
+
+``` bash
+$ brew install cmake ninja libtool gettext
+```
+
+## Checkout ClickHouse Kaynakları {#checkout-clickhouse-sources}
+
+``` bash
+$ git clone --recursive git@github.com:ClickHouse/ClickHouse.git
+```
+
+veya
+
+``` bash
+$ git clone --recursive https://github.com/ClickHouse/ClickHouse.git
+
+$ cd ClickHouse
+```
+
+## ClickHouse İnşa {#build-clickhouse}
+
+``` bash
+$ mkdir build
+$ cd build
+$ cmake .. -DCMAKE_CXX_COMPILER=`which clang++` -DCMAKE_C_COMPILER=`which clang`
+$ ninja
+$ cd ..
+```
+
+## Uyarılar {#caveats}
+
+Clickhouse-server çalıştırmak istiyorsanız, sistemin maxfiles değişken artırmak için emin olun.
+
+!!! info "Not"
+ Sudo kullanmanız gerekecek.
+
+Bunu yapmak için aşağıdaki dosyayı oluşturun:
+
+/ Kütüphane / LaunchDaemons / sınırı.maxfiles.plist:
+
+``` xml
+
+
+
+
+ Label
+ limit.maxfiles
+ ProgramArguments
+
+ launchctl
+ limit
+ maxfiles
+ 524288
+ 524288
+
+ RunAtLoad
+
+ ServiceIPC
+
+
+
+```
+
+Aşağıdaki komutu çalıştırın:
+
+``` bash
+$ sudo chown root:wheel /Library/LaunchDaemons/limit.maxfiles.plist
+```
+
+Başlatmak.
+
+Çalışıp çalışmadığını kontrol etmek için şunları kullanabilirsiniz `ulimit -n` komut.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/development/build_osx/)
diff --git a/docs/tr/development/contrib.md b/docs/tr/development/contrib.md
new file mode 100644
index 0000000000..7f09d9bc49
--- /dev/null
+++ b/docs/tr/development/contrib.md
@@ -0,0 +1,42 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 70
+toc_title: "Kullan\u0131lan \xDC\xE7\xFCnc\xFC Taraf K\xFCt\xFCphaneleri"
+---
+
+# Kullanılan Üçüncü Taraf Kütüphaneleri {#third-party-libraries-used}
+
+| Kitaplık | Lisans |
+|---------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------|
+| base64 | [BSD 2-Clause Lisansı](https://github.com/aklomp/base64/blob/a27c565d1b6c676beaf297fe503c4518185666f7/LICENSE) |
+| artırmak | [Bo Boostost Software Lic 1.0ense 1.0](https://github.com/ClickHouse-Extras/boost-extra/blob/6883b40449f378019aec792f9983ce3afc7ff16e/LICENSE_1_0.txt) |
+| brotli | [MIT](https://github.com/google/brotli/blob/master/LICENSE) |
+| capnproto | [MIT](https://github.com/capnproto/capnproto/blob/master/LICENSE) |
+| cctz | [Apache Lic 2.0ense 2.0](https://github.com/google/cctz/blob/4f9776a310f4952454636363def82c2bf6641d5f/LICENSE.txt) |
+| çift dönüşüm | [BSD 3-Clause Lisansı](https://github.com/google/double-conversion/blob/cf2f0f3d547dc73b4612028a155b80536902ba02/LICENSE) |
+| FastMemcpy | [MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libmemcpy/impl/LICENSE) |
+| googletest | [BSD 3-Clause Lisansı](https://github.com/google/googletest/blob/master/LICENSE) |
+| h33 | [Apache Lic 2.0ense 2.0](https://github.com/uber/h3/blob/master/LICENSE) |
+| hyperscan | [BSD 3-Clause Lisansı](https://github.com/intel/hyperscan/blob/master/LICENSE) |
+| libbtrie | [BSD 2-Clause Lisansı](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libbtrie/LICENSE) |
+| libcxxabi | [BSD + MIT](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libglibc-compatibility/libcxxabi/LICENSE.TXT) |
+| libdivide | [Zlib Lisansı](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libdivide/LICENSE.txt) |
+| libgsasl | [LGPL v2. 1](https://github.com/ClickHouse-Extras/libgsasl/blob/3b8948a4042e34fb00b4fb987535dc9e02e39040/LICENSE) |
+| libhdfs3 | [Apache Lic 2.0ense 2.0](https://github.com/ClickHouse-Extras/libhdfs3/blob/bd6505cbb0c130b0db695305b9a38546fa880e5a/LICENSE.txt) |
+| libmetrohash | [Apache Lic 2.0ense 2.0](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libmetrohash/LICENSE) |
+| libpcg-rastgele | [Apache Lic 2.0ense 2.0](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/libpcg-random/LICENSE-APACHE.txt) |
+| libressl | [OpenSSL Lisansı](https://github.com/ClickHouse-Extras/ssl/blob/master/COPYING) |
+| librdkafka | [BSD 2-Clause Lisansı](https://github.com/edenhill/librdkafka/blob/363dcad5a23dc29381cc626620e68ae418b3af19/LICENSE) |
+| libwidechar\_width | [CC0 1.0 Evrensel](https://github.com/ClickHouse/ClickHouse/blob/master/libs/libwidechar_width/LICENSE) |
+| llvm | [BSD 3-Clause Lisansı](https://github.com/ClickHouse-Extras/llvm/blob/163def217817c90fb982a6daf384744d8472b92b/llvm/LICENSE.TXT) |
+| lz4 | [BSD 2-Clause Lisansı](https://github.com/lz4/lz4/blob/c10863b98e1503af90616ae99725ecd120265dfb/LICENSE) |
+| mariadb-bağlayıcı-c | [LGPL v2. 1](https://github.com/ClickHouse-Extras/mariadb-connector-c/blob/3.1/COPYING.LIB) |
+| murmurhash | [Kamu Malı](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/murmurhash/LICENSE) |
+| pdqsort | [Zlib Lisansı](https://github.com/ClickHouse/ClickHouse/blob/master/contrib/pdqsort/license.txt) |
+| az | [Boost Yazılım Lisansı-Sürüm 1.0](https://github.com/ClickHouse-Extras/poco/blob/fe5505e56c27b6ecb0dcbc40c49dc2caf4e9637f/LICENSE) |
+| protobuf | [BSD 3-Clause Lisansı](https://github.com/ClickHouse-Extras/protobuf/blob/12735370922a35f03999afff478e1c6d7aa917a4/LICENSE) |
+| re2 | [BSD 3-Clause Lisansı](https://github.com/google/re2/blob/7cf8b88e8f70f97fd4926b56aa87e7f53b2717e0/LICENSE) |
+| UnixODBC | [LGPL v2. 1](https://github.com/ClickHouse-Extras/UnixODBC/tree/b0ad30f7f6289c12b76f04bfb9d466374bb32168) |
+| zlib-ng | [Zlib Lisansı](https://github.com/ClickHouse-Extras/zlib-ng/blob/develop/LICENSE.md) |
+| zstd | [BSD 3-Clause Lisansı](https://github.com/facebook/zstd/blob/dev/LICENSE) |
diff --git a/docs/tr/development/developer_instruction.md b/docs/tr/development/developer_instruction.md
new file mode 100644
index 0000000000..f9984d9bf2
--- /dev/null
+++ b/docs/tr/development/developer_instruction.md
@@ -0,0 +1,285 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 61
+toc_title: "Acemi ClickHouse Geli\u015Ftirici Talimat"
+---
+
+ClickHouse binası Linux, FreeBSD ve Mac OS X üzerinde desteklenmektedir.
+
+# Windows Kullanıyorsanız {#if-you-use-windows}
+
+Windows kullanıyorsanız, Ubuntu ile bir sanal makine oluşturmanız gerekir. Bir sanal makine ile çalışmaya başlamak için VirtualBox yükleyin. UB :unt :u'yu web sitesinden indirebilirsiniz: https://www.ubuntu.com/\#download. lütfen indirilen görüntüden bir sanal makine oluşturun (bunun için en az 4GB RAM ayırmalısınız). Ubuntu'da bir komut satırı terminali çalıştırmak için lütfen kelimeyi içeren bir program bulun “terminal” adına (gnome-terminal, konsole vb.)) veya sadece Ctrl+Alt+T tuşlarına basın.
+
+# 32 bit sistem kullanıyorsanız {#if-you-use-a-32-bit-system}
+
+ClickHouse çalışamaz veya 32-bit bir sistem üzerinde oluşturun. 64-bit bir sisteme erişim kazanmanız gerekir ve okumaya devam edebilirsiniz.
+
+# Github'da bir depo oluşturma {#creating-a-repository-on-github}
+
+ClickHouse repository ile çalışmaya başlamak için bir GitHub hesabına ihtiyacınız olacaktır.
+
+Muhtemelen zaten bir tane var, ama yapmazsanız, lütfen kayıt olun https://github.com. SSH anahtarlarınız yoksa, bunları üretmeli ve daha sonra Github'a yüklemelisiniz. Bu yamalar üzerinden göndermek için gereklidir. Diğer SSH sunucularıyla kullandığınız aynı SSH anahtarlarını kullanmak da mümkündür - muhtemelen zaten bunlara sahipsiniz.
+
+ClickHouse deposunun bir çatalı oluşturun. Bunu yapmak için lütfen tıklayın “fork” sağ üst köşedeki düğme https://github.com/ClickHouse/ClickHouse. bu hesabınıza ClickHouse / ClickHouse kendi kopyasını çatal olacaktır.
+
+Geliştirme süreci ilk ClickHouse sizin çatal içine amaçlanan değişiklikleri işlemekle ve daha sonra bir oluşturma oluşur “pull request” bu değişikliklerin ana depoya kabul edilmesi için (ClickHouse/ClickHouse).
+
+Git depoları ile çalışmak için lütfen yükleyin `git`.
+
+Bunu Ubuntu'da yapmak için komut satırı terminalinde çalışırsınız:
+
+ sudo apt update
+ sudo apt install git
+
+Git kullanımı ile ilgili kısa bir el kitabı burada bulunabilir: https://services.github.com/on-demand/downloads/github-git-cheat-sheet.pdf.
+Git ile ilgili ayrıntılı bir el kitabı için bkz. https://git-scm.com/book/en/v2.
+
+# Geliştirme Makinenize bir depo klonlama {#cloning-a-repository-to-your-development-machine}
+
+Ardından, kaynak dosyaları çalışma makinenize indirmeniz gerekir. Bu denir “to clone a repository” çünkü çalışma makinenizde deponun yerel bir kopyasını oluşturur.
+
+Komut satırında terminal Çalıştır:
+
+ git clone --recursive git@guthub.com:your_github_username/ClickHouse.git
+ cd ClickHouse
+
+Not: lütfen, yerine *your\_github\_username* uygun olanı ile!
+
+Bu komut bir dizin oluşturacaktır `ClickHouse` projenin çalışma kopyasını içeren.
+
+Yapı sistemini çalıştırmakla ilgili sorunlara yol açabileceğinden, çalışma dizininin yolunun hiçbir boşluk içermemesi önemlidir.
+
+ClickHouse deposunun kullandığını lütfen unutmayın `submodules`. That is what the references to additional repositories are called (i.e. external libraries on which the project depends). It means that when cloning the repository you need to specify the `--recursive` yukarıdaki örnekte olduğu gibi bayrak. Depo alt modüller olmadan klonlanmışsa, bunları indirmek için aşağıdakileri çalıştırmanız gerekir:
+
+ git submodule init
+ git submodule update
+
+Komutu ile durumunu kontrol edebilirsiniz: `git submodule status`.
+
+Aşağıdaki hata iletisini alırsanız:
+
+ Permission denied (publickey).
+ fatal: Could not read from remote repository.
+
+ Please make sure you have the correct access rights
+ and the repository exists.
+
+Genellikle Github'a bağlanmak için SSH anahtarlarının eksik olduğu anlamına gelir. Bu anahtarlar normalde `~/.ssh`. SSH anahtarlarının kabul edilmesi için bunları GitHub kullanıcı arayüzünün ayarlar bölümüne yüklemeniz gerekir.
+
+Depoyu https protokolü aracılığıyla da klonlayabilirsiniz:
+
+ git clone https://github.com/ClickHouse/ClickHouse.git
+
+Ancak bu, değişikliklerinizi sunucuya göndermenize izin vermez. Yine de geçici olarak kullanabilir ve SSH anahtarlarını daha sonra deponun uzak adresini değiştirerek ekleyebilirsiniz `git remote` komut.
+
+Oradan güncellemeleri çekmek için orijinal ClickHouse repo'nun adresini yerel deponuza da ekleyebilirsiniz:
+
+ git remote add upstream git@github.com:ClickHouse/ClickHouse.git
+
+Başarıyla bu komutu çalıştırdıktan sonra çalıştırarak ana ClickHouse repo güncellemeleri çekmek mümkün olacak `git pull upstream master`.
+
+## Alt modüllerle çalışma {#working-with-submodules}
+
+Git'teki alt modüllerle çalışmak acı verici olabilir. Sonraki komutlar onu yönetmeye yardımcı olacaktır:
+
+ # ! each command accepts --recursive
+ # Update remote URLs for submodules. Barely rare case
+ git submodule sync
+ # Add new submodules
+ git submodule init
+ # Update existing submodules to the current state
+ git submodule update
+ # Two last commands could be merged together
+ git submodule update --init
+
+Bir sonraki komutlar, tüm alt modülleri başlangıç durumuna sıfırlamanıza yardımcı olacaktır (!UYARI! - herhangi bir değişiklik içinde silinecektir):
+
+ # Synchronizes submodules' remote URL with .gitmodules
+ git submodule sync --recursive
+ # Update the registered submodules with initialize not yet initialized
+ git submodule update --init --recursive
+ # Reset all changes done after HEAD
+ git submodule foreach git reset --hard
+ # Clean files from .gitignore
+ git submodule foreach git clean -xfd
+ # Repeat last 4 commands for all submodule
+ git submodule foreach git submodule sync --recursive
+ git submodule foreach git submodule update --init --recursive
+ git submodule foreach git submodule foreach git reset --hard
+ git submodule foreach git submodule foreach git clean -xfd
+
+# Yapı Sistemi {#build-system}
+
+ClickHouse bina için Cmake ve Ninja kullanır.
+
+Cmake-ninja dosyaları (yapı görevleri) üretebilir bir meta-yapı sistemi.
+Ninja-bu cmake oluşturulan görevleri yürütmek için kullanılan hıza odaklanarak daha küçük bir yapı sistemi.
+
+Ubuntu, Debian veya Mint run'a yüklemek için `sudo apt install cmake ninja-build`.
+
+Centos'ta, RedHat koşusu `sudo yum install cmake ninja-build`.
+
+Arch veya Gentoo kullanıyorsanız, muhtemelen cmake'i nasıl kuracağınızı kendiniz biliyorsunuz.
+
+Mac OS X üzerinde cmake ve Ninja yüklemek için ilk homebrew yüklemek ve daha sonra demlemek yoluyla her şeyi yüklemek:
+
+ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+ brew install cmake ninja
+
+Ardından, cmake sürümünü kontrol edin: `cmake --version`. 3.3'ün altındaysa, web sitesinden daha yeni bir sürüm yüklemelisiniz: https://cmake.org/download/.
+
+# İsteğe Bağlı Harici Kütüphaneler {#optional-external-libraries}
+
+ClickHouse, bina için birkaç dış kütüphane kullanır. Alt modüllerde bulunan kaynaklardan ClickHouse ile birlikte oluşturuldukları için hepsinin ayrı olarak kurulması gerekmez. Listeyi kontrol edebilirsiniz `contrib`.
+
+# C++ Derleyici {#c-compiler}
+
+Derleyiciler gcc sürüm 9 ve Clang sürüm 8 veya üzeri başlayarak ClickHouse bina için desteklenmektedir.
+
+Resmi Yandex şu anda GCC'Yİ kullanıyor çünkü biraz daha iyi performansa sahip makine kodu üretiyor (kriterlerimize göre yüzde birkaçına kadar bir fark yaratıyor). Ve Clang genellikle geliştirme için daha uygundur. Yine de, sürekli entegrasyon (CI) platformumuz yaklaşık bir düzine yapı kombinasyonunu denetler.
+
+Ubuntu run GCC yüklemek için: `sudo apt install gcc g++`
+
+Gcc sürümünü kontrol edin: `gcc --version`. 9'un altındaysa, buradaki talimatları izleyin: https://clickhouse.tech / docs/TR/development / build / \#ınstall-gcc-9.
+
+Mac OS X build sadece Clang için desteklenir. Sadece koş `brew install llvm`
+
+Eğer Clang kullanmaya karar verirseniz, ayrıca yükleyebilirsiniz `libc++` ve `lld` eğer ne olduğunu biliyorsan. Kullanım `ccache` ayrıca tavsiye edilir.
+
+# İnşaat Süreci {#the-building-process}
+
+Artık ClickHouse oluşturmaya hazır olduğunuza göre ayrı bir dizin oluşturmanızı öneririz `build` için `ClickHouse` bu, tüm yapı eserlerini içerecek:
+
+ mkdir build
+ cd build
+
+Birkaç farklı dizine (build\_release, build\_debug, vb.) sahip olabilirsiniz.) farklı yapı türleri için.
+
+İçinde iken `build` dizin, cmake çalıştırarak yapı yapılandırın. İlk çalıştırmadan önce, derleyici belirten ortam değişkenlerini tanımlamanız gerekir (bu örnekte sürüm 9 gcc derleyicisi).
+
+Linux:
+
+ export CC=gcc-9 CXX=g++-9
+ cmake ..
+
+Mac OS X:
+
+ export CC=clang CXX=clang++
+ cmake ..
+
+Bu `CC` değişken C için derleyiciyi belirtir (C derleyicisi için kısa) ve `CXX` değişken, hangi C++ derleyicisinin bina için kullanılacağını bildirir.
+
+Daha hızlı bir yapı için, `debug` yapı türü-hiçbir optimizasyonları ile bir yapı. Bunun için aşağıdaki parametreyi sağlayın `-D CMAKE_BUILD_TYPE=Debug`:
+
+ cmake -D CMAKE_BUILD_TYPE=Debug ..
+
+Bu komutu çalıştırarak yapı türünü değiştirebilirsiniz. `build` dizin.
+
+İnşa etmek için ninja çalıştırın:
+
+ ninja clickhouse-server clickhouse-client
+
+Bu örnekte yalnızca gerekli ikili dosyalar oluşturulacaktır.
+
+Tüm ikili dosyaları (Yardımcı Programlar ve testler) oluşturmanız gerekiyorsa, ninja'yı parametre olmadan çalıştırmalısınız:
+
+ ninja
+
+Tam yapı, ana ikili dosyaları oluşturmak için yaklaşık 30GB boş disk alanı veya 15GB gerektirir.
+
+Yapı makinesinde büyük miktarda RAM mevcut olduğunda, paralel olarak çalışan yapı görevlerinin sayısını sınırlamanız gerekir `-j` param:
+
+ ninja -j 1 clickhouse-server clickhouse-client
+
+4GB RAM'Lİ makinelerde, 8GB RAM için 1 belirtmeniz önerilir `-j 2` tavsiye edilir.
+
+Mesajı alırsanız: `ninja: error: loading 'build.ninja': No such file or directory` bu, bir yapı yapılandırması oluşturmanın başarısız olduğu ve yukarıdaki mesajı incelemeniz gerektiği anlamına gelir.
+
+Bina işleminin başarılı bir şekilde başlatılmasının ardından, yapı ilerlemesini görürsünüz-işlenmiş görevlerin sayısı ve toplam görev sayısı.
+
+Libhdfs2 kütüphanesinde protobuf dosyaları hakkında mesajlar oluştururken `libprotobuf WARNING` ortaya çıkabilir. Hiçbir şeyi etkilemezler ve göz ardı edilmeleri güvenlidir.
+
+Başarılı bir yapı üzerine yürütülebilir bir dosya alırsınız `ClickHouse//programs/clickhouse`:
+
+ ls -l programs/clickhouse
+
+# Clickhouse'un yerleşik yürütülebilir dosyasını çalıştırma {#running-the-built-executable-of-clickhouse}
+
+Sunucuyu geçerli kullanıcı altında çalıştırmak için aşağıdakilere gitmeniz gerekir `ClickHouse/programs/server/` (dışında bulunan `build`) ve koş:
+
+ ../../../build/programs/clickhouse server
+
+Bu durumda, ClickHouse geçerli dizinde bulunan yapılandırma dosyalarını kullanır. Koş youabilirsiniz `clickhouse server` komut satırı parametresi olarak bir yapılandırma dosyasının yolunu belirten herhangi bir dizinden `--config-file`.
+
+Başka bir terminalde clickhouse-client ile Clickhouse'a bağlanmak için `ClickHouse/build/programs/` ve koş `clickhouse client`.
+
+Eğer alırsanız `Connection refused` Mac OS X veya Freebsd'de mesaj, ana bilgisayar adresi 127.0.0.1 belirtmeyi deneyin:
+
+ clickhouse client --host 127.0.0.1
+
+Sisteminizde yüklü olan ClickHouse binary'nin üretim sürümünü özel olarak oluşturulmuş ClickHouse binaryinizle değiştirebilirsiniz. Bunu yapmak için resmi web sitesinden talimatları izleyerek Makinenize ClickHouse yükleyin. Ardından, aşağıdakileri çalıştırın:
+
+ sudo service clickhouse-server stop
+ sudo cp ClickHouse/build/programs/clickhouse /usr/bin/
+ sudo service clickhouse-server start
+
+Not thate that `clickhouse-client`, `clickhouse-server` ve diğerleri yaygın olarak paylaşılan sembolik bağlardır `clickhouse` ikilik.
+
+Ayrıca sisteminizde yüklü ClickHouse paketinden yapılandırma dosyası ile özel inşa ClickHouse ikili çalıştırabilirsiniz:
+
+ sudo service clickhouse-server stop
+ sudo -u clickhouse ClickHouse/build/programs/clickhouse server --config-file /etc/clickhouse-server/config.xml
+
+# IDE (entegre geliştirme ortamı) {#ide-integrated-development-environment}
+
+Hangi IDE kullanmak bilmiyorsanız, clion kullanmanızı öneririz. CLion ticari bir yazılımdır, ancak 30 günlük ücretsiz deneme süresi sunar. Öğrenciler için de ücretsizdir. CLion Linux ve Mac OS X hem de kullanılabilir.
+
+KDevelop ve QTCreator, ClickHouse geliştirmek için bir IDE'NİN diğer harika alternatifleridir. KDevelop kararsız olmasına rağmen çok kullanışlı bir IDE olarak geliyor. KDevelop projeyi açtıktan sonra bir süre sonra çökerse, tıklamanız gerekir “Stop All” proje dosyalarının listesini açar açmaz düğme. Bunu yaptıktan sonra KDevelop ile çalışmak iyi olmalıdır.
+
+Basit kod editörleri olarak, Yüce metin veya Visual Studio kodunu veya Kate'i (hepsi Linux'ta kullanılabilir) kullanabilirsiniz.
+
+Her ihtimale karşı, Clion'un yarattığını belirtmek gerekir `build` kendi başına yol, aynı zamanda kendi seçtikleri `debug` yapı türü için, yapılandırma için Clion'da tanımlanan ve sizin tarafınızdan yüklenmeyen bir cmake sürümünü kullanır ve son olarak CLion kullanacaktır `make` yerine yapı görevlerini çalıştırmak için `ninja`. Bu normal bir davranıştır, sadece karışıklığı önlemek için bunu aklınızda bulundurun.
+
+# Kod Yazma {#writing-code}
+
+Açıklaması ClickHouse mimarisi burada bulabilirsiniz: https://clickhouse.tech / doscs/TR / development / Arch /it /ec /ture/
+
+Kod stili Kılavuzu: https://clickhouse.tech / doscs / TR / development / style/
+
+Yazma testleri: https://clickhouse.teknoloji / doscs / TR / geliştirme / testler/
+
+Görevlerin listesi: https://github.com/ClickHouse/ClickHouse/blob/master/testsructions/easy\_tasks\_sorted\_en.md
+
+# Test Verileri {#test-data}
+
+Clickhouse'un geliştirilmesi genellikle gerçekçi veri kümelerinin yüklenmesini gerektirir. Performans testi için özellikle önemlidir. Yandex'ten özel olarak hazırlanmış anonim veri setimiz var.Metrica. Ayrıca bazı 3GB boş disk alanı gerektirir. Bu verilerin geliştirme görevlerinin çoğunu gerçekleştirmek için gerekli olmadığını unutmayın.
+
+ sudo apt install wget xz-utils
+
+ wget https://clickhouse-datasets.s3.yandex.net/hits/tsv/hits_v1.tsv.xz
+ wget https://clickhouse-datasets.s3.yandex.net/visits/tsv/visits_v1.tsv.xz
+
+ xz -v -d hits_v1.tsv.xz
+ xz -v -d visits_v1.tsv.xz
+
+ clickhouse-client
+
+ CREATE TABLE test.hits ( WatchID UInt64, JavaEnable UInt8, Title String, GoodEvent Int16, EventTime DateTime, EventDate Date, CounterID UInt32, ClientIP UInt32, ClientIP6 FixedString(16), RegionID UInt32, UserID UInt64, CounterClass Int8, OS UInt8, UserAgent UInt8, URL String, Referer String, URLDomain String, RefererDomain String, Refresh UInt8, IsRobot UInt8, RefererCategories Array(UInt16), URLCategories Array(UInt16), URLRegions Array(UInt32), RefererRegions Array(UInt32), ResolutionWidth UInt16, ResolutionHeight UInt16, ResolutionDepth UInt8, FlashMajor UInt8, FlashMinor UInt8, FlashMinor2 String, NetMajor UInt8, NetMinor UInt8, UserAgentMajor UInt16, UserAgentMinor FixedString(2), CookieEnable UInt8, JavascriptEnable UInt8, IsMobile UInt8, MobilePhone UInt8, MobilePhoneModel String, Params String, IPNetworkID UInt32, TraficSourceID Int8, SearchEngineID UInt16, SearchPhrase String, AdvEngineID UInt8, IsArtifical UInt8, WindowClientWidth UInt16, WindowClientHeight UInt16, ClientTimeZone Int16, ClientEventTime DateTime, SilverlightVersion1 UInt8, SilverlightVersion2 UInt8, SilverlightVersion3 UInt32, SilverlightVersion4 UInt16, PageCharset String, CodeVersion UInt32, IsLink UInt8, IsDownload UInt8, IsNotBounce UInt8, FUniqID UInt64, HID UInt32, IsOldCounter UInt8, IsEvent UInt8, IsParameter UInt8, DontCountHits UInt8, WithHash UInt8, HitColor FixedString(1), UTCEventTime DateTime, Age UInt8, Sex UInt8, Income UInt8, Interests UInt16, Robotness UInt8, GeneralInterests Array(UInt16), RemoteIP UInt32, RemoteIP6 FixedString(16), WindowName Int32, OpenerName Int32, HistoryLength Int16, BrowserLanguage FixedString(2), BrowserCountry FixedString(2), SocialNetwork String, SocialAction String, HTTPError UInt16, SendTiming Int32, DNSTiming Int32, ConnectTiming Int32, ResponseStartTiming Int32, ResponseEndTiming Int32, FetchTiming Int32, RedirectTiming Int32, DOMInteractiveTiming Int32, DOMContentLoadedTiming Int32, DOMCompleteTiming Int32, LoadEventStartTiming Int32, LoadEventEndTiming Int32, NSToDOMContentLoadedTiming Int32, FirstPaintTiming Int32, RedirectCount Int8, SocialSourceNetworkID UInt8, SocialSourcePage String, ParamPrice Int64, ParamOrderID String, ParamCurrency FixedString(3), ParamCurrencyID UInt16, GoalsReached Array(UInt32), OpenstatServiceName String, OpenstatCampaignID String, OpenstatAdID String, OpenstatSourceID String, UTMSource String, UTMMedium String, UTMCampaign String, UTMContent String, UTMTerm String, FromTag String, HasGCLID UInt8, RefererHash UInt64, URLHash UInt64, CLID UInt32, YCLID UInt64, ShareService String, ShareURL String, ShareTitle String, `ParsedParams.Key1` Array(String), `ParsedParams.Key2` Array(String), `ParsedParams.Key3` Array(String), `ParsedParams.Key4` Array(String), `ParsedParams.Key5` Array(String), `ParsedParams.ValueDouble` Array(Float64), IslandID FixedString(16), RequestNum UInt32, RequestTry UInt8) ENGINE = MergeTree PARTITION BY toYYYYMM(EventDate) SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID), EventTime);
+
+ CREATE TABLE test.visits ( CounterID UInt32, StartDate Date, Sign Int8, IsNew UInt8, VisitID UInt64, UserID UInt64, StartTime DateTime, Duration UInt32, UTCStartTime DateTime, PageViews Int32, Hits Int32, IsBounce UInt8, Referer String, StartURL String, RefererDomain String, StartURLDomain String, EndURL String, LinkURL String, IsDownload UInt8, TraficSourceID Int8, SearchEngineID UInt16, SearchPhrase String, AdvEngineID UInt8, PlaceID Int32, RefererCategories Array(UInt16), URLCategories Array(UInt16), URLRegions Array(UInt32), RefererRegions Array(UInt32), IsYandex UInt8, GoalReachesDepth Int32, GoalReachesURL Int32, GoalReachesAny Int32, SocialSourceNetworkID UInt8, SocialSourcePage String, MobilePhoneModel String, ClientEventTime DateTime, RegionID UInt32, ClientIP UInt32, ClientIP6 FixedString(16), RemoteIP UInt32, RemoteIP6 FixedString(16), IPNetworkID UInt32, SilverlightVersion3 UInt32, CodeVersion UInt32, ResolutionWidth UInt16, ResolutionHeight UInt16, UserAgentMajor UInt16, UserAgentMinor UInt16, WindowClientWidth UInt16, WindowClientHeight UInt16, SilverlightVersion2 UInt8, SilverlightVersion4 UInt16, FlashVersion3 UInt16, FlashVersion4 UInt16, ClientTimeZone Int16, OS UInt8, UserAgent UInt8, ResolutionDepth UInt8, FlashMajor UInt8, FlashMinor UInt8, NetMajor UInt8, NetMinor UInt8, MobilePhone UInt8, SilverlightVersion1 UInt8, Age UInt8, Sex UInt8, Income UInt8, JavaEnable UInt8, CookieEnable UInt8, JavascriptEnable UInt8, IsMobile UInt8, BrowserLanguage UInt16, BrowserCountry UInt16, Interests UInt16, Robotness UInt8, GeneralInterests Array(UInt16), Params Array(String), `Goals.ID` Array(UInt32), `Goals.Serial` Array(UInt32), `Goals.EventTime` Array(DateTime), `Goals.Price` Array(Int64), `Goals.OrderID` Array(String), `Goals.CurrencyID` Array(UInt32), WatchIDs Array(UInt64), ParamSumPrice Int64, ParamCurrency FixedString(3), ParamCurrencyID UInt16, ClickLogID UInt64, ClickEventID Int32, ClickGoodEvent Int32, ClickEventTime DateTime, ClickPriorityID Int32, ClickPhraseID Int32, ClickPageID Int32, ClickPlaceID Int32, ClickTypeID Int32, ClickResourceID Int32, ClickCost UInt32, ClickClientIP UInt32, ClickDomainID UInt32, ClickURL String, ClickAttempt UInt8, ClickOrderID UInt32, ClickBannerID UInt32, ClickMarketCategoryID UInt32, ClickMarketPP UInt32, ClickMarketCategoryName String, ClickMarketPPName String, ClickAWAPSCampaignName String, ClickPageName String, ClickTargetType UInt16, ClickTargetPhraseID UInt64, ClickContextType UInt8, ClickSelectType Int8, ClickOptions String, ClickGroupBannerID Int32, OpenstatServiceName String, OpenstatCampaignID String, OpenstatAdID String, OpenstatSourceID String, UTMSource String, UTMMedium String, UTMCampaign String, UTMContent String, UTMTerm String, FromTag String, HasGCLID UInt8, FirstVisit DateTime, PredLastVisit Date, LastVisit Date, TotalVisits UInt32, `TraficSource.ID` Array(Int8), `TraficSource.SearchEngineID` Array(UInt16), `TraficSource.AdvEngineID` Array(UInt8), `TraficSource.PlaceID` Array(UInt16), `TraficSource.SocialSourceNetworkID` Array(UInt8), `TraficSource.Domain` Array(String), `TraficSource.SearchPhrase` Array(String), `TraficSource.SocialSourcePage` Array(String), Attendance FixedString(16), CLID UInt32, YCLID UInt64, NormalizedRefererHash UInt64, SearchPhraseHash UInt64, RefererDomainHash UInt64, NormalizedStartURLHash UInt64, StartURLDomainHash UInt64, NormalizedEndURLHash UInt64, TopLevelDomain UInt64, URLScheme UInt64, OpenstatServiceNameHash UInt64, OpenstatCampaignIDHash UInt64, OpenstatAdIDHash UInt64, OpenstatSourceIDHash UInt64, UTMSourceHash UInt64, UTMMediumHash UInt64, UTMCampaignHash UInt64, UTMContentHash UInt64, UTMTermHash UInt64, FromHash UInt64, WebVisorEnabled UInt8, WebVisorActivity UInt32, `ParsedParams.Key1` Array(String), `ParsedParams.Key2` Array(String), `ParsedParams.Key3` Array(String), `ParsedParams.Key4` Array(String), `ParsedParams.Key5` Array(String), `ParsedParams.ValueDouble` Array(Float64), `Market.Type` Array(UInt8), `Market.GoalID` Array(UInt32), `Market.OrderID` Array(String), `Market.OrderPrice` Array(Int64), `Market.PP` Array(UInt32), `Market.DirectPlaceID` Array(UInt32), `Market.DirectOrderID` Array(UInt32), `Market.DirectBannerID` Array(UInt32), `Market.GoodID` Array(String), `Market.GoodName` Array(String), `Market.GoodQuantity` Array(Int32), `Market.GoodPrice` Array(Int64), IslandID FixedString(16)) ENGINE = CollapsingMergeTree(Sign) PARTITION BY toYYYYMM(StartDate) SAMPLE BY intHash32(UserID) ORDER BY (CounterID, StartDate, intHash32(UserID), VisitID);
+
+ clickhouse-client --max_insert_block_size 100000 --query "INSERT INTO test.hits FORMAT TSV" < hits_v1.tsv
+ clickhouse-client --max_insert_block_size 100000 --query "INSERT INTO test.visits FORMAT TSV" < visits_v1.tsv
+
+# Çekme İsteği Oluşturma {#creating-pull-request}
+
+Github'un kullanıcı arayüzünde çatal deposuna gidin. Bir dalda gelişiyorsanız, o Dalı seçmeniz gerekir. Bir olacak “Pull request” ekranda bulunan düğme. Özünde, bu demektir “create a request for accepting my changes into the main repository”.
+
+Çalışma henüz tamamlanmamış olsa bile bir çekme isteği oluşturulabilir. Bu durumda lütfen kelimeyi koyun “WIP” (devam eden çalışma) başlığın başında, daha sonra değiştirilebilir. Bu, kooperatif Gözden geçirme ve değişikliklerin tartışılması ve mevcut tüm testlerin çalıştırılması için kullanışlıdır. Değişikliklerinizin kısa bir açıklamasını sağlamanız önemlidir, daha sonra sürüm değişiklikleri oluşturmak için kullanılacaktır.
+
+Yandex çalışanları PR'NİZİ bir etiketle etiketlediğinde testler başlayacaktır “can be tested”. The results of some first checks (e.g. code style) will come in within several minutes. Build check results will arrive within half an hour. And the main set of tests will report itself within an hour.
+
+Sistem, çekme isteğiniz için ayrı ayrı ClickHouse ikili yapıları hazırlayacaktır. Bu yapıları almak için tıklayın “Details” yanındaki bağlantı “ClickHouse build check” çekler listesinde giriş. Orada inşa doğrudan bağlantılar bulacaksınız .eğer üretim sunucularında bile dağıtabilirsiniz ClickHouse DEB paketleri (eğer hiçbir korku varsa).
+
+Büyük olasılıkla bazı yapılar ilk kez başarısız olur. Bunun nedeni, hem gcc hem de clang ile, hemen hemen tüm mevcut uyarılarla (her zaman `-Werror` bayrak) clang için etkin. Aynı sayfada, tüm yapı günlüklerini bulabilirsiniz, böylece tüm olası yollarla ClickHouse oluşturmak zorunda kalmazsınız.
diff --git a/docs/tr/development/index.md b/docs/tr/development/index.md
new file mode 100644
index 0000000000..fdd4c0c080
--- /dev/null
+++ b/docs/tr/development/index.md
@@ -0,0 +1,12 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "Geli\u015Fme"
+toc_hidden: true
+toc_priority: 58
+toc_title: "gizlenmi\u015F"
+---
+
+# ClickHouse Geliştirme {#clickhouse-development}
+
+[Orijinal makale](https://clickhouse.tech/docs/en/development/)
diff --git a/docs/tr/development/style.md b/docs/tr/development/style.md
new file mode 100644
index 0000000000..713f95cf05
--- /dev/null
+++ b/docs/tr/development/style.md
@@ -0,0 +1,841 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 68
+toc_title: "C++ kodu nas\u0131l yaz\u0131l\u0131r"
+---
+
+# C++ kodu nasıl yazılır {#how-to-write-c-code}
+
+## Genel Öneriler {#general-recommendations}
+
+**1.** Aşağıdakiler önerilerdir, gereksinimler değildir.
+
+**2.** Kod düzenliyorsanız, varolan kodun biçimlendirmesini takip etmek mantıklıdır.
+
+**3.** Kod stili tutarlılık için gereklidir. Tutarlılık, kodu okumayı kolaylaştırır ve aynı zamanda kodu aramayı da kolaylaştırır.
+
+**4.** Kuralların çoğunun mantıklı nedenleri yoktur, yerleşik uygulamalar tarafından belirlenir.
+
+## Biçimlendirir {#formatting}
+
+**1.** Biçimlendirme çoğu tarafından otomatik olarak yapılacaktır `clang-format`.
+
+**2.** Girintiler 4 boşluk vardır. Bir sekme dört boşluk ekleyecek şekilde geliştirme ortamınızı yapılandırın.
+
+**3.** Kıvırcık parantezlerin açılması ve kapatılması ayrı bir satırda olmalıdır.
+
+``` cpp
+inline void readBoolText(bool & x, ReadBuffer & buf)
+{
+ char tmp = '0';
+ readChar(tmp, buf);
+ x = tmp != '0';
+}
+```
+
+**4.** Tüm fonksiyon gövdesi tek ise `statement`, tek bir satır üzerine yerleştirilebilir. Yer (satır sonunda boşluk dışında) etrafında ayraç boşluk.
+
+``` cpp
+inline size_t mask() const { return buf_size() - 1; }
+inline size_t place(HashValue x) const { return x & mask(); }
+```
+
+**5.** Fonksiyonlar için. Parantezlerin etrafına boşluk koymayın.
+
+``` cpp
+void reinsert(const Value & x)
+```
+
+``` cpp
+memcpy(&buf[place_value], &x, sizeof(x));
+```
+
+**6.** İçinde `if`, `for`, `while` ve diğer ifadeler, açılış braketinin önüne bir boşluk yerleştirilir (işlev çağrılarının aksine).
+
+``` cpp
+for (size_t i = 0; i < rows; i += storage.index_granularity)
+```
+
+**7.** İkili operatörlerin etrafına boşluk Ekle (`+`, `-`, `*`, `/`, `%`, …) and the ternary operator `?:`.
+
+``` cpp
+UInt16 year = (s[0] - '0') * 1000 + (s[1] - '0') * 100 + (s[2] - '0') * 10 + (s[3] - '0');
+UInt8 month = (s[5] - '0') * 10 + (s[6] - '0');
+UInt8 day = (s[8] - '0') * 10 + (s[9] - '0');
+```
+
+**8.** Bir satır beslemesi girilirse, operatörü yeni bir satıra koyun ve girintiyi ondan önce artırın.
+
+``` cpp
+if (elapsed_ns)
+ message << " ("
+ << rows_read_on_server * 1000000000 / elapsed_ns << " rows/s., "
+ << bytes_read_on_server * 1000.0 / elapsed_ns << " MB/s.) ";
+```
+
+**9.** İsterseniz, bir çizgi içinde hizalama için boşluk kullanabilirsiniz.
+
+``` cpp
+dst.ClickLogID = click.LogID;
+dst.ClickEventID = click.EventID;
+dst.ClickGoodEvent = click.GoodEvent;
+```
+
+**10.** Operatörler etrafında boşluk kullanmayın `.`, `->`.
+
+Gerekirse, operatör bir sonraki satıra sarılabilir. Bu durumda, önündeki ofset artar.
+
+**11.** Tekli operatörleri ayırmak için boşluk kullanmayın (`--`, `++`, `*`, `&`, …) from the argument.
+
+**12.** Virgülden sonra bir boşluk koyun, ancak ondan önce değil. Aynı kural, bir içindeki noktalı virgül için de geçerlidir `for` ifade.
+
+**13.** Ayırmak için boşluk kullanmayın `[]` operatör.
+
+**14.** İn a `template <...>` ifade, arasında bir boşluk kullanın `template` ve `<`; sonra boşluk yok `<` ya da önce `>`.
+
+``` cpp
+template
+struct AggregatedStatElement
+{}
+```
+
+**15.** Sınıflarda ve yapılarda, yazın `public`, `private`, ve `protected` aynı seviyede `class/struct` ve kodun geri kalanını girinti.
+
+``` cpp
+template
+class MultiVersion
+{
+public:
+ /// Version of object for usage. shared_ptr manage lifetime of version.
+ using Version = std::shared_ptr;
+ ...
+}
+```
+
+**16.** Eğer aynı `namespace` tüm dosya için kullanılır ve başka önemli bir şey yoktur, içinde bir ofset gerekli değildir `namespace`.
+
+**17.** Eğer blok için bir `if`, `for`, `while` veya başka bir ifade tek bir `statement`, kıvırcık parantez isteğe bağlıdır. Place the `statement` bunun yerine ayrı bir satırda. Bu kural iç içe geçmiş için de geçerlidir `if`, `for`, `while`, …
+
+Ama eğer iç `statement` kıvırcık parantez içerir veya `else`, dış blok kıvırcık parantez içinde yazılmalıdır.
+
+``` cpp
+/// Finish write.
+for (auto & stream : streams)
+ stream.second->finalize();
+```
+
+**18.** Çizgilerin uçlarında boşluk olmamalıdır.
+
+**19.** Kaynak dosyalar UTF-8 kodlanmıştır.
+
+**20.** ASCII olmayan karakterler dize değişmezlerinde kullanılabilir.
+
+``` cpp
+<< ", " << (timer.elapsed() / chunks_stats.hits) << " μsec/hit.";
+```
+
+**21.** Tek bir satırda birden çok ifade yazmayın.
+
+**22.** Fonksiyonların içindeki kod bölümlerini gruplandırın ve bunları birden fazla boş satırla ayırın.
+
+**23.** Bir veya iki boş satırla ayrı işlevler, sınıflar vb.
+
+**24.** `A const` (bir değerle ilgili) tür adından önce yazılmalıdır.
+
+``` cpp
+//correct
+const char * pos
+const std::string & s
+//incorrect
+char const * pos
+```
+
+**25.** Bir işaretçi veya başvuru bildirirken, `*` ve `&` semboller her iki taraftaki boşluklarla ayrılmalıdır.
+
+``` cpp
+//correct
+const char * pos
+//incorrect
+const char* pos
+const char *pos
+```
+
+**26.** Şablon türlerini kullanırken, `using` anahtar kelime (en basit durumlar hariç).
+
+Başka bir deyişle, şablon parametreleri yalnızca `using` ve kodda tekrarlanmıyor.
+
+`using` bir işlevin içinde olduğu gibi yerel olarak bildirilebilir.
+
+``` cpp
+//correct
+using FileStreams = std::map>;
+FileStreams streams;
+//incorrect
+std::map> streams;
+```
+
+**27.** Bir ifadede farklı türde birkaç değişken bildirmeyin.
+
+``` cpp
+//incorrect
+int x, *y;
+```
+
+**28.** C tarzı yayınları kullanmayın.
+
+``` cpp
+//incorrect
+std::cerr << (int)c <<; std::endl;
+//correct
+std::cerr << static_cast(c) << std::endl;
+```
+
+**29.** Sınıflarda ve yapılarda, grup üyeleri ve işlevleri her görünürlük kapsamı içinde ayrı ayrı.
+
+**30.** Küçük sınıflar ve yapılar için, yöntem bildirimini uygulamadan ayırmak gerekli değildir.
+
+Aynı şey, herhangi bir sınıf veya yapıdaki küçük yöntemler için de geçerlidir.
+
+Templated sınıflar ve yapılar için, yöntem bildirimlerini uygulamadan ayırmayın(aksi takdirde aynı çeviri biriminde tanımlanmaları gerekir).
+
+**31.** Satırları 80 yerine 140 karakterle sarabilirsiniz.
+
+**32.** Postfix gerekli değilse, her zaman önek artış / azaltma işleçlerini kullanın.
+
+``` cpp
+for (Names::const_iterator it = column_names.begin(); it != column_names.end(); ++it)
+```
+
+## Yorumlar {#comments}
+
+**1.** Kodun önemsiz olmayan tüm bölümleri için yorum eklediğinizden emin olun.
+
+Bu çok önemli. Yorumu yazmak, kodun gerekli olmadığını veya yanlış tasarlandığını anlamanıza yardımcı olabilir.
+
+``` cpp
+/** Part of piece of memory, that can be used.
+ * For example, if internal_buffer is 1MB, and there was only 10 bytes loaded to buffer from file for reading,
+ * then working_buffer will have size of only 10 bytes
+ * (working_buffer.end() will point to position right after those 10 bytes available for read).
+ */
+```
+
+**2.** Yorumlar gerektiği kadar ayrıntılı olabilir.
+
+**3.** Açıklama yaptıkları koddan önce yorumları yerleştirin. Nadir durumlarda, yorumlar aynı satırda koddan sonra gelebilir.
+
+``` cpp
+/** Parses and executes the query.
+*/
+void executeQuery(
+ ReadBuffer & istr, /// Where to read the query from (and data for INSERT, if applicable)
+ WriteBuffer & ostr, /// Where to write the result
+ Context & context, /// DB, tables, data types, engines, functions, aggregate functions...
+ BlockInputStreamPtr & query_plan, /// Here could be written the description on how query was executed
+ QueryProcessingStage::Enum stage = QueryProcessingStage::Complete /// Up to which stage process the SELECT query
+ )
+```
+
+**4.** Yorumlar sadece İngilizce olarak yazılmalıdır.
+
+**5.** Bir kitaplık yazıyorsanız, ana başlık dosyasına açıklayan ayrıntılı yorumları ekleyin.
+
+**6.** Ek bilgi vermeyen yorumlar eklemeyin. Özellikle, bu gibi boş yorumlar bırakmayın:
+
+``` cpp
+/*
+* Procedure Name:
+* Original procedure name:
+* Author:
+* Date of creation:
+* Dates of modification:
+* Modification authors:
+* Original file name:
+* Purpose:
+* Intent:
+* Designation:
+* Classes used:
+* Constants:
+* Local variables:
+* Parameters:
+* Date of creation:
+* Purpose:
+*/
+```
+
+Örnek kaynaktan ödünç alınmıştır http://home.tamk.fi / ~ jaalto / kurs / kodlama stili / doc/ulaşılamaz-kod/.
+
+**7.** Çöp yorum yazmayın (yazar, oluşturma tarihi ..) her dosyanın başında.
+
+**8.** Tek satırlı yorumlar üç eğik çizgi ile başlar: `///` ve çok satırlı yorumlar ile başlar `/**`. Bu yorumlar dikkate alınır “documentation”.
+
+Not: bu yorumlardan belgeler oluşturmak için Doxygen kullanabilirsiniz. Ancak DOXYGEN genellikle kullanılmaz, çünkü IDE'DEKİ kodda gezinmek daha uygundur.
+
+**9.** Çok satırlı açıklamaların başında ve sonunda (çok satırlı bir açıklamayı kapatan satır hariç) boş satırları olmamalıdır.
+
+**10.** Kodu yorumlamak için temel yorumları kullanın, değil “documenting” yorumlar.
+
+**11.** İşlem yapmadan önce kodun yorumlanan kısımlarını silin.
+
+**12.** Yorumlarda veya kodda küfür kullanmayın.
+
+**13.** Büyük harf kullanmayın. Aşırı noktalama kullanmayın.
+
+``` cpp
+/// WHAT THE FAIL???
+```
+
+**14.** Sınırlayıcılar yapmak için yorum kullanmayın.
+
+``` cpp
+///******************************************************
+```
+
+**15.** Yorumlarda tartışmalara başlamayın.
+
+``` cpp
+/// Why did you do this stuff?
+```
+
+**16.** Ne hakkında olduğunu açıklayan bir bloğun sonunda bir yorum yazmaya gerek yok.
+
+``` cpp
+/// for
+```
+
+## Adlar {#names}
+
+**1.** Değişkenlerin ve sınıf üyelerinin adlarında alt çizgi içeren küçük harfler kullanın.
+
+``` cpp
+size_t max_block_size;
+```
+
+**2.** İşlevlerin (yöntemlerin) adları için, küçük harfle başlayan camelCase kullanın.
+
+``` cpp
+std::string getName() const override { return "Memory"; }
+```
+
+**3.** Sınıfların (yapıların) adları için büyük harfle başlayan CamelCase kullanın. Ben dışındaki önekler arayüzler için kullanılmaz.
+
+``` cpp
+class StorageMemory : public IStorage
+```
+
+**4.** `using` sınıf aslarla aynı şekilde adlandırılır veya `_t` ucunda.
+
+**5.** Şablon Türü argümanlarının isimleri: basit durumlarda, kullanın `T`; `T`, `U`; `T1`, `T2`.
+
+Daha karmaşık durumlar için, sınıf adları için kuralları izleyin veya öneki ekleyin `T`.
+
+``` cpp
+template
+struct AggregatedStatElement
+```
+
+**6.** Şablon sabit argümanlarının adları: değişken adları için kurallara uyun veya kullanın `N` basit durumlarda.
+
+``` cpp
+template
+struct ExtractDomain
+```
+
+**7.** Soyut sınıflar (arayüzler) için şunları ekleyebilirsiniz `I` önek.
+
+``` cpp
+class IBlockInputStream
+```
+
+**8.** Yerel olarak bir değişken kullanırsanız, kısa adı kullanabilirsiniz.
+
+Diğer tüm durumlarda, anlamı açıklayan bir isim kullanın.
+
+``` cpp
+bool info_successfully_loaded = false;
+```
+
+**9.** İsimleri `define`s ve genel sabitler alt çizgi ile ALL\_CAPS kullanın.
+
+``` cpp
+#define MAX_SRC_TABLE_NAMES_TO_STORE 1000
+```
+
+**10.** Dosya adları, içerikleriyle aynı stili kullanmalıdır.
+
+Bir dosya tek bir sınıf içeriyorsa, dosyayı sınıfla aynı şekilde adlandırın (CamelCase).
+
+Dosya tek bir işlev içeriyorsa, dosyayı işlevle aynı şekilde adlandırın (camelCase).
+
+**11.** İsim bir kısaltma içeriyorsa, o zaman:
+
+- Değişken adları için kısaltma küçük harfler kullanmalıdır `mysql_connection` (değil `mySQL_connection`).
+- Sınıfların ve işlevlerin adları için, büyük harfleri kısaltmada tutun`MySQLConnection` (değil `MySqlConnection`).
+
+**12.** Yalnızca sınıf üyelerini başlatmak için kullanılan yapıcı bağımsız değişkenleri, sınıf üyeleri ile aynı şekilde, ancak sonunda bir alt çizgi ile adlandırılmalıdır.
+
+``` cpp
+FileQueueProcessor(
+ const std::string & path_,
+ const std::string & prefix_,
+ std::shared_ptr handler_)
+ : path(path_),
+ prefix(prefix_),
+ handler(handler_),
+ log(&Logger::get("FileQueueProcessor"))
+{
+}
+```
+
+Bağımsız değişken yapıcı gövdesinde kullanılmazsa, alt çizgi soneki atlanabilir.
+
+**13.** Yerel değişkenlerin ve sınıf üyelerinin adlarında fark yoktur (önek gerekmez).
+
+``` cpp
+timer (not m_timer)
+```
+
+**14.** Bir de SAB theitler için `enum`, büyük harfle CamelCase kullanın. ALL\_CAPS da kabul edilebilir. Eğer... `enum` yerel olmayan, bir `enum class`.
+
+``` cpp
+enum class CompressionMethod
+{
+ QuickLZ = 0,
+ LZ4 = 1,
+};
+```
+
+**15.** Tüm isimler İngilizce olmalıdır. Rusça kelimelerin çevirisi izin verilmez.
+
+ not Stroka
+
+**16.** Kısaltmalar iyi biliniyorsa kabul edilebilir (kısaltmanın anlamını Wikipedia'da veya bir arama motorunda kolayca bulabilirsiniz).
+
+ `AST`, `SQL`.
+
+ Not `NVDH` (some random letters)
+
+Kısaltılmış versiyon ortak kullanım ise eksik kelimeler kabul edilebilir.
+
+Yorumlarda tam ad yanında yer alıyorsa bir kısaltma da kullanabilirsiniz.
+
+**17.** C++ kaynak kodu ile dosya adları olmalıdır `.cpp` uzantı. Başlık dosyaları olmalıdır `.h` uzantı.
+
+## Kod nasıl yazılır {#how-to-write-code}
+
+**1.** Bellek yönetimi.
+
+El ile bellek ayırma (`delete`) sadece kütüphane kodunda kullanılabilir.
+
+Kütüphane kod inunda, `delete` operatör yalnızca yıkıcılarda kullanılabilir.
+
+Uygulama kodunda, bellek sahibi olan nesne tarafından serbest bırakılmalıdır.
+
+Örnekler:
+
+- En kolay yol, bir nesneyi yığına yerleştirmek veya onu başka bir sınıfın üyesi yapmaktır.
+- Çok sayıda küçük nesne için kapları kullanın.
+- Öbekte bulunan az sayıda nesnenin otomatik olarak ayrılması için şunları kullanın `shared_ptr/unique_ptr`.
+
+**2.** Kaynak yönetimi.
+
+Kullanmak `RAII` ve yukarıya bakın.
+
+**3.** Hata işleme.
+
+İstisnaları kullanın. Çoğu durumda, yalnızca bir istisna atmanız gerekir ve onu yakalamanız gerekmez (çünkü `RAII`).
+
+Çevrimdışı veri işleme uygulamalarında, istisnaları yakalamamak genellikle kabul edilebilir.
+
+Kullanıcı isteklerini işleyen sunucularda, bağlantı işleyicisinin en üst düzeyindeki istisnaları yakalamak genellikle yeterlidir.
+
+İş parçacığı işlevlerinde, bunları ana iş parçacığında yeniden taramak için tüm istisnaları yakalamalı ve tutmalısınız `join`.
+
+``` cpp
+/// If there weren't any calculations yet, calculate the first block synchronously
+if (!started)
+{
+ calculate();
+ started = true;
+}
+else /// If calculations are already in progress, wait for the result
+ pool.wait();
+
+if (exception)
+ exception->rethrow();
+```
+
+İşleme olmadan istisnaları asla gizlemeyin. Sadece körü körüne log tüm istisnaları koymak asla.
+
+``` cpp
+//Not correct
+catch (...) {}
+```
+
+Eğer bazı özel durumlar göz ardı etmek gerekiyorsa, sadece özel olanlar için bunu yapmak ve diğerleri yeniden oluşturma.
+
+``` cpp
+catch (const DB::Exception & e)
+{
+ if (e.code() == ErrorCodes::UNKNOWN_AGGREGATE_FUNCTION)
+ return nullptr;
+ else
+ throw;
+}
+```
+
+Yanıt kodlarıyla işlevleri kullanırken veya `errno`, her zaman sonucu kontrol edin ve hata durumunda bir istisna atın.
+
+``` cpp
+if (0 != close(fd))
+ throwFromErrno("Cannot close file " + file_name, ErrorCodes::CANNOT_CLOSE_FILE);
+```
+
+`Do not use assert`.
+
+**4.** İstisna türleri.
+
+Uygulama kodunda karmaşık özel durum hiyerarşisini kullanmaya gerek yoktur. Özel durum metni bir sistem yöneticisi için anlaşılabilir olmalıdır.
+
+**5.** Yıkıcılardan istisnalar atmak.
+
+Bu tavsiye edilmez, ancak izin verilir.
+
+Aşağıdaki seçenekleri kullanın:
+
+- Bir işlev oluşturma (`done()` veya `finalize()`) bu, bir istisnaya yol açabilecek tüm işleri önceden yapacaktır. Bu işlev çağrıldıysa, daha sonra yıkıcıda istisna olmamalıdır.
+- Çok karmaşık olan görevler (ağ üzerinden ileti gönderme gibi), sınıf kullanıcısının imha edilmeden önce çağırması gereken ayrı bir yöntemle yerleştirilebilir.
+- Yıkıcıda bir istisna varsa, onu gizlemek yerine günlüğe kaydetmek daha iyidir (logger mevcutsa).
+- Basit uygulamalarda, güvenmek kabul edilebilir `std::terminate` bu (vakaların `noexcept` varsayılan olarak C++11) istisnaları işlemek için.
+
+**6.** Anonim kod blokları.
+
+Belirli değişkenleri yerel hale getirmek için tek bir işlevin içinde ayrı bir kod bloğu oluşturabilirsiniz, böylece bloktan çıkarken yıkıcılar çağrılır.
+
+``` cpp
+Block block = data.in->read();
+
+{
+ std::lock_guard lock(mutex);
+ data.ready = true;
+ data.block = block;
+}
+
+ready_any.set();
+```
+
+**7.** Multithreading.
+
+Çevrimdışı veri işleme programlarında:
+
+- Tek bir CPU çekirdeğinde mümkün olan en iyi performansı elde etmeye çalışın. Daha sonra gerekirse kodunuzu parallelize edebilirsiniz.
+
+Sunucu uygulamalarında:
+
+- İstekleri işlemek için iş parçacığı havuzunu kullanın. Bu noktada, userspace bağlam değiştirme gerektiren herhangi bir görevimiz olmadı.
+
+Çatal paralelleştirme için kullanılmaz.
+
+**8.** İş parçacıklarını senkronize etme.
+
+Genellikle farklı iş parçacıklarının farklı bellek hücreleri kullanmasını sağlamak mümkündür (daha da iyisi: farklı önbellek çizgileri) ve herhangi bir iş parçacığı senkronizasyonu kullanmamak (hariç `joinAll`).
+
+Senkronizasyon gerekiyorsa, çoğu durumda, mutex altında kullanmak yeterlidir `lock_guard`.
+
+Diğer durumlarda sistem senkronizasyonu ilkellerini kullanın. Meşgul bekleme kullanmayın.
+
+Atomik işlemler sadece en basit durumlarda kullanılmalıdır.
+
+Birincil uzmanlık alanınız olmadığı sürece kilitsiz veri yapılarını uygulamaya çalışmayın.
+
+**9.** İşaretçiler vs referanslar.
+
+Çoğu durumda, referansları tercih edin.
+
+**10.** const.
+
+Sabit referanslar, sabitler için işaretçiler kullanın, `const_iterator` ve const yöntemleri.
+
+Düşünmek `const` varsayılan olmak ve olmayan kullanmak-`const` sadece gerektiğinde.
+
+Değişkenleri değere göre geçirirken, `const` genellikle mantıklı değil.
+
+**11.** imzasız.
+
+Kullanmak `unsigned` gerekirse.
+
+**12.** Sayısal türleri.
+
+Türleri kullanın `UInt8`, `UInt16`, `UInt32`, `UInt64`, `Int8`, `Int16`, `Int32`, ve `Int64` gibi `size_t`, `ssize_t`, ve `ptrdiff_t`.
+
+Bu türleri sayılar için kullanmayın: `signed/unsigned long`, `long long`, `short`, `signed/unsigned char`, `char`.
+
+**13.** Argümanları geçmek.
+
+Karmaşık değerleri referansla geçirin (dahil `std::string`).
+
+Bir işlev öbekte oluşturulan bir nesnenin sahipliğini yakalarsa, bağımsız değişken türünü yapın `shared_ptr` veya `unique_ptr`.
+
+**14.** Değerleri döndürür.
+
+Çoğu durumda, sadece kullanın `return`. Yaz domayın `[return std::move(res)]{.strike}`.
+
+İşlev öbek üzerinde bir nesne ayırır ve döndürürse, şunları kullanın `shared_ptr` veya `unique_ptr`.
+
+Nadir durumlarda, değeri bir argüman aracılığıyla döndürmeniz gerekebilir. Bu durumda, argüman bir referans olmalıdır.
+
+``` cpp
+using AggregateFunctionPtr = std::shared_ptr;
+
+/** Allows creating an aggregate function by its name.
+ */
+class AggregateFunctionFactory
+{
+public:
+ AggregateFunctionFactory();
+ AggregateFunctionPtr get(const String & name, const DataTypes & argument_types) const;
+```
+
+**15.** ad.
+
+Ayrı bir kullanmaya gerek yoktur `namespace` uygulama kodu için.
+
+Küçük kütüphanelerin de buna ihtiyacı yok.
+
+Orta ve büyük kütüphaneler için her şeyi bir `namespace`.
+
+Kütüphan theede `.h` dosya, kullanabilirsiniz `namespace detail` uygulama kodu için gerekli olmayan uygulama ayrıntılarını gizlemek için.
+
+İn a `.cpp` dosya, bir kullanabilirsiniz `static` veya sembolleri gizlemek için anonim ad alanı.
+
+Ayrıca, bir `namespace` bir için kullanılabilir `enum` ilgili isimlerin harici bir yere düşmesini önlemek için `namespace` (ama kullanmak daha iyidir `enum class`).
+
+**16.** Ertelenmiş başlatma.
+
+Başlatma için bağımsız değişkenler gerekiyorsa, normalde varsayılan bir yapıcı yazmamalısınız.
+
+Daha sonra başlatmayı geciktirmeniz gerekiyorsa, geçersiz bir nesne oluşturacak varsayılan bir yapıcı ekleyebilirsiniz. Veya, az sayıda nesne için şunları kullanabilirsiniz `shared_ptr/unique_ptr`.
+
+``` cpp
+Loader(DB::Connection * connection_, const std::string & query, size_t max_block_size_);
+
+/// For deferred initialization
+Loader() {}
+```
+
+**17.** Sanal fonksiyonlar.
+
+Sınıf polimorfik kullanım için tasarlanmamışsa, işlevleri sanal hale getirmeniz gerekmez. Bu aynı zamanda yıkıcı için de geçerlidir.
+
+**18.** Kodlamalar.
+
+Her yerde UTF-8 kullanın. Kullanmak `std::string`ve`char *`. Kullanmayın `std::wstring`ve`wchar_t`.
+
+**19.** Günlük.
+
+Koddaki her yerde örneklere bakın.
+
+Taahhütte bulunmadan önce, tüm anlamsız ve hata ayıklama günlüğünü ve diğer hata ayıklama çıktı türlerini silin.
+
+İzleme düzeyinde bile döngülerde oturum açmaktan kaçınılmalıdır.
+
+Günlükleri herhangi bir günlük düzeyinde okunabilir olmalıdır.
+
+Günlük kaydı yalnızca uygulama kodunda, çoğunlukla kullanılmalıdır.
+
+Günlük mesajları İngilizce olarak yazılmalıdır.
+
+Günlük, tercihen Sistem Yöneticisi için anlaşılabilir olmalıdır.
+
+Günlüğünde küfür kullanmayın.
+
+Günlüğünde UTF-8 kodlamasını kullanın. Nadir durumlarda, günlüğünde ASCII olmayan karakterler kullanabilirsiniz.
+
+**20.** Giriş-çıkış.
+
+Kullanmayın `iostreams` uygulama performansı için kritik olan iç döngülerde (ve asla kullanmayın `stringstream`).
+
+Kullan... `DB/IO` kütüphane yerine.
+
+**21.** Tarih ve zaman.
+
+Görmek `DateLUT` kitaplık.
+
+**22.** içermek.
+
+Her zaman kullanın `#pragma once` korumaları dahil etmek yerine.
+
+**23.** kullanım.
+
+`using namespace` kullanılmaz. Kullanabilirsiniz `using` özel bir şeyle. Ancak bir sınıf veya işlev içinde yerel yapın.
+
+**24.** Kullanmayın `trailing return type` gerekli olmadıkça fonksiyonlar için.
+
+``` cpp
+[auto f() -> void;]{.strike}
+```
+
+**25.** Değişkenlerin bildirimi ve başlatılması.
+
+``` cpp
+//right way
+std::string s = "Hello";
+std::string s{"Hello"};
+
+//wrong way
+auto s = std::string{"Hello"};
+```
+
+**26.** Sanal işlevler için yaz `virtual` temel sınıfta, ama yaz `override` yerine `virtual` soyundan gelen sınıflarda.
+
+## C++ ' ın kullanılmayan özellikleri {#unused-features-of-c}
+
+**1.** Sanal devralma kullanılmaz.
+
+**2.** C++03 özel durum belirteçleri kullanılmaz.
+
+## Platform {#platform}
+
+**1.** Belirli bir platform için kod yazıyoruz.
+
+Ama diğer şeyler eşit olmak, çapraz platform veya taşınabilir kod tercih edilir.
+
+**2.** Dil: C++17.
+
+**3.** Derleyici: `gcc`. Şu anda (Aralık 2017), kod sürüm 7.2 kullanılarak derlenmiştir. (Ayrıca kullanılarak derlenebilir `clang 4`.)
+
+Standart kütüphane kullanılır (`libstdc++` veya `libc++`).
+
+**4.**OS: Linux UB .untu, daha eski değil.
+
+**5.**Kod x86\_64 CPU mimarisi için yazılmıştır.
+
+CPU komut seti, sunucularımız arasında desteklenen minimum kümedir. Şu anda, sse 4.2.
+
+**6.** Kullanmak `-Wall -Wextra -Werror` derleme bayrakları.
+
+**7.** Statik olarak bağlanması zor olanlar hariç tüm kitaplıklarla statik bağlantı kullanın (bkz. `ldd` komut).
+
+**8.** Kod geliştirilmiş ve yayın ayarları ile ayıklanır.
+
+## Araçlar {#tools}
+
+**1.** KDevelop iyi bir IDE.
+
+**2.** Hata ayıklama için kullanın `gdb`, `valgrind` (`memcheck`), `strace`, `-fsanitize=...`, veya `tcmalloc_minimal_debug`.
+
+**3.** Profilleme için kullanın `Linux Perf`, `valgrind` (`callgrind`), veya `strace -cf`.
+
+**4.** Kaynaklar Git'te.
+
+**5.** Montaj kullanımları `CMake`.
+
+**6.** Programlar kullanılarak serbest bırakılır `deb` paketler.
+
+**7.** Ana taahhüt yapı kırmak gerekir.
+
+Sadece seçilen revizyonlar uygulanabilir olarak kabul edilir.
+
+**8.** Kod yalnızca kısmen hazır olsa bile, mümkün olduğunca sık taahhüt yapın.
+
+Bu amaçla dalları kullanın.
+
+Eğer kod inunuz `master` şube henüz imara değil, önce inşa onu hariç `push`. Bunu bitirmek veya birkaç gün içinde kaldırmak gerekir.
+
+**9.** Non-önemsiz değişiklik, kullanım şubeleri ve sunucu bunları yayımlamak.
+
+**10.** Kullanılmayan kod depodan kaldırılır.
+
+## Kitaplık {#libraries}
+
+**1.** C++14 standart Kütüphanesi kullanılır (deneysel uzantılara izin verilir) ve `boost` ve `Poco` çerçeveler.
+
+**2.** Gerekirse, OS paketinde bulunan iyi bilinen kütüphaneleri kullanabilirsiniz.
+
+Zaten mevcut olan iyi bir çözüm varsa, başka bir kütüphane yüklemeniz gerektiği anlamına gelse bile kullanın.
+
+(Ancak kötü kütüphaneleri koddan kaldırmaya hazır olun .)
+
+**3.** Paketlerde ihtiyacınız olan şey yoksa veya eski bir sürüme veya yanlış derleme türüne sahip değilseniz, paketlerde olmayan bir kitaplık yükleyebilirsiniz.
+
+**4.** Kütüphane küçükse ve kendi karmaşık yapı sistemine sahip değilse, kaynak dosyaları `contrib` klasör.
+
+**5.** Tercih her zaman zaten kullanımda olan kütüphanelere verilir.
+
+## Genel Öneriler {#general-recommendations-1}
+
+**1.** Mümkün olduğunca az kod yazın.
+
+**2.** En basit çözümü deneyin.
+
+**3.** Nasıl çalışacağını ve iç döngünün nasıl çalışacağını bilene kadar kod yazmayın.
+
+**4.** En basit durumlarda, kullanın `using` sınıflar veya yapılar yerine.
+
+**5.** Mümkünse, kopya oluşturucuları, atama işleçleri, yıkıcılar (sınıf en az bir sanal işlev içeriyorsa, sanal bir işlev dışında) yazmayın, oluşturucuları taşıyın veya atama işleçlerini taşıyın. Başka bir deyişle, derleyici tarafından oluşturulan işlevleri düzgün çalışması gerekir. Kullanabilirsiniz `default`.
+
+**6.** Kod sadeleştirme teşvik edilir. Mümkünse kodunuzun boyutunu azaltın.
+
+## Ek Öneriler {#additional-recommendations}
+
+**1.** Açıkça belirtme `std::` türleri için `stddef.h`
+
+tavsiye edilmez. Başka bir deyişle, yazmanızı öneririz `size_t` yerine `std::size_t` daha kısa olduğu için.
+
+Eklemek kabul edilebilir `std::`.
+
+**2.** Açıkça belirtme `std::` standart C kitap fromlığından fonksiyonlar için
+
+tavsiye edilmez. Başka bir deyişle, yazın `memcpy` yerine `std::memcpy`.
+
+Bunun nedeni, aşağıdaki gibi benzer standart dışı işlevlerin olmasıdır `memmem`. Bu işlevleri zaman zaman kullanıyoruz. Bu işlevler mevcut değil `namespace std`.
+
+Yazar yousan `std::memcpy` yerine `memcpy` her yerde, o zaman `memmem` olarak `std::` garip görünecek.
+
+Yine de, hala kullanabilirsiniz `std::` eğer tercih ederseniz edin.
+
+**3.** Aynı olanlar standart C++ kütüphanesinde mevcut olduğunda C'den işlevleri kullanma.
+
+Daha verimli ise bu kabul edilebilir.
+
+Örneğin, kullanın `memcpy` yerine `std::copy` büyük bellek parçalarını kopyalamak için.
+
+**4.** Çok satırlı fonksiyon argümanları.
+
+Aşağıdaki sarma stillerinden herhangi birine izin verilir:
+
+``` cpp
+function(
+ T1 x1,
+ T2 x2)
+```
+
+``` cpp
+function(
+ size_t left, size_t right,
+ const & RangesInDataParts ranges,
+ size_t limit)
+```
+
+``` cpp
+function(size_t left, size_t right,
+ const & RangesInDataParts ranges,
+ size_t limit)
+```
+
+``` cpp
+function(size_t left, size_t right,
+ const & RangesInDataParts ranges,
+ size_t limit)
+```
+
+``` cpp
+function(
+ size_t left,
+ size_t right,
+ const & RangesInDataParts ranges,
+ size_t limit)
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/development/style/)
diff --git a/docs/tr/development/tests.md b/docs/tr/development/tests.md
new file mode 100644
index 0000000000..1d39c24da5
--- /dev/null
+++ b/docs/tr/development/tests.md
@@ -0,0 +1,252 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 69
+toc_title: "ClickHouse testleri nas\u0131l \xE7al\u0131\u015Ft\u0131r\u0131l\u0131\
+ r"
+---
+
+# ClickHouse Testi {#clickhouse-testing}
+
+## Fonksiyonel Testler {#functional-tests}
+
+Fonksiyonel testler en basit ve kullanımı kolay olanlardır. ClickHouse özelliklerinin çoğu fonksiyonel testlerle test edilebilir ve bu şekilde test edilebilecek ClickHouse kodundaki her değişiklik için kullanılması zorunludur.
+
+Her işlevsel test, çalışan ClickHouse sunucusuna bir veya birden çok sorgu gönderir ve sonucu referansla karşılaştırır.
+
+Testler bulunur `queries` dizin. İki alt dizin var: `stateless` ve `stateful`. Durumsuz testler, önceden yüklenmiş test verileri olmadan sorguları çalıştırır - genellikle testin kendisinde anında küçük sentetik veri kümeleri oluştururlar. Durum bilgisi testleri, Yandex'ten önceden yüklenmiş test verileri gerektirir.Metrica ve halka açık değil. Biz sadece kullanmak eğilimindedir `stateless` testler ve yeni eklemekten kaçının `stateful` testler.
+
+Her test iki tipten biri olabilir: `.sql` ve `.sh`. `.sql` test için borulu basit SQL komut dosyasıdır `clickhouse-client --multiquery --testmode`. `.sh` test kendisi tarafından çalıştırılan bir komut dosyasıdır.
+
+Tüm testleri çalıştırmak için şunları kullanın `clickhouse-test` aracı. Bak `--help` Olası seçeneklerin listesi için. Sadece tüm testleri çalıştırmak veya test adı alt dize tarafından süzülmüş testlerin alt kümesini çalıştırabilirsiniz: `./clickhouse-test substring`.
+
+Fonksiyonel testleri çağırmanın en basit yolu kopyalamaktır `clickhouse-client` -e doğru `/usr/bin/`, çalıştırmak `clickhouse-server` ve sonra koş `./clickhouse-test` kendi dizininden.
+
+Yeni test eklemek için, bir `.sql` veya `.sh` dosya içinde `queries/0_stateless` dizin, elle kontrol edin ve sonra oluşturun `.reference` aşağıdaki şekilde dosya: `clickhouse-client -n --testmode < 00000_test.sql > 00000_test.reference` veya `./00000_test.sh > ./00000_test.reference`.
+
+Testler yalnızca tabloları (create, drop, vb.) kullanmalıdır `test` önceden oluşturulduğu varsayılır veritabanı; ayrıca testler geçici tablolar kullanabilirsiniz.
+
+İşlevsel testlerde dağıtılmış sorgular kullanmak istiyorsanız, kaldıraç `remote` tablo fonksiyonu ile `127.0.0.{1..2}` sunucunun kendisini sorgulaması için adresler; veya sunucu yapılandırma dosyasında önceden tanımlanmış test kümelerini kullanabilirsiniz `test_shard_localhost`.
+
+Bazı testler ile işaretlenir `zookeeper`, `shard` veya `long` kendi adlarına.
+`zookeeper` ZooKeeper kullanan testler içindir. `shard` testler içindir
+dinlemek için sunucu gerektirir `127.0.0.*`; `distributed` veya `global` aynı var
+anlama. `long` bir saniye biraz daha uzun süren testler içindir. Yapabilirsin
+kullanarak bu test gruplarını devre dışı bırakın `--no-zookeeper`, `--no-shard` ve
+`--no-long` sırasıyla seçenekler.
+
+## Bilinen Hatalar {#known-bugs}
+
+Fonksiyonel testlerle kolayca çoğaltılabilen bazı hatalar biliyorsak, hazırlanmış fonksiyonel testleri `tests/queries/bugs` dizin. Bu testler taşınacaktır `tests/queries/0_stateless` hatalar düzeltildiğinde.
+
+## Entegrasyon Testleri {#integration-tests}
+
+Entegrasyon testleri, kümelenmiş konfigürasyonda Clickhouse'u ve MySQL, Postgres, MongoDB gibi diğer sunucularla ClickHouse etkileşimini test etmeyi sağlar. Ağ bölmelerini, paket damlalarını vb. taklit etmek için kullanışlıdırlar. Bu testler Docker altında çalıştırılır ve çeşitli yazılımlarla birden fazla konteyner oluşturur.
+
+Görmek `tests/integration/README.md` bu testlerin nasıl çalıştırılacağı hakkında.
+
+Clickhouse'un üçüncü taraf sürücülerle entegrasyonunun sınanmadığını unutmayın. Ayrıca şu anda JDBC ve ODBC sürücülerimizle entegrasyon testlerimiz yok.
+
+## Ünite Testleri {#unit-tests}
+
+Birim testleri, Clickhouse'u bir bütün olarak değil, tek bir yalıtılmış kitaplık veya sınıfı test etmek istediğinizde kullanışlıdır. Etkinleştirebilir veya devre dışı bırakma ile testlerin yapı `ENABLE_TESTS` Cmake seçeneği. Birim testleri (ve diğer test programları) bulunur `tests` kodun alt dizinleri. Birim testlerini çalıştırmak için şunları yazın `ninja test`. Bazı testler kullanın `gtest`, ancak bazıları test başarısızlığında sıfır olmayan çıkış kodunu döndüren programlardır.
+
+Kodun zaten işlevsel testler tarafından kapsanması durumunda birim testlerine sahip olmak zorunlu değildir (ve işlevsel testler genellikle kullanımı çok daha basittir).
+
+## Performans Testleri {#performance-tests}
+
+Performans testleri ölçmek ve sentetik sorguları ClickHouse bazı izole kısmının performansını karşılaştırmak için izin verir. Testler bulunur `tests/performance`. Her test ile temsil edilir `.xml` test durumunun açıklaması ile dosya. Testler ile çalıştırılır `clickhouse performance-test` Aracı (Bu gömülü `clickhouse` ikilik). Görmek `--help` çağırma için.
+
+Her test, durdurma için bazı koşullarla (örneğin, bir döngüde bir veya birden fazla sorgu (muhtemelen parametre kombinasyonlarıyla) çalıştırır “maximum execution speed is not changing in three seconds”) ve sorgu performansı ile ilgili bazı metrikleri ölçün (örneğin “maximum execution speed”). Bazı testler önceden yüklenmiş test veri kümesinde Önkoşullar içerebilir.
+
+Bazı senaryoda Clickhouse'un performansını artırmak istiyorsanız ve basit sorgularda iyileştirmeler gözlemlenebiliyorsa, bir performans testi yazmanız önerilir. Her zaman kullanmak mantıklı `perf top` testleriniz sırasında veya diğer perf araçları.
+
+## Test araçları ve komut dosyaları {#test-tools-and-scripts}
+
+Bazı programlar `tests` dizin testleri hazırlanmış değil, ancak test araçlarıdır. Örneğin, için `Lexer` bir araç var `src/Parsers/tests/lexer` bu sadece stdin'in tokenizasyonunu yapar ve renklendirilmiş sonucu stdout'a yazar. Bu tür araçları kod örnekleri olarak ve keşif ve manuel test için kullanabilirsiniz.
+
+Ayrıca Çift Dosya yerleştirebilirsiniz `.sh` ve `.reference` aracı ile birlikte bazı önceden tanımlanmış giriş üzerinde çalıştırmak için-daha sonra komut sonucu karşılaştırılabilir `.reference` Dosya. Bu tür testler otomatik değildir.
+
+## Çeşitli Testler {#miscellaneous-tests}
+
+Bulunan dış sözlükler için testler vardır `tests/external_dictionaries` ve makine öğrenilen modeller için `tests/external_models`. Bu testler güncelleştirilmez ve tümleştirme testlerine aktarılmalıdır.
+
+Çekirdek ekler için ayrı bir test var. Bu test, ayrı sunucularda ClickHouse kümesini çalıştırır ve çeşitli arıza durumlarını taklit eder: ağ bölünmesi, paket bırakma (ClickHouse düğümleri arasında, ClickHouse ve ZooKeeper arasında, ClickHouse sunucusu ve istemci arasında, vb.), `kill -9`, `kill -STOP` ve `kill -CONT` , istemek [Jepsen](https://aphyr.com/tags/Jepsen). Daha sonra test, kabul edilen tüm eklerin yazıldığını ve reddedilen tüm eklerin olmadığını kontrol eder.
+
+Clickhouse açık kaynaklı önce çekirdek testi ayrı ekip tarafından yazılmıştır. Bu takım artık ClickHouse ile çalışmıyor. Test yanlışlıkla Java ile yazılmıştır. Bu nedenlerden dolayı, çekirdek testi yeniden yazılmalı ve entegrasyon testlerine taşınmalıdır.
+
+## Manuel Test {#manual-testing}
+
+Yeni bir özellik geliştirdiğinizde, el ile de test etmek mantıklıdır. Bunu aşağıdaki adımlarla yapabilirsiniz:
+
+ClickHouse Oluşturun. Terminalden Clickhouse'u çalıştırın: dizini değiştir `programs/clickhouse-server` ve ile çalıştırın `./clickhouse-server`. Bu yapılandırma kullanacak (`config.xml`, `users.xml` ve içindeki dosyalar `config.d` ve `users.d` dizinler) geçerli dizinden varsayılan olarak. ClickHouse sunucusuna bağlanmak için, çalıştırın `programs/clickhouse-client/clickhouse-client`.
+
+Tüm clickhouse araçlarının (sunucu, istemci, vb.) sadece tek bir ikili için symlinks olduğunu unutmayın `clickhouse`. Bu ikili bulabilirsiniz `programs/clickhouse`. Tüm araçlar olarak da çağrılabilir `clickhouse tool` yerine `clickhouse-tool`.
+
+Alternatif olarak ClickHouse paketini yükleyebilirsiniz: Yandex deposundan kararlı sürüm veya kendiniz için paket oluşturabilirsiniz `./release` ClickHouse kaynakları kökünde. Ardından sunucuyu şu şekilde başlatın `sudo service clickhouse-server start` (veya sunucuyu durdurmak için durdurun). Günlükleri arayın `/etc/clickhouse-server/clickhouse-server.log`.
+
+ClickHouse sisteminizde zaten yüklü olduğunda, yeni bir `clickhouse` ikili ve mevcut ikili değiştirin:
+
+``` bash
+$ sudo service clickhouse-server stop
+$ sudo cp ./clickhouse /usr/bin/
+$ sudo service clickhouse-server start
+```
+
+Ayrıca sistem clickhouse-server durdurmak ve aynı yapılandırma ile ancak terminale günlüğü ile kendi çalıştırabilirsiniz:
+
+``` bash
+$ sudo service clickhouse-server stop
+$ sudo -u clickhouse /usr/bin/clickhouse server --config-file /etc/clickhouse-server/config.xml
+```
+
+Gdb ile örnek:
+
+``` bash
+$ sudo -u clickhouse gdb --args /usr/bin/clickhouse server --config-file /etc/clickhouse-server/config.xml
+```
+
+Sistem clickhouse-sunucu zaten çalışıyorsa ve bunu durdurmak istemiyorsanız, sizin port numaralarını değiştirebilirsiniz `config.xml` (veya bunları bir dosyada geçersiz kılma `config.d` dizin), uygun veri yolu sağlayın ve çalıştırın.
+
+`clickhouse` ikili neredeyse hiçbir bağımlılıkları vardır ve Linux dağıtımları geniş genelinde çalışır. Hızlı ve kirli bir sunucuda değişikliklerinizi test etmek için, sadece yapabilirsiniz `scp` taze inşa `clickhouse` sunucunuza ikili ve daha sonra yukarıdaki örneklerde olduğu gibi çalıştırın.
+
+## Test Ortamı {#testing-environment}
+
+Kararlı olarak yayınlamadan önce test ortamında dağıtın. Test ortamı, 1/39 bölümünü işleyen bir kümedir [Üye.Metrica](https://metrica.yandex.com/) veriler. Test ortamımızı Yandex ile paylaşıyoruz.Metrica takımı. ClickHouse mevcut verilerin üstünde kesinti olmadan yükseltilir. İlk önce verilerin gerçek zamanlı olarak gecikmeden başarıyla işlendiğine bakıyoruz, çoğaltma çalışmaya devam ediyor ve Yandex tarafından görülebilen herhangi bir sorun yok.Metrica takımı. İlk kontrol aşağıdaki şekilde yapılabilir:
+
+``` sql
+SELECT hostName() AS h, any(version()), any(uptime()), max(UTCEventTime), count() FROM remote('example01-01-{1..3}t', merge, hits) WHERE EventDate >= today() - 2 GROUP BY h ORDER BY h;
+```
+
+Bazı durumlarda yandex'teki arkadaş ekiplerimizin test ortamına da dağıtım yapıyoruz: Pazar, Bulut, vb. Ayrıca geliştirme amacıyla kullanılan bazı donanım sunucularımız var.
+
+## Yük Testi {#load-testing}
+
+Test ortamına dağıtıldıktan sonra, üretim kümesinden gelen sorgularla yük testini çalıştırıyoruz. Bu elle yapılır.
+
+Etkinleştirdiğinizden emin olun `query_log` üretim kümenizde.
+
+Bir gün veya daha fazla sorgu günlüğü toplayın:
+
+``` bash
+$ clickhouse-client --query="SELECT DISTINCT query FROM system.query_log WHERE event_date = today() AND query LIKE '%ym:%' AND query NOT LIKE '%system.query_log%' AND type = 2 AND is_initial_query" > queries.tsv
+```
+
+Bu şekilde karmaşık bir örnektir. `type = 2` başarıyla yürütülen sorguları süzer. `query LIKE '%ym:%'` yandex'ten ilgili sorguları seçmektir.Metrica. `is_initial_query` yalnızca istemci tarafından başlatılan sorguları seçmektir, Clickhouse'un kendisi tarafından değil (dağıtılmış sorgu işlemenin parçaları olarak).
+
+`scp` bu test kümenize günlük ve aşağıdaki gibi çalıştırın:
+
+``` bash
+$ clickhouse benchmark --concurrency 16 < queries.tsv
+```
+
+(muhtemelen de belirtmek istiyorum `--user`)
+
+Sonra bir gece ya da hafta sonu için bırakın ve dinlenin.
+
+Kontrol etmelisiniz `clickhouse-server` çökmez, bellek ayak izi sınırlıdır ve performans zamanla aşağılayıcı değildir.
+
+Kesin sorgu yürütme zamanlamaları kaydedilmez ve sorguların ve ortamın yüksek değişkenliği nedeniyle karşılaştırılmaz.
+
+## Yapı Testleri {#build-tests}
+
+Yapı testleri, yapının çeşitli alternatif konfigürasyonlarda ve bazı yabancı sistemlerde bozulmadığını kontrol etmeyi sağlar. Testler bulunur `ci` dizin. Docker, Vagrant ve bazen de `qemu-user-static` Docker'ın içinde. Bu testler geliştirme aşamasındadır ve test çalıştırmaları otomatik değildir.
+
+Motivasyon:
+
+Normalde tüm testleri ClickHouse yapısının tek bir varyantında serbest bırakırız ve çalıştırırız. Ancak, iyice test edilmeyen alternatif yapı varyantları vardır. Örnekler:
+
+- FreeBSD üzerine inşa;
+- sistem paketlerinden kütüphaneler ile Debian üzerine inşa;
+- kütüphanelerin paylaşılan bağlantısı ile oluşturun;
+- AArch64 platformunda oluşturun;
+- PowerPc platformunda oluşturun.
+
+Örneğin, sistem paketleri ile oluştur kötü bir uygulamadır, çünkü bir sistemin hangi paketlerin tam sürümüne sahip olacağını garanti edemeyiz. Ancak bu gerçekten Debian bakıcılarına ihtiyaç duyuyor. Bu nedenle en azından bu yapı varyantını desteklemeliyiz. Başka bir örnek: paylaşılan bağlantı ortak bir sorun kaynağıdır, ancak bazı Meraklılar için gereklidir.
+
+Tüm yapı varyantlarında tüm testleri çalıştıramasak da, en azından çeşitli yapı varyantlarının bozulmadığını kontrol etmek istiyoruz. Bu amaçla yapı testlerini kullanıyoruz.
+
+## Protokol uyumluluğu testi {#testing-for-protocol-compatibility}
+
+ClickHouse ağ protokolünü genişlettiğimizde, eski clickhouse istemcisinin yeni clickhouse sunucusu ile çalıştığını ve yeni clickhouse istemcisinin eski clickhouse sunucusu ile çalıştığını (sadece ilgili paketlerden ikili dosyaları çalıştırarak) manuel olarak test ediyoruz.
+
+## Derleyiciden yardım {#help-from-the-compiler}
+
+Ana ClickHouse kodu (bu `dbms` dizin) ile inşa edilmiştir `-Wall -Wextra -Werror` ve bazı ek etkin uyarılar ile. Bu seçenekler üçüncü taraf kitaplıkları için etkin olmasa da.
+
+Clang daha yararlı uyarılar vardır-Sen ile onları arayabilirsiniz `-Weverything` ve varsayılan oluşturmak için bir şey seçin.
+
+Üretim yapıları için gcc kullanılır (hala clang'dan biraz daha verimli kod üretir). Geliştirme için, clang genellikle kullanımı daha uygundur. Hata ayıklama modu ile kendi makinenizde inşa edebilirsiniz (dizüstü bilgisayarınızın pilinden tasarruf etmek için), ancak derleyicinin daha fazla uyarı üretebileceğini lütfen unutmayın `-O3` daha iyi kontrol akışı ve prosedürler arası analiz nedeniyle. Clang ile inşa ederken, `libc++` yerine kullanılır `libstdc++` ve hata ayıklama modu ile oluştururken, hata ayıklama sürümü `libc++` çalışma zamanında daha fazla hata yakalamak için izin verir kullanılır.
+
+## Dezenfektanlar {#sanitizers}
+
+**Adres dezenfektanı**.
+Biz başına taahhüt bazında ASan altında fonksiyonel ve entegrasyon testleri çalıştırın.
+
+**Valgrind (Memcheck)**.
+Bir gecede valgrind altında fonksiyonel testler yapıyoruz. Birden fazla saat sürer. Şu anda bilinen bir yanlış pozitif var `re2` kütüphane, bkz [bu makale](https://research.swtch.com/sparse).
+
+**Tanımsız davranış dezenfektanı.**
+Biz başına taahhüt bazında ASan altında fonksiyonel ve entegrasyon testleri çalıştırın.
+
+**İplik dezenfektanı**.
+Biz başına taahhüt bazında tsan altında fonksiyonel testler çalıştırın. Tsan altında hala taahhüt bazında entegrasyon testleri yapmıyoruz.
+
+**Bellek temizleyici**.
+Şu anda hala MSan kullanmıyoruz.
+
+**Hata ayıklama ayırıcısı.**
+Hata ayıklama sürümü `jemalloc` hata ayıklama oluşturmak için kullanılır.
+
+## Fuzzing {#fuzzing}
+
+Rastgele SQL sorguları oluşturmak ve sunucunun ölmediğini kontrol etmek için basit fuzz testi kullanıyoruz. Fuzz testi Adres dezenfektanı ile yapılır. İçinde bulabilirsiniz `00746_sql_fuzzy.pl`. Bu test sürekli olarak (gece ve daha uzun) çalıştırılmalıdır.
+
+Aralık 2018 itibariyle, hala kütüphane kodunun izole fuzz testini kullanmıyoruz.
+
+## Güvenlik Denetimi {#security-audit}
+
+Yandex Bulut departmanından insanlar, güvenlik açısından ClickHouse yeteneklerine bazı temel genel bakışlar yaparlar.
+
+## Statik Analizörler {#static-analyzers}
+
+Koş weuyoruz `PVS-Studio` taahhüt bazında. Değerlendir havedik `clang-tidy`, `Coverity`, `cppcheck`, `PVS-Studio`, `tscancode`. Sen kullanım talimatları bulacaksınız `tests/instructions/` dizin. Ayrıca okuyabilirsiniz [Rusça makale](https://habr.com/company/yandex/blog/342018/).
+
+Kullanıyorsanız `CLion` bir IDE olarak, bazı kaldıraç `clang-tidy` kutudan kontrol eder.
+
+## Sertleşme {#hardening}
+
+`FORTIFY_SOURCE` varsayılan olarak kullanılır. Neredeyse işe yaramaz, ancak nadir durumlarda hala mantıklı ve bunu devre dışı bırakmıyoruz.
+
+## Kod Stili {#code-style}
+
+Kod stili kuralları açıklanmıştır [burada](https://clickhouse.tech/docs/en/development/style/).
+
+Bazı ortak stil ihlallerini kontrol etmek için şunları kullanabilirsiniz `utils/check-style` komut.
+
+Kodunuzun uygun stilini zorlamak için şunları kullanabilirsiniz `clang-format`. Dosya `.clang-format` kaynak rootlarında yer almaktadır. Çoğunlukla gerçek kod stilimizle karşılık gelir. Ancak uygulanması tavsiye edilmez `clang-format` varolan dosyalara biçimlendirmeyi daha da kötüleştirdiği için. Kullanabilirsiniz `clang-format-diff` eğer clang kaynak deposunda bulabilirsiniz aracı.
+
+Alternatif olarak deneyebilirsiniz `uncrustify` kodunuzu yeniden biçimlendirmek için bir araç. Yapılandırma içinde `uncrustify.cfg` kaynaklarda kök. Daha az test edilmiştir `clang-format`.
+
+`CLion` kod stilimiz için ayarlanması gereken kendi kod biçimlendiricisine sahiptir.
+
+## Metrica B2B testleri {#metrica-b2b-tests}
+
+Her ClickHouse sürümü Yandex Metrica ve AppMetrica motorları ile test edilir. Clickhouse'un Test ve kararlı sürümleri Vm'lerde dağıtılır ve Giriş verilerinin sabit örneğini işleyen Metrica motorunun küçük bir kopyasıyla çalışır. Daha sonra Metrica motorunun iki örneğinin sonuçları birlikte karşılaştırılır.
+
+Bu testler ayrı ekip tarafından otomatikleştirilir. Yüksek sayıda hareketli parça nedeniyle, testler çoğu zaman tamamen ilgisiz nedenlerle başarısız olur, bu da anlaşılması çok zordur. Büyük olasılıkla bu testlerin bizim için negatif değeri var. Bununla birlikte, bu testlerin yüzlerce kişiden yaklaşık bir veya iki kez yararlı olduğu kanıtlanmıştır.
+
+## Test Kapsamı {#test-coverage}
+
+Temmuz 2018 itibariyle test kapsamını takip etmiyoruz.
+
+## Test Otomasyonu {#test-automation}
+
+Yandex dahili CI ve iş otomasyon sistemi ile testler yapıyoruz “Sandbox”.
+
+Yapı işleri ve testler, taahhüt bazında sanal alanda çalıştırılır. Ortaya çıkan paketler ve test sonuçları Github'da yayınlanır ve doğrudan bağlantılar tarafından indirilebilir. Eserler sonsuza dek saklanır. Eğer GitHub bir çekme isteği gönderdiğinizde, biz olarak etiketlemek “can be tested” ve bizim CI sistemi sizin için ClickHouse paketleri (yayın, hata ayıklama, Adres dezenfektanı ile, vb) inşa edecek.
+
+Travis CI, zaman ve hesaplama gücü sınırı nedeniyle kullanmıyoruz.
+Jenkins'i kullanmayız. Daha önce kullanıldı ve şimdi Jenkins kullanmadığımız için mutluyuz.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/development/tests/)
diff --git a/docs/tr/engines/database_engines/index.md b/docs/tr/engines/database_engines/index.md
new file mode 100644
index 0000000000..c0e0bea8ab
--- /dev/null
+++ b/docs/tr/engines/database_engines/index.md
@@ -0,0 +1,21 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "Veritaban\u0131 Motorlar\u0131"
+toc_priority: 27
+toc_title: "Giri\u015F"
+---
+
+# Veritabanı Motorları {#database-engines}
+
+Veritabanı motorları, tablolarla çalışmanıza izin verir.
+
+Varsayılan olarak, ClickHouse yapılandırılabilir sağlayan yerel veritabanı altyapısını kullanır [masa motorları](../../engines/table_engines/index.md) ve bir [SQL lehçesi](../../sql_reference/syntax.md).
+
+Aşağıdaki veritabanı altyapılarını da kullanabilirsiniz:
+
+- [MySQL](mysql.md)
+
+- [Tembel](lazy.md)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/database_engines/)
diff --git a/docs/tr/engines/database_engines/lazy.md b/docs/tr/engines/database_engines/lazy.md
new file mode 100644
index 0000000000..85436fdc16
--- /dev/null
+++ b/docs/tr/engines/database_engines/lazy.md
@@ -0,0 +1,18 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 31
+toc_title: Tembel
+---
+
+# Tembel {#lazy}
+
+Tabloları yalnızca RAM'de tutar `expiration_time_in_seconds` son erişimden saniyeler sonra. Sadece \* Log tabloları ile kullanılabilir.
+
+Erişimler arasında uzun bir zaman aralığı olan birçok küçük \* günlük tablosunu saklamak için optimize edilmiştir.
+
+## Veritabanı oluşturma {#creating-a-database}
+
+ CREATE DATABASE testlazy ENGINE = Lazy(expiration_time_in_seconds);
+
+[Orijinal makale](https://clickhouse.tech/docs/en/database_engines/lazy/)
diff --git a/docs/tr/engines/database_engines/mysql.md b/docs/tr/engines/database_engines/mysql.md
new file mode 100644
index 0000000000..974515ab65
--- /dev/null
+++ b/docs/tr/engines/database_engines/mysql.md
@@ -0,0 +1,135 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 30
+toc_title: MySQL
+---
+
+# MySQL {#mysql}
+
+Uzak bir MySQL sunucusunda veritabanlarına bağlanmak ve gerçekleştirmek için izin verir `INSERT` ve `SELECT` ClickHouse ve MySQL arasında veri alışverişi için sorgular.
+
+Bu `MySQL` veritabanı motoru sorguları MySQL sunucusuna çevirir, böylece aşağıdaki gibi işlemleri gerçekleştirebilirsiniz `SHOW TABLES` veya `SHOW CREATE TABLE`.
+
+Aşağıdaki sorguları gerçekleştiremiyor:
+
+- `RENAME`
+- `CREATE TABLE`
+- `ALTER`
+
+## Veritabanı oluşturma {#creating-a-database}
+
+``` sql
+CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
+ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')
+```
+
+**Motor Parametreleri**
+
+- `host:port` — MySQL server address.
+- `database` — Remote database name.
+- `user` — MySQL user.
+- `password` — User password.
+
+## Veri Türleri Desteği {#data_types-support}
+
+| MySQL | ClickHouse |
+|----------------------------------|--------------------------------------------------------------|
+| UNSIGNED TINYINT | [Uİnt8](../../sql_reference/data_types/int_uint.md) |
+| TINYINT | [Int8](../../sql_reference/data_types/int_uint.md) |
+| UNSIGNED SMALLINT | [Uınt16](../../sql_reference/data_types/int_uint.md) |
+| SMALLINT | [Int16](../../sql_reference/data_types/int_uint.md) |
+| UNSIGNED INT, UNSIGNED MEDIUMINT | [Uİnt32](../../sql_reference/data_types/int_uint.md) |
+| INT, MEDIUMINT | [Int32](../../sql_reference/data_types/int_uint.md) |
+| UNSIGNED BIGINT | [Uİnt64](../../sql_reference/data_types/int_uint.md) |
+| BIGINT | [Int64](../../sql_reference/data_types/int_uint.md) |
+| FLOAT | [Float32](../../sql_reference/data_types/float.md) |
+| DOUBLE | [Float64](../../sql_reference/data_types/float.md) |
+| DATE | [Tarihli](../../sql_reference/data_types/date.md) |
+| DATETIME, TIMESTAMP | [DateTime](../../sql_reference/data_types/datetime.md) |
+| BINARY | [FixedString](../../sql_reference/data_types/fixedstring.md) |
+
+Diğer tüm MySQL veri türleri dönüştürülür [Dize](../../sql_reference/data_types/string.md).
+
+[Nullable](../../sql_reference/data_types/nullable.md) desteklenir.
+
+## Kullanım Örnekleri {#examples-of-use}
+
+MySQL tablo:
+
+``` text
+mysql> USE test;
+Database changed
+
+mysql> CREATE TABLE `mysql_table` (
+ -> `int_id` INT NOT NULL AUTO_INCREMENT,
+ -> `float` FLOAT NOT NULL,
+ -> PRIMARY KEY (`int_id`));
+Query OK, 0 rows affected (0,09 sec)
+
+mysql> insert into mysql_table (`int_id`, `float`) VALUES (1,2);
+Query OK, 1 row affected (0,00 sec)
+
+mysql> select * from mysql_table;
++------+-----+
+| int_id | value |
++------+-----+
+| 1 | 2 |
++------+-----+
+1 row in set (0,00 sec)
+```
+
+Clickhouse'daki veritabanı, MySQL sunucusu ile veri alışverişi:
+
+``` sql
+CREATE DATABASE mysql_db ENGINE = MySQL('localhost:3306', 'test', 'my_user', 'user_password')
+```
+
+``` sql
+SHOW DATABASES
+```
+
+``` text
+┌─name─────┐
+│ default │
+│ mysql_db │
+│ system │
+└──────────┘
+```
+
+``` sql
+SHOW TABLES FROM mysql_db
+```
+
+``` text
+┌─name─────────┐
+│ mysql_table │
+└──────────────┘
+```
+
+``` sql
+SELECT * FROM mysql_db.mysql_table
+```
+
+``` text
+┌─int_id─┬─value─┐
+│ 1 │ 2 │
+└────────┴───────┘
+```
+
+``` sql
+INSERT INTO mysql_db.mysql_table VALUES (3,4)
+```
+
+``` sql
+SELECT * FROM mysql_db.mysql_table
+```
+
+``` text
+┌─int_id─┬─value─┐
+│ 1 │ 2 │
+│ 3 │ 4 │
+└────────┴───────┘
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/database_engines/mysql/)
diff --git a/docs/tr/engines/index.md b/docs/tr/engines/index.md
new file mode 100644
index 0000000000..48004afa1c
--- /dev/null
+++ b/docs/tr/engines/index.md
@@ -0,0 +1,8 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: Motorlar
+toc_priority: 25
+---
+
+
diff --git a/docs/tr/engines/table_engines/index.md b/docs/tr/engines/table_engines/index.md
new file mode 100644
index 0000000000..fad3823453
--- /dev/null
+++ b/docs/tr/engines/table_engines/index.md
@@ -0,0 +1,85 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "Masa Motorlar\u0131"
+toc_priority: 26
+toc_title: "Giri\u015F"
+---
+
+# Masa Motorları {#table_engines}
+
+Tablo motoru (tablo türü) belirler:
+
+- Verilerin nasıl ve nerede depolandığı, nereye yazılacağı ve nereden okunacağı.
+- Hangi sorgular desteklenir ve nasıl.
+- Eşzamanlı veri erişimi.
+- Varsa indeks uselerin kullanımı.
+- Çok iş parçacıklı istek yürütme mümkün olup olmadığı.
+- Veri çoğaltma parametreleri.
+
+## Motor Aileleri {#engine-families}
+
+### MergeTree {#mergetree}
+
+Yüksek yük görevleri için en evrensel ve fonksiyonel masa motorları. Bu motorlar tarafından paylaşılan özellik, sonraki arka plan veri işleme ile hızlı veri ekleme ' dir. `MergeTree` aile motorları destek veri çoğaltma (ile [Çoğaltıyordu\*](mergetree_family/replication.md) sürümleri), bölümleme ve diğer özellikler diğer motorlarda desteklenmez.
+
+Ailede motorlar:
+
+- [MergeTree](mergetree_family/mergetree.md)
+- [ReplacingMergeTree](mergetree_family/replacingmergetree.md)
+- [SummingMergeTree](mergetree_family/summingmergetree.md)
+- [AggregatingMergeTree](mergetree_family/aggregatingmergetree.md)
+- [CollapsingMergeTree](mergetree_family/collapsingmergetree.md)
+- [VersionedCollapsingMergeTree](mergetree_family/versionedcollapsingmergetree.md)
+- [Graphıtemergetree](mergetree_family/graphitemergetree.md)
+
+### Günlük {#log}
+
+Hafiflik [motorlar](log_family/index.md) minimum işlevsellik ile. Birçok küçük tabloyu (yaklaşık 1 milyon satıra kadar) hızlı bir şekilde yazmanız ve daha sonra bir bütün olarak okumanız gerektiğinde en etkili olanlardır.
+
+Ailede motorlar:
+
+- [TinyLog](log_family/tinylog.md)
+- [StripeLog](log_family/stripelog.md)
+- [Günlük](log_family/log.md)
+
+### Entegrasyon Motorları {#integration-engines}
+
+Diğer veri depolama ve işleme sistemleri ile iletişim kurmak için motorlar.
+
+Ailede motorlar:
+
+- [Kafka](integrations/kafka.md)
+- [MySQL](integrations/mysql.md)
+- [ODBC](integrations/odbc.md)
+- [JDBC](integrations/jdbc.md)
+- [HDFS](integrations/hdfs.md)
+
+### Özel Motorlar {#special-engines}
+
+Ailede motorlar:
+
+- [Dağılı](special/distributed.md)
+- [MaterializedView](special/materializedview.md)
+- [Sözlük](special/dictionary.md)
+- [Birleştirmek](special/merge.md)
+- [Dosya](special/file.md)
+- [Boş](special/null.md)
+- [Koymak](special/set.md)
+- [Katmak](special/join.md)
+- [URL](special/url.md)
+- [Görünüm](special/view.md)
+- [Bellek](special/memory.md)
+- [Arabellek](special/buffer.md)
+
+## Sanal Sütunlar {#table_engines-virtual-columns}
+
+Sanal sütun, motor kaynak kodunda tanımlanan ayrılmaz bir tablo altyapısı özniteliğidir.
+
+Sanal sütunları belirtmemelisiniz `CREATE TABLE` sorgula ve onları göremezsin `SHOW CREATE TABLE` ve `DESCRIBE TABLE` sorgu sonuçları. Sanal sütunlar da salt okunur, bu nedenle sanal sütunlara veri ekleyemezsiniz.
+
+Sanal bir sütundan veri seçmek için, adını `SELECT` sorgu. `SELECT *` sanal sütunlardan değerler döndürmez.
+
+Tablo sanal sütunlarından biriyle aynı ada sahip bir sütuna sahip bir tablo oluşturursanız, sanal sütuna erişilemez hale gelir. Bunu yapmayı önermiyoruz. Çakışmaları önlemek için, sanal sütun adları genellikle bir alt çizgi ile öneki.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/)
diff --git a/docs/tr/engines/table_engines/integrations/hdfs.md b/docs/tr/engines/table_engines/integrations/hdfs.md
new file mode 100644
index 0000000000..42e1e31b80
--- /dev/null
+++ b/docs/tr/engines/table_engines/integrations/hdfs.md
@@ -0,0 +1,123 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 36
+toc_title: HDFS
+---
+
+# HDFS {#table_engines-hdfs}
+
+Bu motor ile entegrasyon sağlar [Apache Hadoop](https://en.wikipedia.org/wiki/Apache_Hadoop) üzerinde veri Yönet allowingilmesine izin vererek ekosist dataem [HDFS](https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html)ClickHouse aracılığıyla. Bu motor benzer
+to the [Dosya](../special/file.md) ve [URL](../special/url.md) motorlar, ancak hadoop özgü özellikleri sağlar.
+
+## Kullanma {#usage}
+
+``` sql
+ENGINE = HDFS(URI, format)
+```
+
+Bu `URI` parametre, HDFS'DEKİ tüm dosya URI'SIDIR.
+Bu `format` parametre kullanılabilir dosya biçimlerinden birini belirtir. Gerçekleştirmek
+`SELECT` sorgular, biçim giriş için desteklenmeli ve gerçekleştirmek için
+`INSERT` queries – for output. The available formats are listed in the
+[Biçimliler](../../../interfaces/formats.md#formats) bölme.
+Yol kısmı `URI` globs içerebilir. Bu durumda tablo salt okunur olurdu.
+
+**Örnek:**
+
+**1.** Set up the `hdfs_engine_table` Tablo:
+
+``` sql
+CREATE TABLE hdfs_engine_table (name String, value UInt32) ENGINE=HDFS('hdfs://hdfs1:9000/other_storage', 'TSV')
+```
+
+**2.** Fil filel file:
+
+``` sql
+INSERT INTO hdfs_engine_table VALUES ('one', 1), ('two', 2), ('three', 3)
+```
+
+**3.** Verileri sorgula:
+
+``` sql
+SELECT * FROM hdfs_engine_table LIMIT 2
+```
+
+``` text
+┌─name─┬─value─┐
+│ one │ 1 │
+│ two │ 2 │
+└──────┴───────┘
+```
+
+## Uygulama Detayları {#implementation-details}
+
+- Okuma ve yazma paralel olabilir
+- Desteklenmiyor:
+ - `ALTER` ve `SELECT...SAMPLE` harekat.
+ - Dizinler.
+ - Çoğalma.
+
+**Yolda Globs**
+
+Birden çok yol bileşenleri globs olabilir. İşlenmek için dosya var olmalı ve tüm yol deseniyle eşleşmelidir. Sırasında dosyaların listelen ofmesini belirler `SELECT` (not at `CREATE` an).
+
+- `*` — Substitutes any number of any characters except `/` boş dize dahil.
+- `?` — Substitutes any single character.
+- `{some_string,another_string,yet_another_one}` — Substitutes any of strings `'some_string', 'another_string', 'yet_another_one'`.
+- `{N..M}` — Substitutes any number in range from N to M including both borders.
+
+İle yapılar `{}` benzer olan [uzak](../../../sql_reference/table_functions/remote.md) tablo işlevi.
+
+**Örnek**
+
+1. HDFS'DE aşağıdaki Urı'lerle TSV formatında birkaç dosyamız olduğunu varsayalım:
+
+- ‘hdfs://hdfs1:9000/some\_dir/some\_file\_1’
+- ‘hdfs://hdfs1:9000/some\_dir/some\_file\_2’
+- ‘hdfs://hdfs1:9000/some\_dir/some\_file\_3’
+- ‘hdfs://hdfs1:9000/another\_dir/some\_file\_1’
+- ‘hdfs://hdfs1:9000/another\_dir/some\_file\_2’
+- ‘hdfs://hdfs1:9000/another\_dir/some\_file\_3’
+
+1. Altı dosyadan oluşan bir tablo oluşturmanın birkaç yolu vardır:
+
+
+
+``` sql
+CREATE TABLE table_with_range (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_{1..3}', 'TSV')
+```
+
+Başka bir yol:
+
+``` sql
+CREATE TABLE table_with_question_mark (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/some_file_?', 'TSV')
+```
+
+Tablo, her iki dizindeki tüm dosyalardan oluşur (tüm dosyalar, sorguda açıklanan biçimi ve şemayı karşılamalıdır):
+
+``` sql
+CREATE TABLE table_with_asterisk (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/{some,another}_dir/*', 'TSV')
+```
+
+!!! warning "Uyarıcı"
+ Dosyaların listelenmesi, önde gelen sıfırlarla sayı aralıkları içeriyorsa, her basamak için parantez içeren yapıyı ayrı ayrı kullanın veya kullanın `?`.
+
+**Örnek**
+
+Adlı dosyaları içeren tablo oluşturma `file000`, `file001`, … , `file999`:
+
+``` sql
+CREARE TABLE big_table (name String, value UInt32) ENGINE = HDFS('hdfs://hdfs1:9000/big_dir/file{0..9}{0..9}{0..9}', 'CSV')
+```
+
+## Sanal Sütunlar {#virtual-columns}
+
+- `_path` — Path to the file.
+- `_file` — Name of the file.
+
+**Ayrıca Bakınız**
+
+- [Sanal sütunlar](../index.md#table_engines-virtual_columns)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/hdfs/)
diff --git a/docs/tr/engines/table_engines/integrations/index.md b/docs/tr/engines/table_engines/integrations/index.md
new file mode 100644
index 0000000000..608fc900e6
--- /dev/null
+++ b/docs/tr/engines/table_engines/integrations/index.md
@@ -0,0 +1,8 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: Entegrasyonlar
+toc_priority: 30
+---
+
+
diff --git a/docs/tr/engines/table_engines/integrations/jdbc.md b/docs/tr/engines/table_engines/integrations/jdbc.md
new file mode 100644
index 0000000000..08196116cf
--- /dev/null
+++ b/docs/tr/engines/table_engines/integrations/jdbc.md
@@ -0,0 +1,90 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 34
+toc_title: JDBC
+---
+
+# JDBC {#table-engine-jdbc}
+
+ClickHouse üzerinden harici veritabanlarına bağlanmak için izin verir [JDBC](https://en.wikipedia.org/wiki/Java_Database_Connectivity).
+
+JDBC bağlantısını uygulamak için ClickHouse ayrı programı kullanır [clickhouse-JDBC-köprü](https://github.com/alex-krash/clickhouse-jdbc-bridge) bu bir daemon olarak çalışmalıdır.
+
+Bu motor destekler [Nullable](../../../sql_reference/data_types/nullable.md) veri türü.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name
+(
+ columns list...
+)
+ENGINE = JDBC(dbms_uri, external_database, external_table)
+```
+
+**Motor Parametreleri**
+
+- `dbms_uri` — URI of an external DBMS.
+
+ Biçimli: `jdbc:://:/?user=&password=`.
+ MySQL örneği: `jdbc:mysql://localhost:3306/?user=root&password=root`.
+
+- `external_database` — Database in an external DBMS.
+
+- `external_table` — Name of the table in `external_database`.
+
+## Kullanım Örneği {#usage-example}
+
+Doğrudan konsol istemcisine bağlanarak MySQL sunucusunda bir tablo oluşturma:
+
+``` text
+mysql> CREATE TABLE `test`.`test` (
+ -> `int_id` INT NOT NULL AUTO_INCREMENT,
+ -> `int_nullable` INT NULL DEFAULT NULL,
+ -> `float` FLOAT NOT NULL,
+ -> `float_nullable` FLOAT NULL DEFAULT NULL,
+ -> PRIMARY KEY (`int_id`));
+Query OK, 0 rows affected (0,09 sec)
+
+mysql> insert into test (`int_id`, `float`) VALUES (1,2);
+Query OK, 1 row affected (0,00 sec)
+
+mysql> select * from test;
++------+----------+-----+----------+
+| int_id | int_nullable | float | float_nullable |
++------+----------+-----+----------+
+| 1 | NULL | 2 | NULL |
++------+----------+-----+----------+
+1 row in set (0,00 sec)
+```
+
+ClickHouse Server'da bir tablo oluşturma ve ondan veri seçme:
+
+``` sql
+CREATE TABLE jdbc_table
+(
+ `int_id` Int32,
+ `int_nullable` Nullable(Int32),
+ `float` Float32,
+ `float_nullable` Nullable(Float32)
+)
+ENGINE JDBC('jdbc:mysql://localhost:3306/?user=root&password=root', 'test', 'test')
+```
+
+``` sql
+SELECT *
+FROM jdbc_table
+```
+
+``` text
+┌─int_id─┬─int_nullable─┬─float─┬─float_nullable─┐
+│ 1 │ ᴺᵁᴸᴸ │ 2 │ ᴺᵁᴸᴸ │
+└────────┴──────────────┴───────┴────────────────┘
+```
+
+## Ayrıca Bakınız {#see-also}
+
+- [JDBC tablo işlevi](../../../sql_reference/table_functions/jdbc.md).
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/jdbc/)
diff --git a/docs/tr/engines/table_engines/integrations/kafka.md b/docs/tr/engines/table_engines/integrations/kafka.md
new file mode 100644
index 0000000000..baf0adcd08
--- /dev/null
+++ b/docs/tr/engines/table_engines/integrations/kafka.md
@@ -0,0 +1,176 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 32
+toc_title: Kafka
+---
+
+# Kafka {#kafka}
+
+Bu motor ile çalışır [Apache Kafka](http://kafka.apache.org/).
+
+Kafka sağlar:
+
+- Veri akışlarını yayınlayın veya abone olun.
+- Hataya dayanıklı depolama düzenlemek.
+- Kullanılabilir hale geldikçe akışları işleyin.
+
+## Tablo oluşturma {#table_engine-kafka-creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE = Kafka()
+SETTINGS
+ kafka_broker_list = 'host:port',
+ kafka_topic_list = 'topic1,topic2,...',
+ kafka_group_name = 'group_name',
+ kafka_format = 'data_format'[,]
+ [kafka_row_delimiter = 'delimiter_symbol',]
+ [kafka_schema = '',]
+ [kafka_num_consumers = N,]
+ [kafka_skip_broken_messages = N]
+```
+
+Gerekli parametreler:
+
+- `kafka_broker_list` – A comma-separated list of brokers (for example, `localhost:9092`).
+- `kafka_topic_list` – A list of Kafka topics.
+- `kafka_group_name` – A group of Kafka consumers. Reading margins are tracked for each group separately. If you don't want messages to be duplicated in the cluster, use the same group name everywhere.
+- `kafka_format` – Message format. Uses the same notation as the SQL `FORMAT` fonksiyon gibi `JSONEachRow`. Daha fazla bilgi için, bkz: [Biçimliler](../../../interfaces/formats.md) bölme.
+
+İsteğe bağlı parametreler:
+
+- `kafka_row_delimiter` – Delimiter character, which ends the message.
+- `kafka_schema` – Parameter that must be used if the format requires a schema definition. For example, [Cap'n Proto](https://capnproto.org/) şema dosyasının yolunu ve kök adını gerektirir `schema.capnp:Message` nesne.
+- `kafka_num_consumers` – The number of consumers per table. Default: `1`. Bir tüketicinin verimi yetersizse daha fazla tüketici belirtin. Bölüm başına yalnızca bir tüketici atanabileceğinden, toplam tüketici sayısı konudaki bölüm sayısını geçmemelidir.
+- `kafka_skip_broken_messages` – Kafka message parser tolerance to schema-incompatible messages per block. Default: `0`. Eğer `kafka_skip_broken_messages = N` sonra motor atlar *N* Ayrıştırılamayan Kafka iletileri (bir ileti bir veri satırına eşittir).
+
+Örnekler:
+
+``` sql
+ CREATE TABLE queue (
+ timestamp UInt64,
+ level String,
+ message String
+ ) ENGINE = Kafka('localhost:9092', 'topic', 'group1', 'JSONEachRow');
+
+ SELECT * FROM queue LIMIT 5;
+
+ CREATE TABLE queue2 (
+ timestamp UInt64,
+ level String,
+ message String
+ ) ENGINE = Kafka SETTINGS kafka_broker_list = 'localhost:9092',
+ kafka_topic_list = 'topic',
+ kafka_group_name = 'group1',
+ kafka_format = 'JSONEachRow',
+ kafka_num_consumers = 4;
+
+ CREATE TABLE queue2 (
+ timestamp UInt64,
+ level String,
+ message String
+ ) ENGINE = Kafka('localhost:9092', 'topic', 'group1')
+ SETTINGS kafka_format = 'JSONEachRow',
+ kafka_num_consumers = 4;
+```
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın. Mümkünse, eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+Kafka(kafka_broker_list, kafka_topic_list, kafka_group_name, kafka_format
+ [, kafka_row_delimiter, kafka_schema, kafka_num_consumers, kafka_skip_broken_messages])
+```
+
+
+
+## Açıklama {#description}
+
+Teslim edilen mesajlar otomatik olarak izlenir, bu nedenle bir gruptaki her mesaj yalnızca bir kez sayılır. Verileri iki kez almak istiyorsanız, tablonun başka bir grup adıyla bir kopyasını oluşturun.
+
+Gruplar esnek ve kümede senkronize edilir. Örneğin, bir kümede 10 konu ve bir tablonun 5 kopyası varsa, her kopya 2 konu alır. Kopya sayısı değişirse, konular kopyalar arasında otomatik olarak yeniden dağıtılır. Bu konuda daha fazla bilgi edinin http://kafka.apache.org/intro.
+
+`SELECT` mesajları okumak için özellikle yararlı değildir (hata ayıklama hariç), çünkü her mesaj yalnızca bir kez okunabilir. Hayata görünümler kullanarak gerçek zamanlı iş parçacıkları oluşturmak daha pratiktir. Bunu yapmak için :
+
+1. Bir Kafka tüketici oluşturmak için motoru kullanın ve bir veri akışı düşünün.
+2. İstenen yapıya sahip bir tablo oluşturun.
+3. Verileri motordan dönüştüren ve daha önce oluşturulmuş bir tabloya koyan materyalleştirilmiş bir görünüm oluşturun.
+
+Ne zaman `MATERIALIZED VIEW` motora katılır, arka planda veri toplamaya başlar. Bu, kafka'dan sürekli olarak mesaj almanızı ve bunları kullanarak gerekli biçime dönüştürmenizi sağlar `SELECT`.
+Bir kafka tablosu istediğiniz kadar materialized görüşe sahip olabilir, kafka tablosundan doğrudan veri okumazlar, ancak yeni kayıtlar (bloklar halinde) alırlar, bu şekilde farklı ayrıntı seviyesine sahip birkaç tabloya yazabilirsiniz (gruplama-toplama ve olmadan).
+
+Örnek:
+
+``` sql
+ CREATE TABLE queue (
+ timestamp UInt64,
+ level String,
+ message String
+ ) ENGINE = Kafka('localhost:9092', 'topic', 'group1', 'JSONEachRow');
+
+ CREATE TABLE daily (
+ day Date,
+ level String,
+ total UInt64
+ ) ENGINE = SummingMergeTree(day, (day, level), 8192);
+
+ CREATE MATERIALIZED VIEW consumer TO daily
+ AS SELECT toDate(toDateTime(timestamp)) AS day, level, count() as total
+ FROM queue GROUP BY day, level;
+
+ SELECT level, sum(total) FROM daily GROUP BY level;
+```
+
+Performansı artırmak için, alınan iletiler bloklar halinde gruplandırılır [max\_ınsert\_block\_size](../../../operations/server_configuration_parameters/settings.md#settings-max_insert_block_size). İçinde blok oluş ifma ifdıysa [stream\_flush\_interval\_ms](../../../operations/server_configuration_parameters/settings.md) milisaniye, veri blok bütünlüğü ne olursa olsun tabloya temizlendi.
+
+Konu verilerini almayı durdurmak veya dönüşüm mantığını değiştirmek için, hayata geçirilmiş görünümü ayırın:
+
+``` sql
+ DETACH TABLE consumer;
+ ATTACH MATERIALIZED VIEW consumer;
+```
+
+Kullanarak hedef tabloyu değiştirmek istiyorsanız `ALTER` hedef tablo ile görünümdeki veriler arasındaki tutarsızlıkları önlemek için malzeme görünümünü devre dışı bırakmanızı öneririz.
+
+## Yapılandırma {#configuration}
+
+GraphiteMergeTree benzer şekilde, Kafka motoru ClickHouse yapılandırma dosyasını kullanarak genişletilmiş yapılandırmayı destekler. Kullanabileceğiniz iki yapılandırma anahtarı vardır: global (`kafka`) ve konu düzeyinde (`kafka_*`). Genel yapılandırma önce uygulanır ve sonra konu düzeyinde yapılandırma uygulanır (varsa).
+
+``` xml
+
+
+ cgrp
+ smallest
+
+
+
+
+ 250
+ 100000
+
+```
+
+Olası yapılandırma seçeneklerinin listesi için bkz. [librdkafka yapılandırma referansı](https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md). Alt çizgiyi kullan (`_`) ClickHouse yapılandırmasında bir nokta yerine. Mesela, `check.crcs=true` olacak `true`.
+
+## Sanal Sütunlar {#virtual-columns}
+
+- `_topic` — Kafka topic.
+- `_key` — Key of the message.
+- `_offset` — Offset of the message.
+- `_timestamp` — Timestamp of the message.
+- `_partition` — Partition of Kafka topic.
+
+**Ayrıca Bakınız**
+
+- [Sanal sütunlar](../index.md#table_engines-virtual_columns)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/kafka/)
diff --git a/docs/tr/engines/table_engines/integrations/mysql.md b/docs/tr/engines/table_engines/integrations/mysql.md
new file mode 100644
index 0000000000..f6c811465e
--- /dev/null
+++ b/docs/tr/engines/table_engines/integrations/mysql.md
@@ -0,0 +1,105 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 33
+toc_title: MySQL
+---
+
+# Mysql {#mysql}
+
+MySQL motoru gerçekleştirmek için izin verir `SELECT` uzak bir MySQL sunucusunda depolanan veriler üzerinde sorgular.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
+ ...
+) ENGINE = MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause']);
+```
+
+Ayrıntılı bir açıklamasını görmek [CREATE TABLE](../../../sql_reference/statements/create.md#create-table-query) sorgu.
+
+Tablo yapısı orijinal MySQL tablo yapısından farklı olabilir:
+
+- Sütun adları orijinal MySQL tablosundaki ile aynı olmalıdır, ancak bu sütunların sadece bazılarını ve herhangi bir sırada kullanabilirsiniz.
+- Sütun türleri orijinal MySQL tablosundakilerden farklı olabilir. ClickHouse çalışır [döküm](../../../sql_reference/functions/type_conversion_functions.md#type_conversion_function-cast) ClickHouse veri türleri için değerler.
+
+**Motor Parametreleri**
+
+- `host:port` — MySQL server address.
+
+- `database` — Remote database name.
+
+- `table` — Remote table name.
+
+- `user` — MySQL user.
+
+- `password` — User password.
+
+- `replace_query` — Flag that converts `INSERT INTO` için sorgular `REPLACE INTO`. Eğer `replace_query=1`, sorgu değiştirilir.
+
+- `on_duplicate_clause` — The `ON DUPLICATE KEY on_duplicate_clause` eklenen ifade `INSERT` sorgu.
+
+ Örnek: `INSERT INTO t (c1,c2) VALUES ('a', 2) ON DUPLICATE KEY UPDATE c2 = c2 + 1`, nere `on_duplicate_clause` oluyor `UPDATE c2 = c2 + 1`. Görmek [MySQL dökü documentationmanları](https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html) bulmak için hangi `on_duplicate_clause` ile kullanabilirsiniz `ON DUPLICATE KEY` yan.
+
+ Belirtmek `on_duplicate_clause` sen geçmek gerekir `0` to the `replace_query` parametre. Aynı anda geçerseniz `replace_query = 1` ve `on_duplicate_clause`, ClickHouse bir özel durum oluşturur.
+
+Basit `WHERE` gibi maddeler `=, !=, >, >=, <, <=` MySQL sunucusunda yürütülür.
+
+Geri kalan şartlar ve `LIMIT` örnekleme kısıtlaması, yalnızca MySQL sorgusu bittikten sonra Clickhouse'da yürütülür.
+
+## Kullanım Örneği {#usage-example}
+
+MySQL tablo:
+
+``` text
+mysql> CREATE TABLE `test`.`test` (
+ -> `int_id` INT NOT NULL AUTO_INCREMENT,
+ -> `int_nullable` INT NULL DEFAULT NULL,
+ -> `float` FLOAT NOT NULL,
+ -> `float_nullable` FLOAT NULL DEFAULT NULL,
+ -> PRIMARY KEY (`int_id`));
+Query OK, 0 rows affected (0,09 sec)
+
+mysql> insert into test (`int_id`, `float`) VALUES (1,2);
+Query OK, 1 row affected (0,00 sec)
+
+mysql> select * from test;
++------+----------+-----+----------+
+| int_id | int_nullable | float | float_nullable |
++------+----------+-----+----------+
+| 1 | NULL | 2 | NULL |
++------+----------+-----+----------+
+1 row in set (0,00 sec)
+```
+
+Clickhouse'daki tablo, yukarıda oluşturulan MySQL tablosundan veri alma:
+
+``` sql
+CREATE TABLE mysql_table
+(
+ `float_nullable` Nullable(Float32),
+ `int_id` Int32
+)
+ENGINE = MySQL('localhost:3306', 'test', 'test', 'bayonet', '123')
+```
+
+``` sql
+SELECT * FROM mysql_table
+```
+
+``` text
+┌─float_nullable─┬─int_id─┐
+│ ᴺᵁᴸᴸ │ 1 │
+└────────────────┴────────┘
+```
+
+## Ayrıca Bakınız {#see-also}
+
+- [Bu ‘mysql’ tablo fonksiyonu](../../../sql_reference/table_functions/mysql.md)
+- [Harici sözlük kaynağı olarak MySQL kullanma](../../../sql_reference/dictionaries/external_dictionaries/external_dicts_dict_sources.md#dicts-external_dicts_dict_sources-mysql)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/mysql/)
diff --git a/docs/tr/engines/table_engines/integrations/odbc.md b/docs/tr/engines/table_engines/integrations/odbc.md
new file mode 100644
index 0000000000..86ded26587
--- /dev/null
+++ b/docs/tr/engines/table_engines/integrations/odbc.md
@@ -0,0 +1,132 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 35
+toc_title: ODBC
+---
+
+# ODBC {#table-engine-odbc}
+
+ClickHouse üzerinden harici veritabanlarına bağlanmak için izin verir [ODBC](https://en.wikipedia.org/wiki/Open_Database_Connectivity).
+
+ODBC bağlantılarını güvenli bir şekilde uygulamak için ClickHouse ayrı bir program kullanır `clickhouse-odbc-bridge`. ODBC sürücüsü doğrudan yüklenmişse `clickhouse-server`, sürücü sorunları ClickHouse sunucu çökmesine neden olabilir. ClickHouse otomatik olarak başlar `clickhouse-odbc-bridge` gerekli olduğunda. ODBC Köprüsü programı aynı paketten yüklenir `clickhouse-server`.
+
+Bu motor destekler [Nullable](../../../sql_reference/data_types/nullable.md) veri türü.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1],
+ name2 [type2],
+ ...
+)
+ENGINE = ODBC(connection_settings, external_database, external_table)
+```
+
+Ayrıntılı bir açıklamasını görmek [CREATE TABLE](../../../sql_reference/statements/create.md#create-table-query) sorgu.
+
+Tablo yapısı kaynak tablo yapısından farklı olabilir:
+
+- Sütun adları kaynak tablodaki ile aynı olmalıdır, ancak yalnızca bu sütunlardan bazılarını ve herhangi bir sırada kullanabilirsiniz.
+- Sütun türleri kaynak tablodakilerden farklı olabilir. ClickHouse çalışır [döküm](../../../sql_reference/functions/type_conversion_functions.md#type_conversion_function-cast) ClickHouse veri türleri için değerler.
+
+**Motor Parametreleri**
+
+- `connection_settings` — Name of the section with connection settings in the `odbc.ini` Dosya.
+- `external_database` — Name of a database in an external DBMS.
+- `external_table` — Name of a table in the `external_database`.
+
+## Kullanım Örneği {#usage-example}
+
+**ODBC üzerinden yerel MySQL kurulumundan veri alma**
+
+Bu örnek Ubuntu Linux 18.04 ve MySQL server 5.7 için kontrol edilir.
+
+UnixODBC ve MySQL Connector yüklü olduğundan emin olun.
+
+Varsayılan olarak (paketlerden yüklüyse), ClickHouse kullanıcı olarak başlar `clickhouse`. Bu nedenle, bu kullanıcıyı MySQL sunucusunda oluşturmanız ve yapılandırmanız gerekir.
+
+``` bash
+$ sudo mysql
+```
+
+``` sql
+mysql> CREATE USER 'clickhouse'@'localhost' IDENTIFIED BY 'clickhouse';
+mysql> GRANT ALL PRIVILEGES ON *.* TO 'clickhouse'@'clickhouse' WITH GRANT OPTION;
+```
+
+Sonra bağlantıyı yapılandırın `/etc/odbc.ini`.
+
+``` bash
+$ cat /etc/odbc.ini
+[mysqlconn]
+DRIVER = /usr/local/lib/libmyodbc5w.so
+SERVER = 127.0.0.1
+PORT = 3306
+DATABASE = test
+USERNAME = clickhouse
+PASSWORD = clickhouse
+```
+
+Kullanarak bağlantıyı kontrol edebilirsiniz `isql` unixodbc yüklemesinden yardımcı program.
+
+``` bash
+$ isql -v mysqlconn
++-------------------------+
+| Connected! |
+| |
+...
+```
+
+MySQL tablo:
+
+``` text
+mysql> CREATE TABLE `test`.`test` (
+ -> `int_id` INT NOT NULL AUTO_INCREMENT,
+ -> `int_nullable` INT NULL DEFAULT NULL,
+ -> `float` FLOAT NOT NULL,
+ -> `float_nullable` FLOAT NULL DEFAULT NULL,
+ -> PRIMARY KEY (`int_id`));
+Query OK, 0 rows affected (0,09 sec)
+
+mysql> insert into test (`int_id`, `float`) VALUES (1,2);
+Query OK, 1 row affected (0,00 sec)
+
+mysql> select * from test;
++------+----------+-----+----------+
+| int_id | int_nullable | float | float_nullable |
++------+----------+-----+----------+
+| 1 | NULL | 2 | NULL |
++------+----------+-----+----------+
+1 row in set (0,00 sec)
+```
+
+Clickhouse'daki tablo, MySQL tablosundan veri alma:
+
+``` sql
+CREATE TABLE odbc_t
+(
+ `int_id` Int32,
+ `float_nullable` Nullable(Float32)
+)
+ENGINE = ODBC('DSN=mysqlconn', 'test', 'test')
+```
+
+``` sql
+SELECT * FROM odbc_t
+```
+
+``` text
+┌─int_id─┬─float_nullable─┐
+│ 1 │ ᴺᵁᴸᴸ │
+└────────┴────────────────┘
+```
+
+## Ayrıca Bakınız {#see-also}
+
+- [ODBC harici sözlükler](../../../sql_reference/dictionaries/external_dictionaries/external_dicts_dict_sources.md#dicts-external_dicts_dict_sources-odbc)
+- [ODBC tablo işlevi](../../../sql_reference/table_functions/odbc.md)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/odbc/)
diff --git a/docs/tr/engines/table_engines/log_family/index.md b/docs/tr/engines/table_engines/log_family/index.md
new file mode 100644
index 0000000000..062087a587
--- /dev/null
+++ b/docs/tr/engines/table_engines/log_family/index.md
@@ -0,0 +1,8 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "G\xFCnl\xFCk Aile"
+toc_priority: 29
+---
+
+
diff --git a/docs/tr/engines/table_engines/log_family/log.md b/docs/tr/engines/table_engines/log_family/log.md
new file mode 100644
index 0000000000..ca1f8c4c1f
--- /dev/null
+++ b/docs/tr/engines/table_engines/log_family/log.md
@@ -0,0 +1,16 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 33
+toc_title: "G\xFCnl\xFCk"
+---
+
+# Günlük {#log}
+
+Motor günlük motorları ailesine aittir. Günlük motorlarının ortak özelliklerini ve farklılıklarını görün [Log Engine Ailesi](log_family.md) makale.
+
+Log differsar differsit fromma [TinyLog](tinylog.md) bu küçük bir dosyada “marks” sütun dosyaları ile bulunur. Bu işaretler her veri bloğuna yazılır ve belirtilen satır sayısını atlamak için dosyayı okumaya nereden başlayacağınızı gösteren uzaklıklar içerir. Bu, tablo verilerini birden çok iş parçacığında okumayı mümkün kılar.
+Eşzamanlı veri erişimi için, okuma işlemleri aynı anda gerçekleştirilebilirken, yazma işlemleri okur ve birbirlerini engeller.
+Günlük altyapısı dizinleri desteklemez. Benzer şekilde, bir tabloya yazma başarısız olursa, tablo bozulur ve Okuma bir hata döndürür. Günlük altyapısı, geçici veriler, bir kez yazma tabloları ve sınama veya gösteri amaçları için uygundur.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/log/)
diff --git a/docs/tr/engines/table_engines/log_family/log_family.md b/docs/tr/engines/table_engines/log_family/log_family.md
new file mode 100644
index 0000000000..2a954c60de
--- /dev/null
+++ b/docs/tr/engines/table_engines/log_family/log_family.md
@@ -0,0 +1,46 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 31
+toc_title: "Giri\u015F"
+---
+
+# Log Engine Ailesi {#log-engine-family}
+
+Bu motorlar, birçok küçük tabloyu (yaklaşık 1 milyon satıra kadar) hızlı bir şekilde yazmanız ve daha sonra bir bütün olarak okumanız gerektiğinde senaryolar için geliştirilmiştir.
+
+Ailenin motorları:
+
+- [StripeLog](stripelog.md)
+- [Günlük](log.md)
+- [TinyLog](tinylog.md)
+
+## Ortak Özellikler {#common-properties}
+
+Motorlar:
+
+- Verileri bir diskte saklayın.
+
+- Yazarken dosyanın sonuna veri ekleyin.
+
+- Eşzamanlı veri erişimi için destek kilitleri.
+
+ Sırasında `INSERT` sorgular, tablo kilitlenir ve veri okumak ve yazmak için diğer sorgular hem tablonun kilidini açmak için bekler. Veri yazma sorguları varsa, herhangi bir sayıda veri okuma sorguları aynı anda gerçekleştirilebilir.
+
+- Destek yok [mutasyon](../../../sql_reference/statements/alter.md#alter-mutations) harekat.
+
+- Dizinleri desteklemez.
+
+ Bu demektir ki `SELECT` veri aralıkları için sorgular verimli değildir.
+
+- Atomik veri yazmayın.
+
+ Bir şey yazma işlemini bozarsa, örneğin anormal sunucu kapatma gibi bozuk verilerle bir tablo alabilirsiniz.
+
+## Farklılıklar {#differences}
+
+Bu `TinyLog` motor, ailenin en basitidir ve en fakir işlevselliği ve en düşük verimliliği sağlar. Bu `TinyLog` motor, birkaç iş parçacığı tarafından paralel veri okumayı desteklemez. Paralel okumayı destekleyen ailedeki diğer motorlardan daha yavaş veri okur ve neredeyse birçok tanımlayıcı kullanır `Log` motor, her sütunu ayrı bir dosyada sakladığı için. Basit düşük yük senaryolarında kullanın.
+
+Bu `Log` ve `StripeLog` motorlar paralel veri okumayı destekler. Veri okurken, ClickHouse birden çok iş parçacığı kullanır. Her iş parçacığı ayrı bir veri bloğu işler. Bu `Log` engine, tablonun her sütunu için ayrı bir dosya kullanır. `StripeLog` tüm verileri tek bir dosyada saklar. Sonuç olarak, `StripeLog` motor işletim sisteminde daha az tanımlayıcı kullanır, ancak `Log` motor veri okurken daha yüksek verimlilik sağlar.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/log_family/)
diff --git a/docs/tr/engines/table_engines/log_family/stripelog.md b/docs/tr/engines/table_engines/log_family/stripelog.md
new file mode 100644
index 0000000000..1ff251c3ee
--- /dev/null
+++ b/docs/tr/engines/table_engines/log_family/stripelog.md
@@ -0,0 +1,95 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 32
+toc_title: StripeLog
+---
+
+# Stripelog {#stripelog}
+
+Bu motor günlük motor ailesine aittir. Günlük motorlarının ortak özelliklerini ve farklılıklarını görün [Log Engine Ailesi](log_family.md) makale.
+
+Az miktarda veri içeren (1 milyondan az satır) birçok tablo yazmanız gerektiğinde, bu altyapıyı senaryolarda kullanın.
+
+## Tablo oluşturma {#table_engines-stripelog-creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ column1_name [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ column2_name [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE = StripeLog
+```
+
+Ayrıntılı açıklamasına bakın [CREATE TABLE](../../../sql_reference/statements/create.md#create-table-query) sorgu.
+
+## Veri yazma {#table_engines-stripelog-writing-the-data}
+
+Bu `StripeLog` motor tüm sütunları tek bir dosyada saklar. Her biri için `INSERT` sorgu, ClickHouse veri bloğunu bir tablo dosyasının sonuna ekler, sütunları tek tek yazar.
+
+Her tablo için ClickHouse dosyaları yazar:
+
+- `data.bin` — Data file.
+- `index.mrk` — File with marks. Marks contain offsets for each column of each data block inserted.
+
+Bu `StripeLog` motor desteklemiyor `ALTER UPDATE` ve `ALTER DELETE` harekat.
+
+## Verileri okuma {#table_engines-stripelog-reading-the-data}
+
+İşaretli dosya, Clickhouse'un verilerin okunmasını paralelleştirmesine izin verir. Bu demektir `SELECT` sorgu satırları öngörülemeyen bir sırayla döndürür. Kullan... `ORDER BY` satırları sıralamak için yan tümce.
+
+## Kullanım Örneği {#table_engines-stripelog-example-of-use}
+
+Tablo oluşturma:
+
+``` sql
+CREATE TABLE stripe_log_table
+(
+ timestamp DateTime,
+ message_type String,
+ message String
+)
+ENGINE = StripeLog
+```
+
+Veri ekleme:
+
+``` sql
+INSERT INTO stripe_log_table VALUES (now(),'REGULAR','The first regular message')
+INSERT INTO stripe_log_table VALUES (now(),'REGULAR','The second regular message'),(now(),'WARNING','The first warning message')
+```
+
+İki kullandık `INSERT` içinde iki veri bloğu oluşturmak için sorgular `data.bin` Dosya.
+
+ClickHouse veri seçerken birden çok iş parçacığı kullanır. Her iş parçacığı ayrı bir veri bloğu okur ve sonuç olarak satırları bağımsız olarak döndürür. Sonuç olarak, çıktıdaki satır bloklarının sırası, çoğu durumda girişteki aynı blokların sırasına uymuyor. Mesela:
+
+``` sql
+SELECT * FROM stripe_log_table
+```
+
+``` text
+┌───────────timestamp─┬─message_type─┬─message────────────────────┐
+│ 2019-01-18 14:27:32 │ REGULAR │ The second regular message │
+│ 2019-01-18 14:34:53 │ WARNING │ The first warning message │
+└─────────────────────┴──────────────┴────────────────────────────┘
+┌───────────timestamp─┬─message_type─┬─message───────────────────┐
+│ 2019-01-18 14:23:43 │ REGULAR │ The first regular message │
+└─────────────────────┴──────────────┴───────────────────────────┘
+```
+
+Sonuçları sıralama (varsayılan olarak artan sipariş):
+
+``` sql
+SELECT * FROM stripe_log_table ORDER BY timestamp
+```
+
+``` text
+┌───────────timestamp─┬─message_type─┬─message────────────────────┐
+│ 2019-01-18 14:23:43 │ REGULAR │ The first regular message │
+│ 2019-01-18 14:27:32 │ REGULAR │ The second regular message │
+│ 2019-01-18 14:34:53 │ WARNING │ The first warning message │
+└─────────────────────┴──────────────┴────────────────────────────┘
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/stripelog/)
diff --git a/docs/tr/engines/table_engines/log_family/tinylog.md b/docs/tr/engines/table_engines/log_family/tinylog.md
new file mode 100644
index 0000000000..e4eccf220b
--- /dev/null
+++ b/docs/tr/engines/table_engines/log_family/tinylog.md
@@ -0,0 +1,16 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 34
+toc_title: TinyLog
+---
+
+# TinyLog {#tinylog}
+
+Motor log engine ailesine aittir. Görmek [Log Engine Ailesi](log_family.md) günlük motorlarının ortak özellikleri ve farklılıkları için.
+
+Bu tablo motoru genellikle write-once yöntemi ile kullanılır: verileri bir kez yazın, ardından gerektiği kadar okuyun. Örneğin, kullanabilirsiniz `TinyLog`- küçük gruplar halinde işlenen Ara veriler için tablolar yazın. Çok sayıda küçük tabloda veri depolamanın verimsiz olduğunu unutmayın.
+
+Sorgular tek bir akışta yürütülür. Başka bir deyişle, bu motor nispeten küçük tablolar için tasarlanmıştır (yaklaşık 1.000.000 satıra kadar). Çok sayıda küçük tablonuz varsa, bu tablo motorunu kullanmak mantıklıdır, çünkü [Günlük](log.md) motor (daha az dosya açılması gerekir).
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/tinylog/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/aggregatingmergetree.md b/docs/tr/engines/table_engines/mergetree_family/aggregatingmergetree.md
new file mode 100644
index 0000000000..8034be0296
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/aggregatingmergetree.md
@@ -0,0 +1,102 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 35
+toc_title: AggregatingMergeTree
+---
+
+# Aggregatingmergetree {#aggregatingmergetree}
+
+Motor devralır [MergeTree](mergetree.md#table_engines-mergetree), veri parçaları birleştirme mantığı değiştirme. ClickHouse, tüm satırları aynı birincil anahtarla değiştirir (veya daha doğru olarak, aynı [sıralama anahtarı](mergetree.md)) tek bir satırla (bir veri parçası içinde), toplama işlevlerinin durumlarının bir kombinasyonunu saklar.
+
+Kullanabilirsiniz `AggregatingMergeTree` artımlı veri toplama, toplanan materialized görünümleri de dahil olmak üzere tablolar.
+
+Motor tüm sütunları ile işler [AggregateFunction](../../../sql_reference/data_types/aggregatefunction.md) tür.
+
+Kullanmak uygundur `AggregatingMergeTree` siparişlere göre satır sayısını azaltırsa.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE = AggregatingMergeTree()
+[PARTITION BY expr]
+[ORDER BY expr]
+[SAMPLE BY expr]
+[TTL expr]
+[SETTINGS name=value, ...]
+```
+
+İstek parametrelerinin açıklaması için bkz. [istek açıklaması](../../../sql_reference/statements/create.md).
+
+**Sorgu yan tümceleri**
+
+Oluştururken bir `AggregatingMergeTree` tablo aynı [yanlar](mergetree.md) oluşturul ,urken olduğu gibi gerekli `MergeTree` Tablo.
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın ve mümkünse eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE [=] AggregatingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity)
+```
+
+Tüm parametreler, aşağıdaki gibi aynı anlama sahiptir `MergeTree`.
+
+
+## Seç ve Ekle {#select-and-insert}
+
+Veri eklemek için şunları kullanın [INSERT SELECT](../../../sql_reference/statements/insert_into.md) agrega-Devlet-fonksiyonları ile sorgu.
+Veri seçerken `AggregatingMergeTree` tablo kullanın `GROUP BY` yan tümce ve veri eklerken aynı toplama işlevleri, ancak kullanarak `-Merge` sonek.
+
+Sonuç inlarında `SELECT` sorgu, değerleri `AggregateFunction` türü, Tüm ClickHouse çıktı biçimleri için uygulamaya özgü ikili gösterime sahiptir. Örneğin, veri dökümü, `TabSeparated` ile format `SELECT` sorgu daha sonra bu dökümü kullanarak geri yüklenebilir `INSERT` sorgu.
+
+## Toplu bir Somutlaştırılmış Görünüm örneği {#example-of-an-aggregated-materialized-view}
+
+`AggregatingMergeTree` saatler hayata görünüm `test.visits` Tablo:
+
+``` sql
+CREATE MATERIALIZED VIEW test.basic
+ENGINE = AggregatingMergeTree() PARTITION BY toYYYYMM(StartDate) ORDER BY (CounterID, StartDate)
+AS SELECT
+ CounterID,
+ StartDate,
+ sumState(Sign) AS Visits,
+ uniqState(UserID) AS Users
+FROM test.visits
+GROUP BY CounterID, StartDate;
+```
+
+Veri ekleme `test.visits` Tablo.
+
+``` sql
+INSERT INTO test.visits ...
+```
+
+Veriler hem tablo hem de görünümde eklenir `test.basic` toplama işlemini gerçekleştir .ecektir.
+
+Toplanan verileri almak için, aşağıdaki gibi bir sorgu yürütmemiz gerekir `SELECT ... GROUP BY ...` görünüm fromden `test.basic`:
+
+``` sql
+SELECT
+ StartDate,
+ sumMerge(Visits) AS Visits,
+ uniqMerge(Users) AS Users
+FROM test.basic
+GROUP BY StartDate
+ORDER BY StartDate;
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/aggregatingmergetree/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/collapsingmergetree.md b/docs/tr/engines/table_engines/mergetree_family/collapsingmergetree.md
new file mode 100644
index 0000000000..3ef53846f3
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/collapsingmergetree.md
@@ -0,0 +1,309 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 36
+toc_title: CollapsingMergeTree
+---
+
+# CollapsingMergeTree {#table_engine-collapsingmergetree}
+
+Motor devralır [MergeTree](mergetree.md) ve veri parçaları birleştirme algoritmasına çöken satırların mantığını ekler.
+
+`CollapsingMergeTree` sıralama anahtarındaki tüm alanlar zaman uyumsuz olarak siler (daraltır) satır çiftleri (`ORDER BY`) belirli alan hariç eşdeğerdir `Sign` hangi olabilir `1` ve `-1` değerler. Çift olmayan satırlar tutulur. Daha fazla bilgi için bkz: [Çökme](#table_engine-collapsingmergetree-collapsing) belgenin bölümü.
+
+Motor depolama hacmini önemli ölçüde azaltabilir ve `SELECT` sonuç olarak sorgu.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE = CollapsingMergeTree(sign)
+[PARTITION BY expr]
+[ORDER BY expr]
+[SAMPLE BY expr]
+[SETTINGS name=value, ...]
+```
+
+Sorgu parametrelerinin açıklaması için bkz. [sorgu açıklaması](../../../sql_reference/statements/create.md).
+
+**CollapsingMergeTree Parametreleri**
+
+- `sign` — Name of the column with the type of row: `1` is a “state” satır, `-1` is a “cancel” satır.
+
+ Column data type — `Int8`.
+
+**Sorgu yan tümceleri**
+
+Oluştururken bir `CollapsingMergeTree` tablo, aynı [sorgu yan tümceleri](mergetree.md#table_engine-mergetree-creating-a-table) oluşturul ,urken olduğu gibi gerekli `MergeTree` Tablo.
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın ve mümkünse eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE [=] CollapsingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity, sign)
+```
+
+Hariç tüm parametreler `sign` içinde olduğu gibi aynı anlama sahip `MergeTree`.
+
+- `sign` — Name of the column with the type of row: `1` — “state” satır, `-1` — “cancel” satır.
+
+ Column Data Type — `Int8`.
+
+
+
+## Çökme {#table_engine-collapsingmergetree-collapsing}
+
+### Veriler {#data}
+
+Bazı nesneler için sürekli değişen verileri kaydetmeniz gereken durumu düşünün. Bir nesne için bir satıra sahip olmak ve herhangi bir değişiklikte güncellemek mantıklı geliyor, ancak güncelleme işlemi dbms için pahalı ve yavaş çünkü depolama alanındaki verilerin yeniden yazılmasını gerektiriyor. Verileri hızlı bir şekilde yazmanız gerekiyorsa, güncelleme kabul edilemez, ancak bir nesnenin değişikliklerini sırayla aşağıdaki gibi yazabilirsiniz.
+
+Belirli sütunu kullanın `Sign`. Eğer `Sign = 1` bu, satırın bir nesnenin durumu olduğu anlamına gelir, diyelim ki “state” satır. Eğer `Sign = -1` aynı özelliklere sahip bir nesnenin durumunun iptali anlamına gelir, diyelim ki “cancel” satır.
+
+Örneğin, kullanıcıların bazı sitelerde ne kadar sayfa kontrol ettiğini ve ne kadar süre orada olduklarını hesaplamak istiyoruz. Bir anda kullanıcı etkinliği durumu ile aşağıdaki satırı yazıyoruz:
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+Bir an sonra kullanıcı aktivitesinin değişikliğini kaydedip aşağıdaki iki satırla yazıyoruz.
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ -1 │
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+İlk satır, nesnenin (kullanıcı) önceki durumunu iptal eder. İptal edilen durumun sıralama anahtar alanlarını kopyalamalıdır `Sign`.
+
+İkinci satır geçerli durumu içerir.
+
+Sadece kullanıcı etkinliğinin son durumuna ihtiyacımız olduğu için, satırlar
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │
+│ 4324182021466249494 │ 5 │ 146 │ -1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+bir nesnenin geçersiz (eski) durumunu daraltarak silinebilir. `CollapsingMergeTree` veri parçalarının birleştirilmesi sırasında bunu yapar.
+
+Neden her değişiklik için 2 satıra ihtiyacımız var [Algoritma](#table_engine-collapsingmergetree-collapsing-algorithm) paragraf.
+
+**Bu yaklaşımın kendine özgü özellikleri**
+
+1. Verileri yazan program, iptal edebilmek için bir nesnenin durumunu hatırlamalıdır. “Cancel” dize, sıralama anahtar alanlarının kopyalarını içermelidir. “state” dize ve tersi `Sign`. Bu depolama başlangıç boyutunu artırır ama hızlı bir şekilde veri yazmak için izin verir.
+2. Sütunlardaki uzun büyüyen diziler, yazma yükü nedeniyle motorun verimliliğini azaltır. Daha basit veriler, verimlilik o kadar yüksek olur.
+3. Bu `SELECT` sonuçlara itiraz değişiklikler tarihin tutarlılık bağlıdır. Ekleme için veri hazırlarken doğru olun. Tutarsız verilerde öngörülemeyen sonuçlar elde edebilirsiniz, örneğin, oturum derinliği gibi negatif olmayan metrikler için negatif değerler.
+
+### Algoritma {#table_engine-collapsingmergetree-collapsing-algorithm}
+
+ClickHouse veri parçalarını birleştirdiğinde, her ardışık satır grubu aynı sıralama anahtarıyla (`ORDER BY`) en fazla iki satır reduceda indir isgen ,ir, biri `Sign = 1` (“state” satır) ve başka bir `Sign = -1` (“cancel” satır). Başka bir deyişle, girişler çöker.
+
+Elde edilen her veri parçası için ClickHouse kaydeder:
+
+1. Birincilik “cancel” ve son “state” satır sayısı ise “state” ve “cancel” satırlar eşleşir ve son satır bir “state” satır.
+
+2. Son “state” satır, daha varsa “state” satırlar daha “cancel” satırlar.
+
+3. Birincilik “cancel” satır, daha varsa “cancel” satırlar daha “state” satırlar.
+
+4. Diğer tüm durumlarda satırların hiçbiri.
+
+Ayrıca en az 2 tane daha olduğunda “state” satırlar daha “cancel” satırlar veya en az 2 tane daha “cancel” r rowsows th thenen “state” satırlar, birleştirme devam eder, ancak ClickHouse bu durumu mantıksal bir hata olarak değerlendirir ve sunucu günlüğüne kaydeder. Aynı veriler birden çok kez eklendiğinde, bu hata oluşabilir.
+
+Bu nedenle, çöken istatistik hesaplama sonuçlarını değiştirmemelidir.
+Değişiklikler yavaş yavaş çöktü, böylece sonunda hemen hemen her nesnenin sadece son durumu kaldı.
+
+Bu `Sign` birleştirme algoritması, aynı sıralama anahtarına sahip tüm satırların aynı sonuçtaki veri bölümünde ve hatta aynı fiziksel sunucuda olacağını garanti etmediğinden gereklidir. ClickHouse süreci `SELECT` birden çok iş parçacığına sahip sorgular ve sonuçtaki satırların sırasını tahmin edemez. Tamamen almak için bir ihtiyaç varsa toplama gereklidir “collapsed” veri `CollapsingMergeTree` Tablo.
+
+Daraltmayı sonuçlandırmak için bir sorgu yazın `GROUP BY` yan tümce ve işareti için hesap toplama işlevleri. Örneğin, miktarı hesaplamak için kullanın `sum(Sign)` yerine `count()`. Bir şeyin toplamını hesaplamak için şunları kullanın `sum(Sign * x)` yerine `sum(x)`, ve böylece, ve ayrıca ekleyin `HAVING sum(Sign) > 0`.
+
+Toplanan `count`, `sum` ve `avg` bu şekilde hesaplanmış olabilir. Toplanan `uniq` bir nesnenin en az bir durumu çökmüş değilse hesaplanabilir. Toplanan `min` ve `max` hesaplan becauseamadı çünkü `CollapsingMergeTree` daraltılmış durumların değerleri geçmişini kaydetmez.
+
+Toplama olmadan veri ayıklamanız gerekiyorsa (örneğin, en yeni değerleri belirli koşullarla eşleşen satırların mevcut olup olmadığını kontrol etmek için) `FINAL` değiştirici için `FROM` yan. Bu yaklaşım önemli ölçüde daha az etkilidir.
+
+## Kullanım Örneği {#example-of-use}
+
+Örnek veriler:
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │
+│ 4324182021466249494 │ 5 │ 146 │ -1 │
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+Tablonun oluşturulması:
+
+``` sql
+CREATE TABLE UAct
+(
+ UserID UInt64,
+ PageViews UInt8,
+ Duration UInt8,
+ Sign Int8
+)
+ENGINE = CollapsingMergeTree(Sign)
+ORDER BY UserID
+```
+
+Veri ekleme:
+
+``` sql
+INSERT INTO UAct VALUES (4324182021466249494, 5, 146, 1)
+```
+
+``` sql
+INSERT INTO UAct VALUES (4324182021466249494, 5, 146, -1),(4324182021466249494, 6, 185, 1)
+```
+
+Biz iki kullanın `INSERT` iki farklı veri parçası oluşturmak için sorgular. Verileri bir sorgu ile eklersek ClickHouse bir veri parçası oluşturur ve hiç bir birleştirme gerçekleştirmez.
+
+Veri alma:
+
+``` sql
+SELECT * FROM UAct
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ -1 │
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+Ne görüyoruz ve nerede çöküyor?
+
+İki ile `INSERT` sorgular, 2 Veri parçası oluşturduk. Bu `SELECT` sorgu 2 iş parçacığında yapıldı ve rastgele bir satır sırası aldık. Veri parçalarının henüz birleştirilmediği için çökme gerçekleşmedi. ClickHouse biz tahmin edemez bilinmeyen bir anda veri kısmını birleştirir.
+
+Böylece toplama ihtiyacımız var:
+
+``` sql
+SELECT
+ UserID,
+ sum(PageViews * Sign) AS PageViews,
+ sum(Duration * Sign) AS Duration
+FROM UAct
+GROUP BY UserID
+HAVING sum(Sign) > 0
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┐
+│ 4324182021466249494 │ 6 │ 185 │
+└─────────────────────┴───────────┴──────────┘
+```
+
+Toplamaya ihtiyacımız yoksa ve çökmeyi zorlamak istiyorsak, şunları kullanabiliriz `FINAL` değiştirici için `FROM` yan.
+
+``` sql
+SELECT * FROM UAct FINAL
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+Verileri seçmenin bu yolu çok verimsizdir. Büyük masalar için kullanmayın.
+
+## Başka Bir Yaklaşım Örneği {#example-of-another-approach}
+
+Örnek veriler:
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │
+│ 4324182021466249494 │ -5 │ -146 │ -1 │
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+Fikir, birleştirmelerin yalnızca anahtar alanları hesaba katmasıdır. Ve içinde “Cancel” satır işareti sütununu kullanmadan toplanırken satırın önceki sürümünü eşitleyen negatif değerleri belirtebiliriz. Bu yaklaşım için veri türünü değiştirmek gerekir `PageViews`,`Duration` uint8 -\> Int16 negatif değerlerini saklamak için.
+
+``` sql
+CREATE TABLE UAct
+(
+ UserID UInt64,
+ PageViews Int16,
+ Duration Int16,
+ Sign Int8
+)
+ENGINE = CollapsingMergeTree(Sign)
+ORDER BY UserID
+```
+
+Yaklaşımı test edelim:
+
+``` sql
+insert into UAct values(4324182021466249494, 5, 146, 1);
+insert into UAct values(4324182021466249494, -5, -146, -1);
+insert into UAct values(4324182021466249494, 6, 185, 1);
+
+select * from UAct final; // avoid using final in production (just for a test or small tables)
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+``` sql
+SELECT
+ UserID,
+ sum(PageViews) AS PageViews,
+ sum(Duration) AS Duration
+FROM UAct
+GROUP BY UserID
+```text
+┌──────────────UserID─┬─PageViews─┬─Duration─┐
+│ 4324182021466249494 │ 6 │ 185 │
+└─────────────────────┴───────────┴──────────┘
+```
+
+``` sqk
+select count() FROM UAct
+```
+
+``` text
+┌─count()─┐
+│ 3 │
+└─────────┘
+```
+
+``` sql
+optimize table UAct final;
+
+select * FROM UAct
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/collapsingmergetree/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/custom_partitioning_key.md b/docs/tr/engines/table_engines/mergetree_family/custom_partitioning_key.md
new file mode 100644
index 0000000000..ba09aa08cb
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/custom_partitioning_key.md
@@ -0,0 +1,127 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 32
+toc_title: "\xD6zel B\xF6l\xFCmleme Anahtar\u0131"
+---
+
+# Özel Bölümleme Anahtarı {#custom-partitioning-key}
+
+Bölümleme için kullanılabilir [MergeTree](mergetree.md) aile tabloları (dahil [çoğaltıyordu](replication.md) Tablolar). [Hayata görünümler](../special/materializedview.md) MergeTree tablolarına dayanarak bölümlemeyi de destekler.
+
+Bir bölüm, bir tablodaki kayıtların belirtilen bir kritere göre mantıksal bir birleşimidir. Bir bölümü, ay, gün veya olay türü gibi rasgele bir ölçütle ayarlayabilirsiniz. Bu verilerin manipülasyonlarını basitleştirmek için her bölüm ayrı ayrı saklanır. Verilere erişirken, ClickHouse mümkün olan en küçük bölüm alt kümesini kullanır.
+
+Bölüm belirtilen `PARTITION BY expr` fık whenra ne zaman [tablo oluşturma](mergetree.md#table_engine-mergetree-creating-a-table). Bölüm anahtarı tablo sütunlarından herhangi bir ifade olabilir. Örneğin, aya göre bölümleme belirtmek için ifadeyi kullanın `toYYYYMM(date_column)`:
+
+``` sql
+CREATE TABLE visits
+(
+ VisitDate Date,
+ Hour UInt8,
+ ClientID UUID
+)
+ENGINE = MergeTree()
+PARTITION BY toYYYYMM(VisitDate)
+ORDER BY Hour;
+```
+
+Bölüm anahtarı ayrıca bir ifade kümesi olabilir ( [birincil anahtar](mergetree.md#primary-keys-and-indexes-in-queries)). Mesela:
+
+``` sql
+ENGINE = ReplicatedCollapsingMergeTree('/clickhouse/tables/name', 'replica1', Sign)
+PARTITION BY (toMonday(StartDate), EventType)
+ORDER BY (CounterID, StartDate, intHash32(UserID));
+```
+
+Bu örnekte, bölümlemeyi geçerli hafta boyunca meydana gelen olay türlerine göre ayarladık.
+
+Bir tabloya yeni veri eklerken, bu veriler birincil anahtara göre sıralanmış ayrı bir parça (yığın) olarak depolanır. Taktıktan 10-15 dakika sonra, aynı bölümün parçaları tüm parçaya birleştirilir.
+
+!!! info "Bilgin"
+ Birleştirme yalnızca bölümleme ifadesi için aynı değere sahip veri parçaları için çalışır. Bu demektir **aşırı granüler bölümler yapmamalısınız** (yaklaşık binden fazla bölüm). Aksi takdirde, `SELECT` sorgu, dosya sistemindeki ve açık dosya tanımlayıcılarındaki makul olmayan sayıda dosya nedeniyle yetersiz performans gösterir.
+
+Kullan... [sistem.parçalar](../../../operations/system_tables.md#system_tables-parts) tablo tablo parçaları ve bölümleri görüntülemek için. Örneğin, bir var varsayalım `visits` aya göre bölümleme ile tablo. Hadi gerçekleştirelim `SELECT` sorgu için `system.parts` Tablo:
+
+``` sql
+SELECT
+ partition,
+ name,
+ active
+FROM system.parts
+WHERE table = 'visits'
+```
+
+``` text
+┌─partition─┬─name───────────┬─active─┐
+│ 201901 │ 201901_1_3_1 │ 0 │
+│ 201901 │ 201901_1_9_2 │ 1 │
+│ 201901 │ 201901_8_8_0 │ 0 │
+│ 201901 │ 201901_9_9_0 │ 0 │
+│ 201902 │ 201902_4_6_1 │ 1 │
+│ 201902 │ 201902_10_10_0 │ 1 │
+│ 201902 │ 201902_11_11_0 │ 1 │
+└───────────┴────────────────┴────────┘
+```
+
+Bu `partition` sütun bölümlerin adlarını içerir. Bu örnekte iki bölüm vardır: `201901` ve `201902`. Bölüm adını belirtmek için bu sütun değerini kullanabilirsiniz [ALTER … PARTITION](#alter_manipulations-with-partitions) sorgular.
+
+Bu `name` sütun, bölüm veri parçalarının adlarını içerir. Bölümün adını belirtmek için bu sütunu kullanabilirsiniz. [ALTER ATTACH PART](#alter_attach-partition) sorgu.
+
+İlk bölümün adını kıralım: `201901_1_3_1`:
+
+- `201901` bölüm adıdır.
+- `1` en az veri bloğu sayısıdır.
+- `3` veri bloğunun maksimum sayısıdır.
+- `1` yığın düzeyidir (oluşturduğu birleştirme ağacının derinliği).
+
+!!! info "Bilgin"
+ Eski tip tabloların parçaları adı vardır: `20190117_20190123_2_2_0` (minimum tarih - maksimum tarih - minimum blok numarası - maksimum blok numarası - seviye).
+
+Bu `active` sütun, parçanın durumunu gösterir. `1` aktif istir; `0` etkin değil. Etkin olmayan parçalar, örneğin, daha büyük bir parçaya birleştirildikten sonra kalan kaynak parçalarıdır. Bozuk veri parçaları da etkin olarak gösterilir.
+
+Örnekte gördüğünüz gibi, aynı bölümün birkaç ayrı parçası vardır (örneğin, `201901_1_3_1` ve `201901_1_9_2`). Bu, bu parçaların henüz birleştirilmediği anlamına gelir. ClickHouse, eklendikten yaklaşık 15 dakika sonra eklenen veri parçalarını periyodik olarak birleştirir. Buna ek olarak, kullanarak zamanlanmış olmayan birleştirme gerçekleştirebilirsiniz [OPTIMIZE](../../../sql_reference/statements/misc.md#misc_operations-optimize) sorgu. Örnek:
+
+``` sql
+OPTIMIZE TABLE visits PARTITION 201902;
+```
+
+``` text
+┌─partition─┬─name───────────┬─active─┐
+│ 201901 │ 201901_1_3_1 │ 0 │
+│ 201901 │ 201901_1_9_2 │ 1 │
+│ 201901 │ 201901_8_8_0 │ 0 │
+│ 201901 │ 201901_9_9_0 │ 0 │
+│ 201902 │ 201902_4_6_1 │ 0 │
+│ 201902 │ 201902_4_11_2 │ 1 │
+│ 201902 │ 201902_10_10_0 │ 0 │
+│ 201902 │ 201902_11_11_0 │ 0 │
+└───────────┴────────────────┴────────┘
+```
+
+Etkin olmayan parçalar birleştirildikten yaklaşık 10 dakika sonra silinecektir.
+
+Bir parça ve bölüm kümesini görüntülemenin başka bir yolu da tablonun dizinine gitmektir: `/var/lib/clickhouse/data//
/`. Mesela:
+
+``` bash
+/var/lib/clickhouse/data/default/visits$ ls -l
+total 40
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 1 16:48 201901_1_3_1
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 5 16:17 201901_1_9_2
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 5 15:52 201901_8_8_0
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 5 15:52 201901_9_9_0
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 5 16:17 201902_10_10_0
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 5 16:17 201902_11_11_0
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 5 16:19 201902_4_11_2
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 5 12:09 201902_4_6_1
+drwxr-xr-x 2 clickhouse clickhouse 4096 Feb 1 16:48 detached
+```
+
+Klasör ‘201901\_1\_1\_0’, ‘201901\_1\_7\_1’ ve böylece parçaların dizinleri vardır. Her bölüm karşılık gelen bir bölümle ilgilidir ve yalnızca belirli bir ay için veri içerir (Bu örnekteki tabloda aylara göre bölümleme vardır).
+
+Bu `detached` dizin kullanarak tablodan ayrılmış parçaları içerir [DETACH](#alter_detach-partition) sorgu. Bozuk parçalar da silinmek yerine bu dizine taşınır. Sunucu parçaları kullanmaz `detached` directory. You can add, delete, or modify the data in this directory at any time – the server will not know about this until you run the [ATTACH](../../../sql_reference/statements/alter.md#alter_attach-partition) sorgu.
+
+İşletim sunucusunda, sunucu bunu bilmediğinden, dosya sistemindeki parça kümesini veya verilerini el ile değiştiremeyeceğinizi unutmayın. Çoğaltılmamış tablolar için, sunucu durdurulduğunda bunu yapabilirsiniz, ancak önerilmez. Çoğaltılmış tablolar için, parça kümesi her durumda değiştirilemez.
+
+ClickHouse, bölümlerle işlemleri gerçekleştirmenize izin verir: bunları silin, bir tablodan diğerine kopyalayın veya bir yedek oluşturun. Bölümdeki tüm işlemlerin listesine bakın [Bölümler ve parçalar ile manipülasyonlar](../../../sql_reference/statements/alter.md#alter_manipulations-with-partitions).
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/custom_partitioning_key/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/graphitemergetree.md b/docs/tr/engines/table_engines/mergetree_family/graphitemergetree.md
new file mode 100644
index 0000000000..5d4a349631
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/graphitemergetree.md
@@ -0,0 +1,174 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 38
+toc_title: "Graph\u0131temergetree"
+---
+
+# Graphıtemergetree {#graphitemergetree}
+
+Bu motor inceltme ve toplama/ortalama (toplaması) için tasarlanmıştır) [Grafit](http://graphite.readthedocs.io/en/latest/index.html) veriler. Clickhouse'u Grafit için bir veri deposu olarak kullanmak isteyen geliştiriciler için yararlı olabilir.
+
+Toplamaya ihtiyacınız yoksa Grafit verilerini depolamak için herhangi bir ClickHouse tablo motorunu kullanabilirsiniz, ancak bir toplamaya ihtiyacınız varsa `GraphiteMergeTree`. Motor, depolama hacmini azaltır ve grafitten gelen sorguların verimliliğini arttırır.
+
+Motor özellikleri devralır [MergeTree](mergetree.md).
+
+## Tablo oluşturma {#creating-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ Path String,
+ Time DateTime,
+ Value ,
+ Version
+ ...
+) ENGINE = GraphiteMergeTree(config_section)
+[PARTITION BY expr]
+[ORDER BY expr]
+[SAMPLE BY expr]
+[SETTINGS name=value, ...]
+```
+
+Ayrıntılı bir açıklamasını görmek [CREATE TABLE](../../../sql_reference/statements/create.md#create-table-query) sorgu.
+
+Grafit verileri için bir tablo aşağıdaki veriler için aşağıdaki sütunlara sahip olmalıdır:
+
+- Metrik adı (Grafit sensörü). Veri türü: `String`.
+
+- Metrik ölçme zamanı. Veri türü: `DateTime`.
+
+- Metrik değeri. Veri türü: herhangi bir sayısal.
+
+- Metrik sürümü. Veri türü: herhangi bir sayısal.
+
+ ClickHouse en yüksek sürümü veya sürümleri aynı ise son yazılan satırları kaydeder. Veri parçalarının birleştirilmesi sırasında diğer satırlar silinir.
+
+Bu sütunların adları toplaması yapılandırmasında ayarlanmalıdır.
+
+**Graphıtemergetree parametreleri**
+
+- `config_section` — Name of the section in the configuration file, where are the rules of rollup set.
+
+**Sorgu yan tümceleri**
+
+Oluştururken bir `GraphiteMergeTree` tablo, aynı [yanlar](mergetree.md#table_engine-mergetree-creating-a-table) oluşturul ,urken olduğu gibi gerekli `MergeTree` Tablo.
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın ve mümkünse eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ EventDate Date,
+ Path String,
+ Time DateTime,
+ Value ,
+ Version
+ ...
+) ENGINE [=] GraphiteMergeTree(date-column [, sampling_expression], (primary, key), index_granularity, config_section)
+```
+
+Hariç tüm parametreler `config_section` içinde olduğu gibi aynı anlama sahip `MergeTree`.
+
+- `config_section` — Name of the section in the configuration file, where are the rules of rollup set.
+
+
+
+## Toplaması Yapılandırması {#rollup-configuration}
+
+Toplaması için ayarları tarafından tanımlanan [graphite\_rollup](../../../operations/server_configuration_parameters/settings.md#server_configuration_parameters-graphite_rollup) sunucu yapılandırmasında parametre. Parametrenin adı herhangi biri olabilir. Birkaç yapılandırma oluşturabilir ve bunları farklı tablolar için kullanabilirsiniz.
+
+Toplaması yapılandırma yapısı:
+
+ required-columns
+ patterns
+
+### Gerekli Sütunlar {#required-columns}
+
+- `path_column_name` — The name of the column storing the metric name (Graphite sensor). Default value: `Path`.
+- `time_column_name` — The name of the column storing the time of measuring the metric. Default value: `Time`.
+- `value_column_name` — The name of the column storing the value of the metric at the time set in `time_column_name`. Varsayılan değer: `Value`.
+- `version_column_name` — The name of the column storing the version of the metric. Default value: `Timestamp`.
+
+### Desenler {#patterns}
+
+Bu yapı `patterns` bölme:
+
+``` text
+pattern
+ regexp
+ function
+pattern
+ regexp
+ age + precision
+ ...
+pattern
+ regexp
+ function
+ age + precision
+ ...
+pattern
+ ...
+default
+ function
+ age + precision
+ ...
+```
+
+!!! warning "Dikkat"
+ Desenler kesinlikle sipariş edilmelidir:
+
+ 1. Patterns without `function` or `retention`.
+ 1. Patterns with both `function` and `retention`.
+ 1. Pattern `default`.
+
+Bir satır işlerken, ClickHouse kuralları denetler `pattern` bölmeler. Tüm `pattern` (içeren `default`) bölümler içerebilir `function` toplama için parametre, `retention` parametreler veya her ikisi. Metrik adı eşleşirse `regexp` gelen kuralları `pattern` bölüm (veya bölümler) uygulanır; aksi takdirde, kurallar `default` bölüm kullanılır.
+
+Alanlar için `pattern` ve `default` bölmeler:
+
+- `regexp`– A pattern for the metric name.
+- `age` – The minimum age of the data in seconds.
+- `precision`– How precisely to define the age of the data in seconds. Should be a divisor for 86400 (seconds in a day).
+- `function` – The name of the aggregating function to apply to data whose age falls within the range `[age, age + precision]`.
+
+### Yapılandırma Örneği {#configuration-example}
+
+``` xml
+
+ Version
+
+ click_cost
+ any
+
+ 0
+ 5
+
+
+ 86400
+ 60
+
+
+
+ max
+
+ 0
+ 60
+
+
+ 3600
+ 300
+
+
+ 86400
+ 3600
+
+
+
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/graphitemergetree/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/index.md b/docs/tr/engines/table_engines/mergetree_family/index.md
new file mode 100644
index 0000000000..e722564f4d
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/index.md
@@ -0,0 +1,8 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: MergeTree Ailesi
+toc_priority: 28
+---
+
+
diff --git a/docs/tr/engines/table_engines/mergetree_family/mergetree.md b/docs/tr/engines/table_engines/mergetree_family/mergetree.md
new file mode 100644
index 0000000000..a06aae83e1
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/mergetree.md
@@ -0,0 +1,654 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 30
+toc_title: MergeTree
+---
+
+# MergeTree {#table_engines-mergetree}
+
+Bu `MergeTree` bu ailenin motoru ve diğer motorları (`*MergeTree`) en sağlam ClickHouse masa motorlarıdır.
+
+Motor inlarda `MergeTree` aile, bir tabloya çok büyük miktarda veri eklemek için tasarlanmıştır. Veriler hızlı bir şekilde tabloya kısmen yazılır, daha sonra parçaları arka planda birleştirmek için kurallar uygulanır. Bu yöntem, ınsert sırasında depolama alanındaki verileri sürekli olarak yeniden yazmaktan çok daha etkilidir.
+
+Ana özellikler:
+
+- Birincil anahtara göre sıralanmış verileri saklar.
+
+ Bu, verileri daha hızlı bulmanıza yardımcı olan küçük bir seyrek dizin oluşturmanıza olanak sağlar.
+
+- Bölümler eğer kullanılabilir [bölümleme anahtarı](custom_partitioning_key.md) belirt .ilmektedir.
+
+ ClickHouse, aynı sonuçla aynı veriler üzerindeki genel işlemlerden daha etkili olan bölümlerle belirli işlemleri destekler. ClickHouse, bölümleme anahtarının sorguda belirtildiği bölüm verilerini de otomatik olarak keser. Bu da sorgu performansını artırır.
+
+- Veri çoğaltma desteği.
+
+ The family of `ReplicatedMergeTree` tablolar veri çoğaltma sağlar. Daha fazla bilgi için, bkz. [Veri çoğaltma](replication.md).
+
+- Veri örnekleme desteği.
+
+ Gerekirse, tabloda veri örnekleme yöntemini ayarlayabilirsiniz.
+
+!!! info "Bilgin"
+ Bu [Birleştirmek](../special/merge.md) motor ait değil `*MergeTree` aile.
+
+## Tablo oluşturma {#table_engine-mergetree-creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
+ ...
+ INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,
+ INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
+) ENGINE = MergeTree()
+[PARTITION BY expr]
+[ORDER BY expr]
+[PRIMARY KEY expr]
+[SAMPLE BY expr]
+[TTL expr [DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'], ...]
+[SETTINGS name=value, ...]
+```
+
+Parametrelerin açıklaması için bkz. [Sorgu açıklaması oluştur](../../../sql_reference/statements/create.md).
+
+!!! note "Not"
+ `INDEX` deneysel bir özelliktir, bkz [Veri Atlama Dizinleri](#table_engine-mergetree-data_skipping-indexes).
+
+### Sorgu Yan Tümceleri {#mergetree-query-clauses}
+
+- `ENGINE` — Name and parameters of the engine. `ENGINE = MergeTree()`. Bu `MergeTree` motor parametreleri yok.
+
+- `PARTITION BY` — The [bölümleme anahtarı](custom_partitioning_key.md).
+
+ Aylara göre bölümleme için `toYYYYMM(date_column)` ifade, nerede `date_column` türün tarihi olan bir sütun mu [Tarihli](../../../sql_reference/data_types/date.md). Burada bölüm isimleri var `"YYYYMM"` biçimli.
+
+- `ORDER BY` — The sorting key.
+
+ Sütun veya keyfi ifadeler bir tuple. Örnek: `ORDER BY (CounterID, EventDate)`.
+
+- `PRIMARY KEY` — The primary key if it [sıralama anahtarından farklıdır](mergetree.md).
+
+ Varsayılan olarak, birincil anahtar sıralama anahtarıyla aynıdır (bu anahtar tarafından belirtilir). `ORDER BY` yan). Bu nedenle çoğu durumda ayrı bir belirtmek gereksizdir `PRIMARY KEY` yan.
+
+- `SAMPLE BY` — An expression for sampling.
+
+ Bir örnekleme ifadesi kullanılırsa, birincil anahtar onu içermelidir. Örnek: `SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID))`.
+
+- `TTL` — A list of rules specifying storage duration of rows and defining logic of automatic parts movement [diskler ve birimler arasında](#table_engine-mergetree-multiple-volumes).
+
+ İfade bir olmalıdır `Date` veya `DateTime` sonuç olarak sütun. Örnek:
+ `TTL date + INTERVAL 1 DAY`
+
+ Kuralın türü `DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'` ifade tatmin edildiyse (geçerli zamana ulaşırsa) parça ile yapılacak bir eylemi belirtir: süresi dolmuş satırların kaldırılması, bir parçanın (bir parçadaki tüm satırlar için ifade tatmin edildiyse) belirtilen diske taşınması (`TO DISK 'xxx'`) veya hacim (`TO VOLUME 'xxx'`). Kuralın varsayılan türü kaldırma (`DELETE`). Birden fazla kural listesi belirtilebilir, ancak birden fazla olmamalıdır `DELETE` kural.
+
+ Daha fazla ayrıntı için bkz. [Sütunlar ve tablolar için TTL](#table_engine-mergetree-ttl)
+
+- `SETTINGS` — Additional parameters that control the behavior of the `MergeTree`:
+
+ - `index_granularity` — Maximum number of data rows between the marks of an index. Default value: 8192. See [Veri Depolama](#mergetree-data-storage).
+ - `index_granularity_bytes` — Maximum size of data granules in bytes. Default value: 10Mb. To restrict the granule size only by number of rows, set to 0 (not recommended). See [Veri Depolama](#mergetree-data-storage).
+ - `enable_mixed_granularity_parts` — Enables or disables transitioning to control the granule size with the `index_granularity_bytes` ayar. 19.11 sürümünden önce, sadece `index_granularity` granül boyutunu kısıtlamak için ayar. Bu `index_granularity_bytes` büyük satırlar (onlarca ve megabayt yüzlerce) ile tablolardan veri seçerken ayarı ClickHouse performansını artırır. Büyük satırlara sahip tablolarınız varsa, tabloların verimliliğini artırmak için bu ayarı etkinleştirebilirsiniz. `SELECT` sorgular.
+ - `use_minimalistic_part_header_in_zookeeper` — Storage method of the data parts headers in ZooKeeper. If `use_minimalistic_part_header_in_zookeeper=1`, daha sonra ZooKeeper daha az veri depolar. Daha fazla bilgi için, bkz: [ayar açıklaması](../../../operations/server_configuration_parameters/settings.md#server-settings-use_minimalistic_part_header_in_zookeeper) içinde “Server configuration parameters”.
+ - `min_merge_bytes_to_use_direct_io` — The minimum data volume for merge operation that is required for using direct I/O access to the storage disk. When merging data parts, ClickHouse calculates the total storage volume of all the data to be merged. If the volume exceeds `min_merge_bytes_to_use_direct_io` bayt, ClickHouse okur ve doğrudan I/O arabirimi kullanarak depolama diskine veri yazar (`O_DIRECT` seçenek). Eğer `min_merge_bytes_to_use_direct_io = 0`, sonra doğrudan g / Ç devre dışı bırakılır. Varsayılan değer: `10 * 1024 * 1024 * 1024` baytlar.
+
+ - `merge_with_ttl_timeout` — Minimum delay in seconds before repeating a merge with TTL. Default value: 86400 (1 day).
+ - `write_final_mark` — Enables or disables writing the final index mark at the end of data part (after the last byte). Default value: 1. Don't turn it off.
+ - `merge_max_block_size` — Maximum number of rows in block for merge operations. Default value: 8192.
+ - `storage_policy` — Storage policy. See [Veri depolama için birden fazla blok cihazı kullanma](#table_engine-mergetree-multiple-volumes).
+
+**Bölüm ayarı örneği**
+
+``` sql
+ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192
+```
+
+Örnekte, aylara göre bölümleme ayarladık.
+
+Biz de kullanıcı kimliği ile karma olarak örnekleme için bir ifade ayarlayın. Bu, her biri için tablodaki verileri pseudorandomize etmenizi sağlar `CounterID` ve `EventDate`. Tanım yoularsanız bir [SAMPLE](../../../sql_reference/statements/select.md#select-sample-clause) yan tümcesi verileri seçerken, ClickHouse kullanıcıların bir alt kümesi için eşit pseudorandom veri örneği döndürür.
+
+Bu `index_granularity` 8192 varsayılan değer olduğundan ayarı atlanabilir.
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın. Mümkünse, eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE [=] MergeTree(date-column [, sampling_expression], (primary, key), index_granularity)
+```
+
+**MergeTree () Parametreleri**
+
+- `date-column` — The name of a column of the [Tarihli](../../../sql_reference/data_types/date.md) tür. ClickHouse otomatik olarak bu sütuna göre ay bölümleri oluşturur. Bölüm adları `"YYYYMM"` biçimli.
+- `sampling_expression` — An expression for sampling.
+- `(primary, key)` — Primary key. Type: [Demet()](../../../sql_reference/data_types/tuple.md)
+- `index_granularity` — The granularity of an index. The number of data rows between the “marks” bir dizinin. 8192 değeri çoğu görev için uygundur.
+
+**Örnek**
+
+``` sql
+MergeTree(EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID)), 8192)
+```
+
+Bu `MergeTree` motor, Ana motor yapılandırma yöntemi için yukarıdaki örnekte olduğu gibi yapılandırılır.
+
+
+## Veri Depolama {#mergetree-data-storage}
+
+Bir tabloda birincil anahtar tarafından sıralanmış verileri bölümden oluşmaktadır.
+
+Veri bir tabloya eklendiğinde, ayrı veri parçaları oluşturulur ve bunların her biri birincil anahtara göre lexicographically sıralanır. Örneğin, birincil anahtar `(CounterID, Date)`, parçadaki veriler şu şekilde sıralanır `CounterID` ve içinde her `CounterID` tarafından sipariş edilir `Date`.
+
+Farklı bölümlere ait veriler farklı parçalara ayrılır. Arka planda, ClickHouse daha verimli depolama için veri parçalarını birleştirir. Farklı bölümlere ait parçalar birleştirilmez. Birleştirme mekanizması, aynı birincil anahtara sahip tüm satırların aynı veri bölümünde olacağını garanti etmez.
+
+Her veri parçası mantıksal olarak granüllere ayrılmıştır. Bir granül, Clickhouse'un veri seçerken okuduğu en küçük bölünmez veri kümesidir. ClickHouse satırları veya değerleri bölmez, bu nedenle her granül her zaman bir tamsayı satır içerir. Bir granülün ilk satırı, satır için birincil anahtarın değeri ile işaretlenir. Her veri bölümü için ClickHouse işaretleri depolayan bir dizin dosyası oluşturur. Her sütun için, birincil anahtarda olsun ya da olmasın, ClickHouse aynı işaretleri de saklar. Bu işaretler, verileri doğrudan sütun dosyalarında bulmanızı sağlar.
+
+Granül boyutu ile sınırlıdır `index_granularity` ve `index_granularity_bytes` tablo motorunun ayarları. Bir granüldeki satır sayısı `[1, index_granularity]` Aralık, satırların boyutuna bağlı olarak. Bir granülün boyutu aşabilir `index_granularity_bytes` tek bir satırın boyutu ayarın değerinden büyükse. Bu durumda, granülün boyutu satırın boyutuna eşittir.
+
+## Sorgularda birincil anahtarlar ve dizinler {#primary-keys-and-indexes-in-queries}
+
+Tak thee the `(CounterID, Date)` örnek olarak birincil anahtar. Bu durumda, sıralama ve dizin aşağıdaki gibi gösterilebilir:
+
+ Whole data: [---------------------------------------------]
+ CounterID: [aaaaaaaaaaaaaaaaaabbbbcdeeeeeeeeeeeeefgggggggghhhhhhhhhiiiiiiiiikllllllll]
+ Date: [1111111222222233331233211111222222333211111112122222223111112223311122333]
+ Marks: | | | | | | | | | | |
+ a,1 a,2 a,3 b,3 e,2 e,3 g,1 h,2 i,1 i,3 l,3
+ Marks numbers: 0 1 2 3 4 5 6 7 8 9 10
+
+Veri sorgusu belirtirse:
+
+- `CounterID in ('a', 'h')`, sunucu işaretleri aralıklarında verileri okur `[0, 3)` ve `[6, 8)`.
+- `CounterID IN ('a', 'h') AND Date = 3`, sunucu işaretleri aralıklarında verileri okur `[1, 3)` ve `[7, 8)`.
+- `Date = 3`, sunucu işaretleri aralığında veri okur `[1, 10]`.
+
+Yukarıdaki örnekler, her zaman bir dizin tam taramadan daha etkili olduğunu göstermektedir.
+
+Seyrek bir dizin, ekstra verilerin okunmasına izin verir. Birincil anahtarın tek bir aralığını okurken, `index_granularity * 2` her veri bloğundaki ekstra satırlar okunabilir.
+
+Seyrek dizinler, çok sayıda tablo satırı ile çalışmanıza izin verir, çünkü çoğu durumda, bu tür dizinler bilgisayarın RAM'İNE sığar.
+
+ClickHouse benzersiz bir birincil anahtar gerektirmez. Aynı birincil anahtar ile birden çok satır ekleyebilirsiniz.
+
+### Birincil anahtar seçme {#selecting-the-primary-key}
+
+Birincil anahtardaki sütun sayısı açıkça sınırlı değildir. Veri yapısına bağlı olarak, birincil anahtara daha fazla veya daha az sütun ekleyebilirsiniz. Bu Mayıs:
+
+- Bir dizin performansını artırın.
+
+ Birincil anahtar ise `(a, b)`, sonra başka bir sütun ekleyerek `c` aşağıdaki koşullar yerine getirilirse performansı artıracaktır:
+
+ - Sütun üzerinde bir koşulu olan sorgular var `c`.
+ - Uzun veri aralıkları (birkaç kat daha uzun `index_granularity`) için aynı değer withlerle `(a, b)` yaygındır. Başka bir deyişle, başka bir sütun eklerken oldukça uzun veri aralıklarını atlamanıza izin verir.
+
+- Veri sıkıştırmasını geliştirin.
+
+ ClickHouse verileri birincil anahtarla sıralar, bu nedenle tutarlılık ne kadar yüksek olursa sıkıştırma o kadar iyi olur.
+
+- Veri parçalarını birleştirirken ek mantık sağlayın [CollapsingMergeTree](collapsingmergetree.md#table_engine-collapsingmergetree) ve [SummingMergeTree](summingmergetree.md) motorlar.
+
+ Bu durumda belirtmek mantıklı *sıralama anahtarı* bu birincil anahtardan farklıdır.
+
+Uzun bir birincil anahtar, ekleme performansını ve bellek tüketimini olumsuz yönde etkiler, ancak birincil anahtardaki ek sütunlar, ClickHouse performansını etkilemez `SELECT` sorgular.
+
+### Sıralama anahtarından farklı bir birincil anahtar seçme {#choosing-a-primary-key-that-differs-from-the-sorting-key}
+
+Sıralama anahtarından (veri bölümlerindeki satırları sıralamak için bir ifade) farklı bir birincil anahtar (her işaret için dizin dosyasında yazılan değerlere sahip bir ifade) belirtmek mümkündür. Bu durumda, birincil anahtar ifadesi tuple, sıralama anahtarı ifadesi tuple'ın bir öneki olmalıdır.
+
+Bu özellik kullanırken yararlıdır [SummingMergeTree](summingmergetree.md) ve
+[AggregatingMergeTree](aggregatingmergetree.md) masa motorları. Bu motorları kullanırken yaygın bir durumda, tablonun iki tür sütunu vardır: *boyutlular* ve *ölçümler*. Tipik sorgular, rasgele ölçü sütunlarının değerlerini toplar `GROUP BY` ve boyutlara göre filtreleme. Çünkü SummingMergeTree ve AggregatingMergeTree sıralama anahtarının aynı değere sahip satırları toplamak, tüm boyutları eklemek doğaldır. Sonuç olarak, anahtar ifadesi uzun bir sütun listesinden oluşur ve bu liste yeni eklenen boyutlarla sık sık güncelleştirilmelidir.
+
+Bu durumda, birincil anahtarda verimli Aralık taramaları sağlayacak ve kalan boyut sütunlarını sıralama anahtarı kümesine ekleyecek yalnızca birkaç sütun bırakmak mantıklıdır.
+
+[ALTER](../../../sql_reference/statements/alter.md) yeni bir sütun aynı anda tabloya ve sıralama anahtarı eklendiğinde, varolan veri parçaları değiştirilmesi gerekmez, çünkü sıralama anahtarının hafif bir işlemdir. Eski sıralama anahtarı yeni sıralama anahtarının bir öneki olduğundan ve yeni eklenen sütunda veri olmadığından, veriler tablo değişikliği anında hem eski hem de yeni sıralama anahtarlarına göre sıralanır.
+
+### Sorgularda dizin ve bölümlerin kullanımı {#use-of-indexes-and-partitions-in-queries}
+
+İçin `SELECT` sorgular, ClickHouse bir dizin kullanılabilir olup olmadığını analiz eder. Eğer bir dizin kullanılabilir `WHERE/PREWHERE` yan tümce, bir eşitlik veya eşitsizlik karşılaştırma işlemini temsil eden bir ifadeye (bağlantı öğelerinden biri olarak veya tamamen) sahiptir veya varsa `IN` veya `LIKE` sütun veya birincil anahtar veya bölümleme anahtar veya bu sütunların belirli kısmen tekrarlayan işlevleri veya bu ifadelerin mantıksal ilişkileri olan ifadeler üzerinde sabit bir önek ile.
+
+Bu nedenle, birincil anahtarın bir veya daha fazla aralığındaki sorguları hızlı bir şekilde çalıştırmak mümkündür. Bu örnekte, belirli bir izleme etiketi, belirli bir etiket ve tarih aralığı, belirli bir etiket ve tarih için, tarih aralığına sahip birden çok etiket için vb. çalıştırıldığında sorgular hızlı olacaktır.
+
+Aşağıdaki gibi yapılandırılmış motora bakalım:
+
+ ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate) SETTINGS index_granularity=8192
+
+Bu durumda, sorgularda:
+
+``` sql
+SELECT count() FROM table WHERE EventDate = toDate(now()) AND CounterID = 34
+SELECT count() FROM table WHERE EventDate = toDate(now()) AND (CounterID = 34 OR CounterID = 42)
+SELECT count() FROM table WHERE ((EventDate >= toDate('2014-01-01') AND EventDate <= toDate('2014-01-31')) OR EventDate = toDate('2014-05-01')) AND CounterID IN (101500, 731962, 160656) AND (CounterID = 101500 OR EventDate != toDate('2014-05-01'))
+```
+
+ClickHouse, uygun olmayan verileri kırpmak için birincil anahtar dizinini ve uygun olmayan tarih aralıklarındaki bölümleri kırpmak için aylık bölümleme anahtarını kullanır.
+
+Yukarıdaki sorgular, dizinin karmaşık ifadeler için bile kullanıldığını göstermektedir. Tablodan okuma, dizini kullanarak tam taramadan daha yavaş olamayacak şekilde düzenlenmiştir.
+
+Aşağıdaki örnekte, dizin kullanılamaz.
+
+``` sql
+SELECT count() FROM table WHERE CounterID = 34 OR URL LIKE '%upyachka%'
+```
+
+Clickhouse'un bir sorgu çalıştırırken dizini kullanıp kullanamayacağını kontrol etmek için ayarları kullanın [force\_index\_by\_date](../../../operations/settings/settings.md#settings-force_index_by_date) ve [force\_primary\_key](../../../operations/settings/settings.md).
+
+Aylara göre bölümleme anahtarı, yalnızca uygun aralıktaki tarihleri içeren veri bloklarını okumanıza izin verir. Bu durumda, veri bloğu birçok tarih için veri içerebilir (bir aya kadar). Bir blok içinde veriler, ilk sütun olarak tarihi içermeyen birincil anahtara göre sıralanır. Bu nedenle, birincil anahtar önekini belirtmeyen yalnızca bir tarih koşulu ile bir sorgu kullanarak tek bir tarih için okunacak daha fazla veri neden olur.
+
+### Kısmen monotonik birincil anahtarlar için Endeks kullanımı {#use-of-index-for-partially-monotonic-primary-keys}
+
+Örneğin, Ayın günlerini düşünün. Onlar formu bir [monotonik dizisi](https://en.wikipedia.org/wiki/Monotonic_function) bir ay boyunca, ancak daha uzun süreler için monotonik değil. Bu kısmen monotonik bir dizidir. Bir kullanıcı kısmen monoton birincil anahtar ile tablo oluşturursa, ClickHouse her zamanki gibi seyrek bir dizin oluşturur. Bir kullanıcı bu tür bir tablodan veri seçtiğinde, ClickHouse sorgu koşullarını analiz eder. Kullanıcı, dizinin iki işareti arasında veri almak isterse ve bu işaretlerin her ikisi de bir ay içinde düşerse, ClickHouse bu özel durumda dizini kullanabilir, çünkü sorgu parametreleri ile dizin işaretleri arasındaki mesafeyi hesaplayabilir.
+
+Sorgu parametresi aralığındaki birincil anahtarın değerleri monotonik bir sırayı temsil etmiyorsa, ClickHouse bir dizin kullanamaz. Bu durumda, ClickHouse Tam Tarama yöntemini kullanır.
+
+ClickHouse bu mantığı yalnızca ay dizilerinin günleri için değil, kısmen monotonik bir diziyi temsil eden herhangi bir birincil anahtar için kullanır.
+
+### Veri atlama indeksleri (deneysel) {#table_engine-mergetree-data_skipping-indexes}
+
+Dizin bildirimi sütunlar bölümünde `CREATE` sorgu.
+
+``` sql
+INDEX index_name expr TYPE type(...) GRANULARITY granularity_value
+```
+
+Tablolar için `*MergeTree` aile, veri atlama endeksleri belirtilebilir.
+
+Bu endeksler, bloklarda belirtilen ifade hakkında bazı bilgileri toplar ve bunlardan oluşur `granularity_value` granüller (granül boyutu kullanılarak belirtilir `index_granularity` tablo motoru ayarı). Daha sonra bu agregalar `SELECT` büyük veri bloklarını atlayarak diskten okunacak veri miktarını azaltmak için sorgular `where` sorgu tatmin edilemez.
+
+**Örnek**
+
+``` sql
+CREATE TABLE table_name
+(
+ u64 UInt64,
+ i32 Int32,
+ s String,
+ ...
+ INDEX a (u64 * i32, s) TYPE minmax GRANULARITY 3,
+ INDEX b (u64 * length(s)) TYPE set(1000) GRANULARITY 4
+) ENGINE = MergeTree()
+...
+```
+
+Örneğin endeksleri aşağıdaki sorgularda diskten okunacak veri miktarını azaltmak için ClickHouse tarafından kullanılabilir:
+
+``` sql
+SELECT count() FROM table WHERE s < 'z'
+SELECT count() FROM table WHERE u64 * i32 == 10 AND u64 * length(s) >= 1234
+```
+
+#### Mevcut Endeks Türleri {#available-types-of-indices}
+
+- `minmax`
+
+ Belirtilen ifad (eyi saklar (ifad (enin `tuple`, sonra her eleman için aşırı depolar `tuple`), birincil anahtar gibi veri bloklarını atlamak için saklanan bilgileri kullanır.
+
+- `set(max_rows)`
+
+ Belirtilen ifadenin benzersiz değerlerini depolar (en fazla `max_rows` satırlar, `max_rows=0` anlama “no limits”). Kontrol etmek için değerleri kullanır `WHERE` ifade, bir veri bloğu üzerinde tatmin edilemez değildir.
+
+- `ngrambf_v1(n, size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)`
+
+ Mağazalar a [Blo filterom filtre](https://en.wikipedia.org/wiki/Bloom_filter) bu, bir veri bloğundaki tüm ngramları içerir. Sadece dizeleri ile çalışır. Optimizasyonu için kullanılabilir `equals`, `like` ve `in` ifadeler.
+
+ - `n` — ngram size,
+ - `size_of_bloom_filter_in_bytes` — Bloom filter size in bytes (you can use large values here, for example, 256 or 512, because it can be compressed well).
+ - `number_of_hash_functions` — The number of hash functions used in the Bloom filter.
+ - `random_seed` — The seed for Bloom filter hash functions.
+
+- `tokenbf_v1(size_of_bloom_filter_in_bytes, number_of_hash_functions, random_seed)`
+
+ Olarak aynı `ngrambf_v1`, ancak ngrams yerine simgeleri saklar. Belirteçler alfasayısal olmayan karakterlerle ayrılmış dizilerdir.
+
+- `bloom_filter([false_positive])` — Stores a [Blo filterom filtre](https://en.wikipedia.org/wiki/Bloom_filter) belirtilen sütunlar için.
+
+ Opsiyonel `false_positive` parametre, filtreden yanlış pozitif yanıt alma olasılığıdır. Olası değerler: (0, 1). Varsayılan değer: 0.025.
+
+ Desteklenen veri türleri: `Int*`, `UInt*`, `Float*`, `Enum`, `Date`, `DateTime`, `String`, `FixedString`, `Array`, `LowCardinality`, `Nullable`.
+
+ Aşağıdaki işlevleri kullanabilirsiniz: [eşitlikler](../../../sql_reference/functions/comparison_functions.md), [notEquals](../../../sql_reference/functions/comparison_functions.md), [içinde](../../../sql_reference/functions/in_functions.md), [notİn](../../../sql_reference/functions/in_functions.md), [var](../../../sql_reference/functions/array_functions.md).
+
+
+
+``` sql
+INDEX sample_index (u64 * length(s)) TYPE minmax GRANULARITY 4
+INDEX sample_index2 (u64 * length(str), i32 + f64 * 100, date, str) TYPE set(100) GRANULARITY 4
+INDEX sample_index3 (lower(str), str) TYPE ngrambf_v1(3, 256, 2, 0) GRANULARITY 4
+```
+
+#### Fonksiyonları Destek {#functions-support}
+
+Koşulları `WHERE` yan tümcesi, sütunlarla çalışan işlevlerin çağrılarını içerir. Sütun bir dizinin bir parçasıysa, ClickHouse işlevleri gerçekleştirirken bu dizini kullanmaya çalışır. ClickHouse, dizinleri kullanmak için farklı işlev alt kümelerini destekler.
+
+Bu `set` dizin tüm fonksiyonları ile kullanılabilir. Diğer dizinler için işlev alt kümeleri aşağıdaki tabloda gösterilmiştir.
+
+| Fonksiyon (operatör) / dizin | birincil anahtar | minmax | ngrambf\_v1 | tokenbf\_v1 | bloom\_filter |
+|------------------------------------------------------------------------------------------------------------|------------------|--------|-------------|-------------|---------------|
+| [eşitlikler (=, ==)](../../../sql_reference/functions/comparison_functions.md#function-equals) | ✔ | ✔ | ✔ | ✔ | ✔ |
+| [notEquals(!=, \<\>)](../../../sql_reference/functions/comparison_functions.md#function-notequals) | ✔ | ✔ | ✔ | ✔ | ✔ |
+| [hoşlanmak](../../../sql_reference/functions/string_search_functions.md#function-like) | ✔ | ✔ | ✔ | ✗ | ✗ |
+| [notLike](../../../sql_reference/functions/string_search_functions.md#function-notlike) | ✔ | ✔ | ✔ | ✗ | ✗ |
+| [startsWith](../../../sql_reference/functions/string_functions.md#startswith) | ✔ | ✔ | ✔ | ✔ | ✗ |
+| [endsWith](../../../sql_reference/functions/string_functions.md#endswith) | ✗ | ✗ | ✔ | ✔ | ✗ |
+| [multiSearchAny](../../../sql_reference/functions/string_search_functions.md#function-multisearchany) | ✗ | ✗ | ✔ | ✗ | ✗ |
+| [içinde](../../../sql_reference/functions/in_functions.md#in-functions) | ✔ | ✔ | ✔ | ✔ | ✔ |
+| [notİn](../../../sql_reference/functions/in_functions.md#in-functions) | ✔ | ✔ | ✔ | ✔ | ✔ |
+| [daha az (\<)](../../../sql_reference/functions/comparison_functions.md#function-less) | ✔ | ✔ | ✗ | ✗ | ✗ |
+| [büyük (\>)](../../../sql_reference/functions/comparison_functions.md#function-greater) | ✔ | ✔ | ✗ | ✗ | ✗ |
+| [lessOrEquals (\<=)](../../../sql_reference/functions/comparison_functions.md#function-lessorequals) | ✔ | ✔ | ✗ | ✗ | ✗ |
+| [greaterOrEquals (\>=)](../../../sql_reference/functions/comparison_functions.md#function-greaterorequals) | ✔ | ✔ | ✗ | ✗ | ✗ |
+| [boş](../../../sql_reference/functions/array_functions.md#function-empty) | ✔ | ✔ | ✗ | ✗ | ✗ |
+| [notEmpty](../../../sql_reference/functions/array_functions.md#function-notempty) | ✔ | ✔ | ✗ | ✗ | ✗ |
+| hasToken | ✗ | ✗ | ✗ | ✔ | ✗ |
+
+Ngram boyutundan daha az olan sabit bir argümana sahip işlevler tarafından kullanılamaz `ngrambf_v1` sorgu optimizasyonu için.
+
+Bloom filtreleri yanlış pozitif eşleşmelere sahip olabilir, bu yüzden `ngrambf_v1`, `tokenbf_v1`, ve `bloom_filter` dizinler, örneğin bir işlevin sonucunun false olması beklenen sorguları en iyi duruma getirmek için kullanılamaz:
+
+- Optimize edilebilir:
+ - `s LIKE '%test%'`
+ - `NOT s NOT LIKE '%test%'`
+ - `s = 1`
+ - `NOT s != 1`
+ - `startsWith(s, 'test')`
+- Optimize edilemez:
+ - `NOT s LIKE '%test%'`
+ - `s NOT LIKE '%test%'`
+ - `NOT s = 1`
+ - `s != 1`
+ - `NOT startsWith(s, 'test')`
+
+## Eşzamanlı Veri Erişimi {#concurrent-data-access}
+
+Eşzamanlı tablo erişimi için çoklu sürüm kullanıyoruz. Başka bir deyişle, bir tablo aynı anda okunup güncelleştirildiğinde, sorgu sırasında geçerli olan bir parça kümesinden veri okunur. Uzun kilitler yok. Ekler okuma işlemlerinin yoluna girmez.
+
+Bir tablodan okuma otomatik olarak paralelleştirilir.
+
+## Sütunlar ve tablolar için TTL {#table_engine-mergetree-ttl}
+
+Değerlerin ömrünü belirler.
+
+Bu `TTL` yan tümcesi tüm tablo ve her sütun için ayarlanabilir. Tablo düzeyinde TTL ayrıca diskler ve birimler arasında otomatik veri taşıma mantığını belirtebilirsiniz.
+
+İfadeleri değerlendirmek gerekir [Tarihli](../../../sql_reference/data_types/date.md) veya [DateTime](../../../sql_reference/data_types/datetime.md) veri türü.
+
+Örnek:
+
+``` sql
+TTL time_column
+TTL time_column + interval
+```
+
+Tanımlamak `interval`, kullanma [zaman aralığı](../../../sql_reference/operators.md#operators-datetime) operatörler.
+
+``` sql
+TTL date_time + INTERVAL 1 MONTH
+TTL date_time + INTERVAL 15 HOUR
+```
+
+### Sütun TTL {#mergetree-column-ttl}
+
+Sütundaki değerler sona erdiğinde, ClickHouse bunları sütun veri türü için varsayılan değerlerle değiştirir. Veri bölümündeki tüm sütun değerleri sona ererse, ClickHouse bu sütunu bir dosya sistemindeki veri bölümünden siler.
+
+Bu `TTL` yan tümcesi anahtar sütunlar için kullanılamaz.
+
+Örnekler:
+
+TTL ile tablo oluşturma
+
+``` sql
+CREATE TABLE example_table
+(
+ d DateTime,
+ a Int TTL d + INTERVAL 1 MONTH,
+ b Int TTL d + INTERVAL 1 MONTH,
+ c String
+)
+ENGINE = MergeTree
+PARTITION BY toYYYYMM(d)
+ORDER BY d;
+```
+
+Varolan bir tablonun sütununa TTL ekleme
+
+``` sql
+ALTER TABLE example_table
+ MODIFY COLUMN
+ c String TTL d + INTERVAL 1 DAY;
+```
+
+Sütun TTL değiştirme
+
+``` sql
+ALTER TABLE example_table
+ MODIFY COLUMN
+ c String TTL d + INTERVAL 1 MONTH;
+```
+
+### Tablo TTL {#mergetree-table-ttl}
+
+Tablo, süresi dolmuş satırların kaldırılması için bir ifadeye ve parçaların arasında otomatik olarak taşınması için birden fazla ifadeye sahip olabilir [diskler veya birimler](#table_engine-mergetree-multiple-volumes). Tablodaki satırların süresi dolduğunda, ClickHouse ilgili tüm satırları siler. Parça taşıma özelliği için, bir parçanın tüm satırları hareket ifadesi ölçütlerini karşılaması gerekir.
+
+``` sql
+TTL expr [DELETE|TO DISK 'aaa'|TO VOLUME 'bbb'], ...
+```
+
+TTL kuralı türü her TTL ifadesini takip edebilir. İfade tatmin edildikten sonra yapılacak bir eylemi etkiler (şimdiki zamana ulaşır):
+
+- `DELETE` - süresi dolmuş satırları sil (varsayılan eylem);
+- `TO DISK 'aaa'` - parçayı diske taşı `aaa`;
+- `TO VOLUME 'bbb'` - parçayı diske taşı `bbb`.
+
+Örnekler:
+
+TTL ile tablo oluşturma
+
+``` sql
+CREATE TABLE example_table
+(
+ d DateTime,
+ a Int
+)
+ENGINE = MergeTree
+PARTITION BY toYYYYMM(d)
+ORDER BY d
+TTL d + INTERVAL 1 MONTH [DELETE],
+ d + INTERVAL 1 WEEK TO VOLUME 'aaa',
+ d + INTERVAL 2 WEEK TO DISK 'bbb';
+```
+
+Tablonun TTL değiştirme
+
+``` sql
+ALTER TABLE example_table
+ MODIFY TTL d + INTERVAL 1 DAY;
+```
+
+**Verileri Kaldırma**
+
+ClickHouse veri parçalarını birleştirdiğinde süresi dolmuş bir TTL ile veri kaldırılır.
+
+ClickHouse, verilerin süresi dolduğunu gördüğünde, zamanlama dışı bir birleştirme gerçekleştirir. Bu tür birleştirmelerin sıklığını kontrol etmek için şunları ayarlayabilirsiniz [merge\_with\_ttl\_timeout](#mergetree_setting-merge_with_ttl_timeout). Değer çok düşükse, çok fazla kaynak tüketebilecek birçok zamanlama dışı birleştirme gerçekleştirir.
+
+Gerçekleştir theirseniz `SELECT` birleştirme arasında sorgu, süresi dolmuş veri alabilirsiniz. Bunu önlemek için, [OPTIMIZE](../../../sql_reference/statements/misc.md#misc_operations-optimize) önce sorgu `SELECT`.
+
+## Veri Depolama İçin Birden Fazla Blok Cihazı Kullanma {#table_engine-mergetree-multiple-volumes}
+
+### Giriş {#introduction}
+
+`MergeTree` aile tablo motorları birden fazla blok cihazlarda veri saklayabilirsiniz. Örneğin, belirli bir tablonun verileri örtük olarak bölündüğünde yararlı olabilir “hot” ve “cold”. En son veriler düzenli olarak talep edilir, ancak yalnızca az miktarda alan gerektirir. Aksine, yağ kuyruklu tarihsel veriler nadiren talep edilir. Birkaç disk varsa, “hot” veriler hızlı disklerde (örneğin, NVMe SSD'ler veya bellekte) bulunabilir; “cold” veri-nispeten yavaş olanlar (örneğin, HDD).
+
+Veri kısmı için minimum hareketli birimdir `MergeTree`- motor masaları. Bir parçaya ait veriler bir diskte saklanır. Veri parçaları arka planda diskler arasında (kullanıcı ayarlarına göre) ve aynı zamanda [ALTER](../../../sql_reference/statements/alter.md#alter_move-partition) sorgular.
+
+### Şartlar {#terms}
+
+- Disk — Block device mounted to the filesystem.
+- Default disk — Disk that stores the path specified in the [yol](../../../operations/server_configuration_parameters/settings.md#server_configuration_parameters-path) sunucu ayarı.
+- Volume — Ordered set of equal disks (similar to [JBOD](https://en.wikipedia.org/wiki/Non-RAID_drive_architectures)).
+- Storage policy — Set of volumes and the rules for moving data between them.
+
+Açıklanan varlıklara verilen isimler sistem tablolarında bulunabilir, [sistem.storage\_policies](../../../operations/system_tables.md#system_tables-storage_policies) ve [sistem.diskler](../../../operations/system_tables.md#system_tables-disks). Bir tablo için yapılandırılmış depolama ilkelerinden birini uygulamak için `storage_policy` ayarı `MergeTree`- motor aile tabloları.
+
+### Yapılandırma {#table_engine-mergetree-multiple-volumes-configure}
+
+Diskler, birimler ve depolama politikaları içinde bildirilmelidir `` ana dosyada ya etiket `config.xml` veya farklı bir dosyada `config.d` dizin.
+
+Yapılandırma yapısı:
+
+``` xml
+
+
+
+ /mnt/fast_ssd/clickhouse
+
+
+ /mnt/hdd1/clickhouse
+ 10485760
+
+
+ /mnt/hdd2/clickhouse
+ 10485760
+
+
+ ...
+
+
+ ...
+
+```
+
+Etiketler:
+
+- `` — Disk name. Names must be different for all disks.
+- `path` — path under which a server will store data (`data` ve `shadow` klasörler) ile Sonlandır shouldılmalıdır ‘/’.
+- `keep_free_space_bytes` — the amount of free disk space to be reserved.
+
+Disk tanımının sırası önemli değildir.
+
+Depolama ilkeleri yapılandırma biçimlendirme:
+
+``` xml
+
+ ...
+
+
+
+
+ disk_name_from_disks_configuration
+ 1073741824
+
+
+
+
+
+
+ 0.2
+
+
+
+
+
+
+
+ ...
+
+```
+
+Etiketler:
+
+- `policy_name_N` — Policy name. Policy names must be unique.
+- `volume_name_N` — Volume name. Volume names must be unique.
+- `disk` — a disk within a volume.
+- `max_data_part_size_bytes` — the maximum size of a part that can be stored on any of the volume's disks.
+- `move_factor` — when the amount of available space gets lower than this factor, data automatically start to move on the next volume if any (by default, 0.1).
+
+Cofiguration örnekleri:
+
+``` xml
+
+ ...
+
+
+
+
+ disk1
+ disk2
+
+
+
+
+
+
+
+ fast_ssd
+ 1073741824
+
+
+ disk1
+
+
+ 0.2
+
+
+ ...
+
+```
+
+Verilen örnekte, `hdd_in_order` politika uygular [Ro -und-robin](https://en.wikipedia.org/wiki/Round-robin_scheduling) yaklaşma. Böylece bu politika yalnızca bir birim tanımlar (`single`), veri parçaları tüm disklerinde dairesel sırayla saklanır. Bu tür bir politika, sisteme birkaç benzer disk takılıysa, ancak RAID yapılandırılmamışsa oldukça yararlı olabilir. Her bir disk sürücüsünün güvenilir olmadığını ve bunu 3 veya daha fazla çoğaltma faktörü ile telafi etmek isteyebileceğinizi unutmayın.
+
+Sistemde farklı türde diskler varsa, `moving_from_ssd_to_hdd` politika yerine kullanılabilir. Birim `hot` bir SSD disk oluşur (`fast_ssd`) ve bu birimde saklanabilecek bir parçanın maksimum boyutu 1GB. Tüm parçaları ile boyutu daha büyük 1 GB üzerinde doğrudan saklanır `cold` bir HDD diski içeren birim `disk1`.
+Ayrıca, bir kez disk `fast_ssd` 80'den fazla % tarafından doldurulur, veri transfer edilecektir `disk1` bir arka plan işlemi ile.
+
+Depolama ilkesi içindeki birim numaralandırma sırası önemlidir. Bir birim aşırı doldurulduktan sonra, veriler bir sonrakine taşınır. Disk numaralandırma sırası da önemlidir, çünkü veriler sırayla depolanır.
+
+Bir tablo oluştururken, yapılandırılmış depolama ilkelerinden birini ona uygulayabilirsiniz:
+
+``` sql
+CREATE TABLE table_with_non_default_policy (
+ EventDate Date,
+ OrderID UInt64,
+ BannerID UInt64,
+ SearchPhrase String
+) ENGINE = MergeTree
+ORDER BY (OrderID, BannerID)
+PARTITION BY toYYYYMM(EventDate)
+SETTINGS storage_policy = 'moving_from_ssd_to_hdd'
+```
+
+Bu `default` depolama ilkesi, Yalnızca verilen bir diskten oluşan yalnızca bir birim kullanmayı ima eder ``. Bir tablo oluşturulduktan sonra, depolama ilkesi değiştirilemez.
+
+### Ayrıntı {#details}
+
+Bu durumda `MergeTree` tablolar, veriler diske farklı şekillerde giriyor:
+
+- Bir ekleme sonucunda (`INSERT` sorgu).
+- Arka plan birleştirmeleri sırasında ve [mutasyonlar](../../../sql_reference/statements/alter.md#alter-mutations).
+- Başka bir kopyadan indirirken.
+- Bölüm Don ofması sonucu [ALTER TABLE … FREEZE PARTITION](../../../sql_reference/statements/alter.md#alter_freeze-partition).
+
+Mutasyonlar ve bölüm dondurma hariç tüm bu durumlarda, bir parça verilen depolama politikasına göre bir birim ve bir diskte saklanır:
+
+1. Bir parçayı depolamak için yeterli disk alanına sahip olan ilk birim (tanım sırasına göre) (`unreserved_space > current_part_size`) ve belirli bir boyuttaki parçaların saklanmasına izin verir (`max_data_part_size_bytes > current_part_size`) seçilir.
+2. Bu birimde, önceki veri yığınını depolamak için kullanılan ve parça boyutundan daha fazla boş alana sahip olan diski izleyen disk seçilir (`unreserved_space - keep_free_space_bytes > current_part_size`).
+
+Kap hoodut underun altında, [sabit linkler](https://en.wikipedia.org/wiki/Hard_link). Farklı diskler arasındaki sabit bağlantılar desteklenmez, bu nedenle bu gibi durumlarda ortaya çıkan parçalar ilk disklerle aynı disklerde saklanır.
+
+Arka planda, parçalar boş alan miktarına göre hacimler arasında taşınır (`move_factor` parametre) sırasına göre birimler yapılandırma dosyasında beyan edilir.
+Veriler asla sonuncudan ve birincisine aktarılmaz. Bir sistem tabloları kullanabilirsiniz [sistem.part\_log](../../../operations/system_tables.md#system_tables-part-log) (alan `type = MOVE_PART`) ve [sistem.parçalar](../../../operations/system_tables.md#system_tables-parts) (alanlar `path` ve `disk`) arka plan hareketlerini izlemek için. Ayrıca, ayrıntılı bilgi sunucu günlüklerinde bulunabilir.
+
+Kullanıcı, sorguyu kullanarak bir bölümü veya bölümü bir birimden diğerine taşımaya zorlayabilir [ALTER TABLE … MOVE PART\|PARTITION … TO VOLUME\|DISK …](../../../sql_reference/statements/alter.md#alter_move-partition), arka plan işlemleri için tüm kısıtlamalar dikkate alınır. Sorgu, kendi başına bir hareket başlatır ve tamamlanması için arka plan işlemleri beklemez. Yeterli boş alan yoksa veya gerekli koşullardan herhangi biri karşılanmazsa kullanıcı bir hata mesajı alır.
+
+Veri taşıma veri çoğaltma ile müdahale etmez. Bu nedenle, farklı depolama ilkeleri aynı tablo için farklı yinelemeler üzerinde belirtilebilir.
+
+Arka plan birleşimlerinin ve mutasyonlarının tamamlanmasından sonra, eski parçalar yalnızca belirli bir süre sonra çıkarılır (`old_parts_lifetime`).
+Bu süre zarfında, diğer birimlere veya disklere taşınmazlar. Bu nedenle, parçalar nihayet çıkarılıncaya kadar, işgal edilen disk alanının değerlendirilmesi için hala dikkate alınır.
+
+[Orijinal makale](https://clickhouse.tech/docs/ru/operations/table_engines/mergetree/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/replacingmergetree.md b/docs/tr/engines/table_engines/mergetree_family/replacingmergetree.md
new file mode 100644
index 0000000000..baf2fc98b0
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/replacingmergetree.md
@@ -0,0 +1,69 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 33
+toc_title: ReplacingMergeTree
+---
+
+# ReplacingMergeTree {#replacingmergetree}
+
+Motor farklıdır [MergeTree](mergetree.md#table_engines-mergetree) aynı birincil anahtar değerine sahip yinelenen girdileri kaldırır (veya daha doğru bir şekilde, aynı [sıralama anahtarı](mergetree.md) değer).
+
+Veri tekilleştirme yalnızca birleştirme sırasında oluşur. Birleştirme, arka planda bilinmeyen bir zamanda gerçekleşir, bu nedenle bunu planlayamazsınız. Bazı veriler işlenmemiş kalabilir. Kullanarak programsız bir birleştirme çalıştırabilirsiniz, ancak `OPTIMIZE` sorgu, kullanmaya güvenmeyin, çünkü `OPTIMIZE` sorgu büyük miktarda veri okuyacak ve yazacaktır.
+
+Böyle, `ReplacingMergeTree` yerden tasarruf etmek için arka planda yinelenen verileri temizlemek için uygundur, ancak kopyaların yokluğunu garanti etmez.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE = ReplacingMergeTree([ver])
+[PARTITION BY expr]
+[ORDER BY expr]
+[PRIMARY KEY expr]
+[SAMPLE BY expr]
+[SETTINGS name=value, ...]
+```
+
+İstek parametrelerinin açıklaması için bkz. [istek açıklaması](../../../sql_reference/statements/create.md).
+
+**ReplacingMergeTree Parametreleri**
+
+- `ver` — column with version. Type `UInt*`, `Date` veya `DateTime`. İsteğe bağlı parametre.
+
+ Birleş whenirken, `ReplacingMergeTree` aynı birincil anahtara sahip tüm satırlardan sadece bir tane bırakır:
+
+ - Seç inimde son, eğer `ver` set değil.
+ - Maksimum sürümü ile, eğer `ver` belirtilen.
+
+**Sorgu yan tümceleri**
+
+Oluştururken bir `ReplacingMergeTree` tablo aynı [yanlar](mergetree.md) oluşturul ,urken olduğu gibi gerekli `MergeTree` Tablo.
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın ve mümkünse eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE [=] ReplacingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity, [ver])
+```
+
+Hariç tüm parametreler `ver` içinde olduğu gibi aynı anlama sahip `MergeTree`.
+
+- `ver` - sürümü ile sütun. İsteğe bağlı parametre. Bir açıklama için yukarıdaki metne bakın.
+
+
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/replacingmergetree/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/replication.md b/docs/tr/engines/table_engines/mergetree_family/replication.md
new file mode 100644
index 0000000000..e9890c2652
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/replication.md
@@ -0,0 +1,218 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 31
+toc_title: "Veri \xC7o\u011Faltma"
+---
+
+# Veri Çoğaltma {#table_engines-replication}
+
+Çoğaltma yalnızca mergetree ailesindeki tablolar için desteklenir:
+
+- ReplicatedMergeTree
+- ReplicatedSummingMergeTree
+- ReplicatedReplacingMergeTree
+- ReplicatedAggregatingMergeTree
+- ReplicatedCollapsingMergeTree
+- ReplicatedVersionedCollapsingMergetree
+- ReplicatedGraphiteMergeTree
+
+Çoğaltma, tüm sunucu değil, tek bir tablo düzeyinde çalışır. Bir sunucu hem çoğaltılmış hem de çoğaltılmamış tabloları aynı anda depolayabilir.
+
+Çoğaltma, parçaya bağlı değildir. Her parçanın kendi bağımsız çoğaltması vardır.
+
+İçin sıkıştırılmış veri `INSERT` ve `ALTER` sorgular çoğaltılır (daha fazla bilgi için bkz. [ALTER](../../../sql_reference/statements/alter.md#query_language_queries_alter)).
+
+`CREATE`, `DROP`, `ATTACH`, `DETACH` ve `RENAME` sorgular tek bir sunucuda yürütülür ve çoğaltılmaz:
+
+- Bu `CREATE TABLE` sorgu sorgu çalıştırıldığı sunucuda yeni bir replicatable tablo oluşturur. Bu tablo diğer sunucularda zaten varsa, yeni bir yineleme ekler.
+- Bu `DROP TABLE` sorgu, sorgunun çalıştırıldığı sunucuda bulunan yinelemeyi siler.
+- Bu `RENAME` sorgu yinelemeler birinde tabloyu yeniden adlandırır. Başka bir deyişle, çoğaltılmış tablolar farklı yinelemeler üzerinde farklı adlara sahip olabilir.
+
+ClickHouse kullanır [Apache ZooKeeper](https://zookeeper.apache.org) kopyaları meta bilgilerini saklamak için. ZooKeeper sürüm 3.4.5 veya daha yeni kullanın.
+
+Çoğaltma kullanmak için, parametreleri [zookeeper](../../../operations/server_configuration_parameters/settings.md#server-settings_zookeeper) sunucu yapılandırma bölümü.
+
+!!! attention "Dikkat"
+ Güvenlik ayarını ihmal etmeyin. ClickHouse destekler `digest` [ACLL şeması](https://zookeeper.apache.org/doc/current/zookeeperProgrammers.html#sc_ZooKeeperAccessControl) ZooKeeper Güvenlik alt sisteminin.
+
+ZooKeeper kümesinin adreslerini ayarlama örneği:
+
+``` xml
+
+
+ example1
+ 2181
+
+
+ example2
+ 2181
+
+
+ example3
+ 2181
+
+
+```
+
+Varolan herhangi bir ZooKeeper kümesini belirtebilirsiniz ve sistem kendi verileri için bir dizin kullanır (replicatable tablo oluştururken dizin belirtilir).
+
+Zookeeper yapılandırma dosyasında ayarlanmamışsa, çoğaltılmış tablolar oluşturamazsınız ve varolan çoğaltılmış tablolar salt okunur olacaktır.
+
+ZooKeeper kullanılmaz `SELECT` çoğaltma performansını etkilemez çünkü sorgular `SELECT` ve sorgular, çoğaltılmamış tablolar için yaptıkları kadar hızlı çalışır. Dağıtılmış çoğaltılmış tabloları sorgularken, ClickHouse davranışı ayarlar tarafından denetlenir [max\_replica\_delay\_for\_distributed\_queries](../../../operations/settings/settings.md#settings-max_replica_delay_for_distributed_queries) ve [fallback\_to\_stale\_replicas\_for\_distributed\_queries](../../../operations/settings/settings.md#settings-fallback_to_stale_replicas_for_distributed_queries).
+
+Her biri için `INSERT` sorgu, yaklaşık on girişleri zookeeper birkaç işlemler aracılığıyla eklenir. (Daha kesin olmak gerekirse, bu eklenen her veri bloğu içindir; bir ekleme sorgusu her bir blok veya bir blok içerir `max_insert_block_size = 1048576` satırlar.) Bu, biraz daha uzun gecikmelere yol açar `INSERT` çoğaltılmamış tablolarla karşılaştırıldığında. Ancak, birden fazla olmayan gruplar halinde veri eklemek için önerileri izlerseniz `INSERT` saniyede, herhangi bir sorun yaratmaz. Bir ZooKeeper kümesini koordine etmek için kullanılan tüm ClickHouse kümesinin toplam birkaç yüzü vardır `INSERTs` saniyede. Veri eklerindeki verim (saniyede satır sayısı), çoğaltılmamış veriler için olduğu kadar yüksektir.
+
+Çok büyük kümeler için, farklı kırıklar için farklı ZooKeeper kümelerini kullanabilirsiniz. Ancak, bu Yandex'de gerekli değildir.Metrica küme (yaklaşık 300 sunucu).
+
+Çoğaltma zaman uyumsuz ve çok ana. `INSERT` sorgular (yanı sıra `ALTER`) mevcut herhangi bir sunucuya gönderilebilir. Veri sorgu çalıştırıldığı sunucuda eklenir ve sonra diğer sunuculara kopyalanır. Zaman uyumsuz olduğundan, son eklenen veriler bazı gecikme ile diğer yinelemeler görünür. Yinelemelerin bir kısmı mevcut değilse, veriler kullanılabilir olduklarında yazılır. Bir çoğaltma varsa, gecikme, sıkıştırılmış veri bloğunu ağ üzerinden aktarmak için gereken süredir.
+
+Varsayılan olarak, bir INSERT sorgusu yalnızca bir yinelemeden veri yazma onayı bekler. Verileri başarıyla yalnızca bir yineleme için yazılmıştır ve bu yineleme ile sunucu varolmaya sona erer, depolanan veriler kaybolur. Birden çok yinelemeden veri yazma onayını almayı etkinleştirmek için `insert_quorum` seçenek.
+
+Her veri bloğu atomik olarak yazılır. Ekle sorgusu kadar bloklara ayrılmıştır `max_insert_block_size = 1048576` satırlar. Diğer bir deyişle, `INSERT` sorgu 1048576 satırdan daha az, atomik olarak yapılır.
+
+Veri blokları tekilleştirilmiştir. Aynı veri bloğunun (aynı sırayla aynı satırları içeren aynı boyuttaki veri blokları) birden fazla yazımı için, blok yalnızca bir kez yazılır. Bunun nedeni, istemci uygulaması verilerin DB'YE yazılıp yazılmadığını bilmediğinde ağ arızaları durumunda, `INSERT` sorgu sadece tekrar edilebilir. Hangi çoğaltma eklerinin aynı verilerle gönderildiği önemli değildir. `INSERTs` idempotent vardır. Tekilleştirme parametreleri tarafından kontrol edilir [merge\_tree](../../../operations/server_configuration_parameters/settings.md#server_configuration_parameters-merge_tree) sunucu ayarları.
+
+Çoğaltma sırasında, yalnızca eklenecek kaynak veriler ağ üzerinden aktarılır. Daha fazla veri dönüşümü (birleştirme), tüm kopyalarda aynı şekilde koordine edilir ve gerçekleştirilir. Bu, ağ kullanımını en aza indirir; bu, çoğaltmaların farklı veri merkezlerinde bulunduğu zaman çoğaltmanın iyi çalıştığı anlamına gelir. (Farklı veri merkezlerinde çoğaltmanın çoğaltmanın ana hedefi olduğunu unutmayın .)
+
+Aynı verilerin çoğaltmaları herhangi bir sayıda olabilir. Üye.Metrica üretimde çift çoğaltma kullanır. Her sunucu, bazı durumlarda RAID-5 veya RAID-6 ve RAID-10 kullanır. Bu nispeten güvenilir ve kullanışlı bir çözümdür.
+
+Sistem, yinelemelerdeki veri senkronizasyonunu izler ve bir hatadan sonra kurtarabilir. Yük devretme otomatik (verilerde küçük farklılıklar için) veya yarı otomatik (veriler çok fazla farklılık gösterdiğinde, bu da bir yapılandırma hatasını gösterebilir).
+
+## Çoğaltılmış Tablolar Oluşturma {#creating-replicated-tables}
+
+Bu `Replicated` önek tablo motoru adına eklenir. Mesela:`ReplicatedMergeTree`.
+
+**Çoğaltılan \* MergeTree parametreleri**
+
+- `zoo_path` — The path to the table in ZooKeeper.
+- `replica_name` — The replica name in ZooKeeper.
+
+Örnek:
+
+``` sql
+CREATE TABLE table_name
+(
+ EventDate DateTime,
+ CounterID UInt32,
+ UserID UInt32
+) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/table_name', '{replica}')
+PARTITION BY toYYYYMM(EventDate)
+ORDER BY (CounterID, EventDate, intHash32(UserID))
+SAMPLE BY intHash32(UserID)
+```
+
+
+
+Kullanımdan kaldırılmış sözdizimi örneği
+
+``` sql
+CREATE TABLE table_name
+(
+ EventDate DateTime,
+ CounterID UInt32,
+ UserID UInt32
+) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{layer}-{shard}/table_name', '{replica}', EventDate, intHash32(UserID), (CounterID, EventDate, intHash32(UserID), EventTime), 8192)
+```
+
+
+
+Örnekte gösterildiği gibi, bu parametreler kıvırcık köşeli ayraçlarda ikameler içerebilir. İkame edilen değerler ‘macros’ yapılandırma dosyasının bölümü. Örnek:
+
+``` xml
+
+ 05
+ 02
+ example05-02-1.yandex.ru
+
+```
+
+Zookeeper tablonun yolunu her çoğaltılmış tablo için benzersiz olmalıdır. Farklı parçalardaki tabloların farklı yolları olmalıdır.
+Bu durumda, yol aşağıdaki parçalardan oluşur:
+
+`/clickhouse/tables/` ortak önek. Tam olarak bunu kullanmanızı öneririz.
+
+`{layer}-{shard}` shard tanımlayıcısıdır. Bu örnekte Yandex'den beri iki bölümden oluşmaktadır.Metrica küme iki seviyeli sharding kullanır. Çoğu görev için, yalnızca shard tanımlayıcısına genişletilecek olan {shard} ikamesini bırakabilirsiniz.
+
+`table_name` ZooKeeper tablo için düğüm adıdır. Tablo adı ile aynı yapmak için iyi bir fikirdir. Açıkça tanımlanır, çünkü tablo adının aksine, bir yeniden adlandırma sorgusundan sonra değişmez.
+*HINT*: önüne bir veritabanı adı ekleyebilirsiniz `table_name` yanında. E. g. `db_name.table_name`
+
+Çoğaltma adı, aynı tablonun farklı yinelemelerini tanımlar. Örnekte olduğu gibi bunun için sunucu adını kullanabilirsiniz. Adın sadece her parça içinde benzersiz olması gerekir.
+
+Değiştirmeleri kullanmak yerine parametreleri açıkça tanımlayabilirsiniz. Bu, test etmek ve küçük kümeleri yapılandırmak için uygun olabilir. Ancak, dağıtılmış DDL sorguları kullanamazsınız (`ON CLUSTER` bu durumda).
+
+Büyük kümelerle çalışırken, hata olasılığını azalttıkları için değiştirmeleri kullanmanızı öneririz.
+
+Run the `CREATE TABLE` her yineleme üzerinde sorgu. Bu sorgu, yeni bir çoğaltılmış tablo oluşturur veya varolan bir yeni bir yineleme ekler.
+
+Tablo zaten diğer yinelemeler üzerinde bazı veriler içerdikten sonra yeni bir yineleme eklerseniz, verileri diğer yinelemeler için yeni bir sorgu çalıştırdıktan sonra kopyalanır. Başka bir deyişle, yeni çoğaltma kendisini diğerleriyle eşitler.
+
+Bir yineleme silmek için çalıştırın `DROP TABLE`. However, only one replica is deleted – the one that resides on the server where you run the query.
+
+## Arızalardan Sonra Kurtarma {#recovery-after-failures}
+
+Bir sunucu başlatıldığında ZooKeeper kullanılamıyorsa, çoğaltılmış tablolar salt okunur moda geçer. Sistem periyodik olarak ZooKeeper bağlanmaya çalışır.
+
+ZooKeeper sırasında kullanılamıyorsa bir `INSERT`, veya ZooKeeper ile etkileşimde bulunurken bir hata oluşur, bir istisna atılır.
+
+ZooKeeper bağlandıktan sonra, sistem yerel dosya sistemindeki veri kümesinin beklenen veri kümesiyle eşleşip eşleşmediğini kontrol eder (ZooKeeper bu bilgileri saklar). Küçük tutarsızlıklar varsa, sistem verileri kopyalarla senkronize ederek bunları çözer.
+
+Sistem bozuk veri parçalarını (yanlış dosya boyutu ile) veya tanınmayan parçaları (dosya sistemine yazılmış ancak Zookeeper'da kaydedilmemiş parçalar) tespit ederse, bunları `detached` alt dizin (silinmez). Eksik parçalar kopyalardan kopyalanır.
+
+Clickhouse'un büyük miktarda veriyi otomatik olarak silme gibi yıkıcı eylemler gerçekleştirmediğini unutmayın.
+
+Sunucu başlatıldığında (veya ZooKeeper ile yeni bir oturum kurduğunda), yalnızca tüm dosyaların miktarını ve boyutlarını kontrol eder. Dosya boyutları eşleşirse, ancak bayt ortasında bir yerde değiştirilmişse, bu hemen algılanmaz, ancak yalnızca bir dosya için verileri okumaya çalışırken algılanmaz. `SELECT` sorgu. Sorgu, eşleşen olmayan bir sağlama toplamı veya sıkıştırılmış bir bloğun boyutu hakkında bir özel durum atar. Bu durumda, veri parçaları doğrulama kuyruğuna eklenir ve gerekirse kopyalardan kopyalanır.
+
+Yerel veri kümesi beklenenden çok fazla farklıysa, bir güvenlik mekanizması tetiklenir. Sunucu bunu günlüğe girer ve başlatmayı reddeder. Bunun nedeni, bu durumda, bir parçadaki bir kopya yanlışlıkla farklı bir parçadaki bir kopya gibi yapılandırılmışsa gibi bir yapılandırma hatası gösterebilir. Ancak, bu mekanizma için eşikleri oldukça düşük ayarlanır ve bu durum normal hata kurtarma sırasında ortaya çıkabilir. Bu durumda, veriler yarı otomatik olarak geri yüklenir “pushing a button”.
+
+Kurtarma işlemini başlatmak için düğümü oluşturun `/path_to_table/replica_name/flags/force_restore_data` herhangi bir içerik ile ZooKeeper veya tüm çoğaltılmış tabloları geri yüklemek için komutu çalıştırın:
+
+``` bash
+sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data
+```
+
+Sunucuyu yeniden başlatın. Başlangıçta, sunucu bu bayrakları siler ve kurtarma işlemini başlatır.
+
+## Tam Veri Kaybından Sonra Kurtarma {#recovery-after-complete-data-loss}
+
+Tüm veriler ve meta veriler sunuculardan birinden kaybolduysa, kurtarma için şu adımları izleyin:
+
+1. Clickhouse'u sunucuya yükleyin. Bunları kullanırsanız, shard tanımlayıcısı ve yinelemeleri içeren yapılandırma dosyasında doğru değiştirmelerin tanımlayın.
+2. Sunucularda el ile çoğaltılması gereken yinelenmemiş tablolar varsa, verilerini bir kopyadan kopyalayın (dizinde `/var/lib/clickhouse/data/db_name/table_name/`).
+3. Bulunan tablo tanım copylarını kopyala `/var/lib/clickhouse/metadata/` bir kopyadan. Tablo tanımlarında bir parça veya çoğaltma tanımlayıcısı açıkça tanımlanmışsa, bu kopyaya karşılık gelecek şekilde düzeltin. (Alternatif olarak, sunucuyu başlatın ve tüm `ATTACH TABLE` içinde olması gereken sorgular .sql dosyaları `/var/lib/clickhouse/metadata/`.)
+4. Kurtarma işlemini başlatmak için ZooKeeper düğümünü oluşturun `/path_to_table/replica_name/flags/force_restore_data` herhangi bir içerikle veya tüm çoğaltılmış tabloları geri yüklemek için komutu çalıştırın: `sudo -u clickhouse touch /var/lib/clickhouse/flags/force_restore_data`
+
+Ardından sunucuyu başlatın (zaten çalışıyorsa yeniden başlatın). Veriler kopyalardan indirilecektir.
+
+Alternatif bir kurtarma seçeneği zookeeper kayıp yineleme hakkında bilgi silmektir (`/path_to_table/replica_name`), daha sonra açıklandığı gibi yinelemeyi tekrar oluşturun “[Çoğaltılmış tablolar oluşturma](#creating-replicated-tables)”.
+
+Kurtarma sırasında ağ bant genişliği üzerinde herhangi bir kısıtlama yoktur. Aynı anda birçok yinelemeyi geri yüklüyorsanız bunu aklınızda bulundurun.
+
+## Mergetree'den Replicatedmergetree'ye Dönüştürme {#converting-from-mergetree-to-replicatedmergetree}
+
+Terimi kullanıyoruz `MergeTree` tüm tablo motorlarına başvurmak için `MergeTree family` için aynı `ReplicatedMergeTree`.
+
+Eğer olsaydı bir `MergeTree` el ile çoğaltılmış tablo, çoğaltılmış bir tabloya dönüştürebilirsiniz. Zaten büyük miktarda veri topladıysanız bunu yapmanız gerekebilir. `MergeTree` tablo ve şimdi çoğaltmayı etkinleştirmek istiyorsunuz.
+
+Veriler çeşitli yinelemelerde farklılık gösteriyorsa, önce onu eşitleyin veya bu verileri biri dışındaki tüm yinelemelerde silin.
+
+Varolan MergeTree tablosunu yeniden adlandırın, sonra bir `ReplicatedMergeTree` eski adı olan tablo.
+Eski tablodan veri taşıma `detached` yeni tablo verileri ile dizin içindeki alt dizin (`/var/lib/clickhouse/data/db_name/table_name/`).
+Sonra koş `ALTER TABLE ATTACH PARTITION` bu veri parçalarını çalışma kümesine eklemek için yinelemelerden birinde.
+
+## Replicatedmergetree'den Mergetree'ye Dönüştürme {#converting-from-replicatedmergetree-to-mergetree}
+
+Farklı bir adla bir MergeTree tablosu oluşturun. İle dizinden tüm verileri taşıyın `ReplicatedMergeTree` yeni tablonun veri dizinine tablo verileri. Sonra Sil `ReplicatedMergeTree` tablo ve sunucuyu yeniden başlatın.
+
+Eğer bir kurtulmak istiyorsanız `ReplicatedMergeTree` sunucu başlatmadan tablo:
+
+- İlgili sil `.sql` meta veri dizinindeki dosya (`/var/lib/clickhouse/metadata/`).
+- ZooKeeper ilgili yolu silin (`/path_to_table/replica_name`).
+
+Bundan sonra, sunucuyu başlatabilir, bir `MergeTree` tablo, verileri kendi dizinine taşıyın ve sonra sunucuyu yeniden başlatın.
+
+## Zookeeper kümesindeki meta veriler kaybolduğunda veya zarar gördüğünde kurtarma {#recovery-when-metadata-in-the-zookeeper-cluster-is-lost-or-damaged}
+
+ZooKeeper içindeki veriler kaybolduysa veya hasar gördüyse, verileri yukarıda açıklandığı gibi yinelenmemiş bir tabloya taşıyarak kaydedebilirsiniz.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/replication/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/summingmergetree.md b/docs/tr/engines/table_engines/mergetree_family/summingmergetree.md
new file mode 100644
index 0000000000..15a58064ab
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/summingmergetree.md
@@ -0,0 +1,141 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 34
+toc_title: SummingMergeTree
+---
+
+# SummingMergeTree {#summingmergetree}
+
+Motor devralır [MergeTree](mergetree.md#table_engines-mergetree). Fark, veri parçalarını birleştirirken `SummingMergeTree` tablolar ClickHouse tüm satırları aynı birincil anahtarla değiştirir (veya daha doğru olarak, aynı [sıralama anahtarı](mergetree.md)) sayısal veri türüne sahip sütunlar için özetlenen değerleri içeren bir satır ile. Sıralama anahtarı, tek bir anahtar değeri çok sayıda satıra karşılık gelecek şekilde oluşturulursa, bu, depolama birimini önemli ölçüde azaltır ve veri seçimini hızlandırır.
+
+Motoru birlikte kullanmanızı öneririz `MergeTree`. Mağaza tam veri `MergeTree` tablo ve kullanım `SummingMergeTree` örneğin, rapor hazırlarken toplu veri depolamak için. Böyle bir yaklaşım, yanlış oluşturulmuş bir birincil anahtar nedeniyle değerli verileri kaybetmenizi önleyecektir.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE = SummingMergeTree([columns])
+[PARTITION BY expr]
+[ORDER BY expr]
+[SAMPLE BY expr]
+[SETTINGS name=value, ...]
+```
+
+İstek parametrelerinin açıklaması için bkz. [istek açıklaması](../../../sql_reference/statements/create.md).
+
+**SummingMergeTree parametreleri**
+
+- `columns` - değerlerin özetleneceği sütunların adlarına sahip bir tuple. İsteğe bağlı parametre.
+ Sütunlar sayısal tipte olmalı ve birincil anahtarda olmamalıdır.
+
+ Eğer `columns` belirtilmemiş, ClickHouse birincil anahtarda olmayan bir sayısal veri türü ile tüm sütunlardaki değerleri özetler.
+
+**Sorgu yan tümceleri**
+
+Oluştururken bir `SummingMergeTree` tablo aynı [yanlar](mergetree.md) oluşturul ,urken olduğu gibi gerekli `MergeTree` Tablo.
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın ve mümkünse eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE [=] SummingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity, [columns])
+```
+
+Hariç tüm parametreler `columns` içinde olduğu gibi aynı anlama sahip `MergeTree`.
+
+- `columns` — tuple with names of columns values of which will be summarized. Optional parameter. For a description, see the text above.
+
+
+
+## Kullanım Örneği {#usage-example}
+
+Aşağıdaki tabloyu düşünün:
+
+``` sql
+CREATE TABLE summtt
+(
+ key UInt32,
+ value UInt32
+)
+ENGINE = SummingMergeTree()
+ORDER BY key
+```
+
+Veri Ekle:
+
+``` sql
+INSERT INTO summtt Values(1,1),(1,2),(2,1)
+```
+
+ClickHouse tüm satırları tamamen toplayabilir ([aşağıya bakın](#data-processing)), bu yüzden bir toplama işlevi kullanıyoruz `sum` ve `GROUP BY` sorguda yan tümcesi.
+
+``` sql
+SELECT key, sum(value) FROM summtt GROUP BY key
+```
+
+``` text
+┌─key─┬─sum(value)─┐
+│ 2 │ 1 │
+│ 1 │ 3 │
+└─────┴────────────┘
+```
+
+## Veri İşleme {#data-processing}
+
+Veriler bir tabloya eklendiğinde, bunlar olduğu gibi kaydedilir. ClickHouse, verilerin eklenen bölümlerini periyodik olarak birleştirir ve bu, aynı birincil anahtara sahip satırların toplandığı ve sonuçta elde edilen her veri parçası için bir tane ile değiştirildiği zamandır.
+
+ClickHouse can merge the data parts so that different resulting parts of data cat consist rows with the same primary key, i.e. the summation will be incomplete. Therefore (`SELECT`) bir toplama fonksiyonu [toplam()](../../../sql_reference/aggregate_functions/reference.md#agg_function-sum) ve `GROUP BY` yukarıdaki örnekte açıklandığı gibi yan tümcesi bir sorguda kullanılmalıdır.
+
+### Toplama İçin Ortak Kurallar {#common-rules-for-summation}
+
+Sayısal veri türüne sahip sütunlardaki değerler özetlenir. Sütun kümesi parametre tarafından tanımlanır `columns`.
+
+Değerler toplamı için tüm sütunlarda 0 ise, satır silinir.
+
+Sütun birincil anahtarda değilse ve özetlenmezse, mevcut olanlardan rasgele bir değer seçilir.
+
+Değerler, birincil anahtardaki sütunlar için özetlenmez.
+
+### Aggregatefunction Sütunlarındaki toplama {#the-summation-in-the-aggregatefunction-columns}
+
+Sütunlar için [AggregateFunction türü](../../../sql_reference/data_types/aggregatefunction.md) ClickHouse olarak davranır [AggregatingMergeTree](aggregatingmergetree.md) işleve göre motor toplama.
+
+### İç İçe Yapılar {#nested-structures}
+
+Tablo, özel bir şekilde işlenen iç içe geçmiş veri yapılarına sahip olabilir.
+
+İç içe geçmiş bir tablonun adı ile bitiyorsa `Map` ve aşağıdaki kriterleri karşılayan en az iki sütun içerir:
+
+- ilk sütun sayısal `(*Int*, Date, DateTime)` veya bir dize `(String, FixedString)` hadi diyelim `key`,
+- diğer sütunlar aritmetik `(*Int*, Float32/64)` hadi diyelim `(values...)`,
+
+sonra bu iç içe geçmiş tablo bir eşleme olarak yorumlanır `key => (values...)` ve satırlarını birleştirirken, iki veri kümesinin öğeleri şu şekilde birleştirilir `key` karşılık gelen bir toplamı ile `(values...)`.
+
+Örnekler:
+
+``` text
+[(1, 100)] + [(2, 150)] -> [(1, 100), (2, 150)]
+[(1, 100)] + [(1, 150)] -> [(1, 250)]
+[(1, 100)] + [(1, 150), (2, 150)] -> [(1, 250), (2, 150)]
+[(1, 100), (2, 150)] + [(1, -100)] -> [(2, 150)]
+```
+
+Veri isterken, [sumMap (anahtar, değer)](../../../sql_reference/aggregate_functions/reference.md) toplama fonksiyonu `Map`.
+
+İç içe geçmiş veri yapısı için, sütunlarının toplamı için sütun kümesinde belirtmeniz gerekmez.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/summingmergetree/)
diff --git a/docs/tr/engines/table_engines/mergetree_family/versionedcollapsingmergetree.md b/docs/tr/engines/table_engines/mergetree_family/versionedcollapsingmergetree.md
new file mode 100644
index 0000000000..b9adb38178
--- /dev/null
+++ b/docs/tr/engines/table_engines/mergetree_family/versionedcollapsingmergetree.md
@@ -0,0 +1,238 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 37
+toc_title: VersionedCollapsingMergeTree
+---
+
+# VersionedCollapsingMergeTree {#versionedcollapsingmergetree}
+
+Bu motor:
+
+- Sürekli değişen nesne durumlarının hızlı yazılmasını sağlar.
+- Arka planda eski nesne durumlarını siler. Bu, depolama hacmini önemli ölçüde azaltır.
+
+Bölümüne bakınız [Çökme](#table_engines_versionedcollapsingmergetree) ayrıntılar için.
+
+Motor devralır [MergeTree](mergetree.md#table_engines-mergetree) ve veri parçalarını birleştirmek için algoritmaya satırları daraltmak için mantığı ekler. `VersionedCollapsingMergeTree` aynı amaca hizmet eder [CollapsingMergeTree](collapsingmergetree.md) ancak, verilerin birden çok iş parçacığıyla herhangi bir sıraya yerleştirilmesine izin veren farklı bir çökme algoritması kullanır. Özellikle, `Version` sütun, yanlış sıraya yerleştirilmiş olsalar bile satırları düzgün bir şekilde daraltmaya yardımcı olur. Tersine, `CollapsingMergeTree` sadece kesinlikle ardışık ekleme sağlar.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE = VersionedCollapsingMergeTree(sign, version)
+[PARTITION BY expr]
+[ORDER BY expr]
+[SAMPLE BY expr]
+[SETTINGS name=value, ...]
+```
+
+Sorgu parametrelerinin açıklaması için bkz: [sorgu açıklaması](../../../sql_reference/statements/create.md).
+
+**Motor Parametreleri**
+
+``` sql
+VersionedCollapsingMergeTree(sign, version)
+```
+
+- `sign` — Name of the column with the type of row: `1` is a “state” satır, `-1` is a “cancel” satır.
+
+ Sütun veri türü olmalıdır `Int8`.
+
+- `version` — Name of the column with the version of the object state.
+
+ Sütun veri türü olmalıdır `UInt*`.
+
+**Sorgu Yan Tümceleri**
+
+Oluştururken bir `VersionedCollapsingMergeTree` tablo, aynı [yanlar](mergetree.md) oluşturul aurken gerekli `MergeTree` Tablo.
+
+
+
+Bir tablo oluşturmak için kullanımdan kaldırılan yöntem
+
+!!! attention "Dikkat"
+ Bu yöntemi yeni projelerde kullanmayın. Mümkünse, eski projeleri yukarıda açıklanan yönteme geçin.
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
+ ...
+) ENGINE [=] VersionedCollapsingMergeTree(date-column [, sampling_expression], (primary, key), index_granularity, sign, version)
+```
+
+Dışındaki tüm parametreler `sign` ve `version` içinde olduğu gibi aynı anlama sahip `MergeTree`.
+
+- `sign` — Name of the column with the type of row: `1` is a “state” satır, `-1` is a “cancel” satır.
+
+ Column Data Type — `Int8`.
+
+- `version` — Name of the column with the version of the object state.
+
+ Sütun veri türü olmalıdır `UInt*`.
+
+
+
+## Çökme {#table_engines-versionedcollapsingmergetree}
+
+### Veriler {#data}
+
+Bazı nesneler için sürekli değişen verileri kaydetmeniz gereken bir durumu düşünün. Bir nesne için bir satıra sahip olmak ve değişiklikler olduğunda satırı güncellemek mantıklıdır. Ancak, depolama alanındaki verileri yeniden yazmayı gerektirdiğinden, güncelleştirme işlemi bir DBMS için pahalı ve yavaştır. Verileri hızlı bir şekilde yazmanız gerekiyorsa güncelleştirme kabul edilemez, ancak değişiklikleri bir nesneye sırayla aşağıdaki gibi yazabilirsiniz.
+
+Kullan... `Sign` satır yazarken sütun. Eğer `Sign = 1` bu, satırın bir nesnenin durumu olduğu anlamına gelir (diyelim “state” satır). Eğer `Sign = -1` aynı özelliklere sahip bir nesnenin durumunun iptal edildiğini gösterir (buna “cancel” satır). Ayrıca kullanın `Version` bir nesnenin her durumunu ayrı bir sayı ile tanımlaması gereken sütun.
+
+Örneğin, kullanıcıların bazı sitede kaç sayfa ziyaret ettiğini ve ne kadar süre orada olduklarını hesaplamak istiyoruz. Bir noktada, kullanıcı etkinliği durumu ile aşağıdaki satırı yazıyoruz:
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┬─Version─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │ 1 |
+└─────────────────────┴───────────┴──────────┴──────┴─────────┘
+```
+
+Bir noktada daha sonra kullanıcı aktivitesinin değişikliğini kaydediyoruz ve aşağıdaki iki satırla yazıyoruz.
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┬─Version─┐
+│ 4324182021466249494 │ 5 │ 146 │ -1 │ 1 |
+│ 4324182021466249494 │ 6 │ 185 │ 1 │ 2 |
+└─────────────────────┴───────────┴──────────┴──────┴─────────┘
+```
+
+İlk satır, nesnenin (kullanıcı) önceki durumunu iptal eder. Dışında iptal edilen Devletin tüm alanlarını kopya shouldlama shouldlıdır `Sign`.
+
+İkinci satır geçerli durumu içerir.
+
+Sadece kullanıcı etkinliğinin son durumuna ihtiyacımız olduğundan, satırlar
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┬─Version─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │ 1 |
+│ 4324182021466249494 │ 5 │ 146 │ -1 │ 1 |
+└─────────────────────┴───────────┴──────────┴──────┴─────────┘
+```
+
+nesnenin geçersiz (eski) durumunu daraltarak silinebilir. `VersionedCollapsingMergeTree` veri parçalarını birleştirirken bunu yapar.
+
+Her değişiklik için neden iki satıra ihtiyacımız olduğunu bulmak için bkz. [Algoritma](#table_engines-versionedcollapsingmergetree-algorithm).
+
+**Kullanımı ile ilgili notlar**
+
+1. Verileri yazan program, iptal etmek için bir nesnenin durumunu hatırlamalıdır. Bu “cancel” dize bir kopyası olmalıdır “state” tersi ile dize `Sign`. Bu, ilk depolama boyutunu arttırır, ancak verileri hızlı bir şekilde yazmanıza izin verir.
+2. Sütunlardaki uzun büyüyen diziler, yazma yükü nedeniyle motorun verimliliğini azaltır. Daha basit veri, daha iyi verim.
+3. `SELECT` sonuçlara itiraz değişiklikleri tarihinin tutarlılık bağlıdır. Ekleme için veri hazırlarken doğru olun. Oturum derinliği gibi negatif olmayan metrikler için negatif değerler gibi tutarsız verilerle öngörülemeyen sonuçlar alabilirsiniz.
+
+### Algoritma {#table_engines-versionedcollapsingmergetree-algorithm}
+
+ClickHouse veri parçalarını birleştirdiğinde, aynı birincil anahtar ve sürüm ve farklı olan her satır çiftini siler `Sign`. Satırların sırası önemli değil.
+
+ClickHouse veri eklediğinde, satırları birincil anahtarla sipariş eder. Eğer... `Version` sütun birincil anahtarda değil, ClickHouse onu birincil anahtara örtük olarak son alan olarak ekler ve sipariş vermek için kullanır.
+
+## Veri Seçme {#selecting-data}
+
+ClickHouse, aynı birincil anahtara sahip tüm satırların aynı sonuçtaki veri bölümünde veya hatta aynı fiziksel sunucuda olacağını garanti etmez. Bu, hem verileri yazmak hem de veri parçalarının daha sonra birleştirilmesi için geçerlidir. Ayrıca, ClickHouse süreçleri `SELECT` birden çok iş parçacıklarıyla sorgular ve sonuçtaki satırların sırasını tahmin edemez. Bu tamamen almak için bir ihtiyaç varsa toplama gerekli olduğu anlamına gelir “collapsed” bir veri `VersionedCollapsingMergeTree` Tablo.
+
+Daraltmayı sonuçlandırmak için, bir sorgu ile bir sorgu yazın `GROUP BY` yan tümce ve işareti için hesap toplama işlevleri. Örneğin, miktarı hesaplamak için kullanın `sum(Sign)` yerine `count()`. Bir şeyin toplamını hesaplamak için şunları kullanın `sum(Sign * x)` yerine `sum(x)` ve Ekle `HAVING sum(Sign) > 0`.
+
+Toplanan `count`, `sum` ve `avg` bu şekilde hesaplanabilir. Toplanan `uniq` bir nesnenin en az bir daraltılmamış durumu varsa hesaplanabilir. Toplanan `min` ve `max` hesaplan becauseamaz çünkü `VersionedCollapsingMergeTree` çökmüş durumların değerlerinin geçmişini kaydetmez.
+
+İle verileri ayıklamak gerekiyorsa “collapsing” ancak toplama olmadan (örneğin, en yeni değerleri belirli koşullarla eşleşen satırların mevcut olup olmadığını kontrol etmek için) `FINAL` değiştirici için `FROM` yan. Bu yaklaşım verimsizdir ve büyük tablolarla kullanılmamalıdır.
+
+## Kullanım Örneği {#example-of-use}
+
+Örnek veriler:
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┬─Version─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │ 1 |
+│ 4324182021466249494 │ 5 │ 146 │ -1 │ 1 |
+│ 4324182021466249494 │ 6 │ 185 │ 1 │ 2 |
+└─────────────────────┴───────────┴──────────┴──────┴─────────┘
+```
+
+Tablo oluşturma:
+
+``` sql
+CREATE TABLE UAct
+(
+ UserID UInt64,
+ PageViews UInt8,
+ Duration UInt8,
+ Sign Int8,
+ Version UInt8
+)
+ENGINE = VersionedCollapsingMergeTree(Sign, Version)
+ORDER BY UserID
+```
+
+Veri ekleme:
+
+``` sql
+INSERT INTO UAct VALUES (4324182021466249494, 5, 146, 1, 1)
+```
+
+``` sql
+INSERT INTO UAct VALUES (4324182021466249494, 5, 146, -1, 1),(4324182021466249494, 6, 185, 1, 2)
+```
+
+Biz iki kullanın `INSERT` iki farklı veri parçası oluşturmak için sorgular. Verileri tek bir sorgu ile eklersek, ClickHouse bir veri parçası oluşturur ve hiçbir zaman birleştirme gerçekleştirmez.
+
+Veri alma:
+
+``` sql
+SELECT * FROM UAct
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┬─Version─┐
+│ 4324182021466249494 │ 5 │ 146 │ 1 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┴─────────┘
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┬─Version─┐
+│ 4324182021466249494 │ 5 │ 146 │ -1 │ 1 │
+│ 4324182021466249494 │ 6 │ 185 │ 1 │ 2 │
+└─────────────────────┴───────────┴──────────┴──────┴─────────┘
+```
+
+Burada ne görüyoruz ve çökmüş parçalar nerede?
+İki veri parçasını iki kullanarak oluşturduk `INSERT` sorgular. Bu `SELECT` sorgu iki iş parçacığında gerçekleştirildi ve sonuç rastgele bir satır sırasıdır.
+Veri bölümleri henüz birleştirilmediği için çökme gerçekleşmedi. ClickHouse biz tahmin edemez zaman içinde bilinmeyen bir noktada veri parçalarını birleştirir.
+
+Bu yüzden toplamaya ihtiyacımız var:
+
+``` sql
+SELECT
+ UserID,
+ sum(PageViews * Sign) AS PageViews,
+ sum(Duration * Sign) AS Duration,
+ Version
+FROM UAct
+GROUP BY UserID, Version
+HAVING sum(Sign) > 0
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Version─┐
+│ 4324182021466249494 │ 6 │ 185 │ 2 │
+└─────────────────────┴───────────┴──────────┴─────────┘
+```
+
+Toplamaya ihtiyacımız yoksa ve çökmeyi zorlamak istiyorsak, `FINAL` değiştirici için `FROM` yan.
+
+``` sql
+SELECT * FROM UAct FINAL
+```
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┬─Version─┐
+│ 4324182021466249494 │ 6 │ 185 │ 1 │ 2 │
+└─────────────────────┴───────────┴──────────┴──────┴─────────┘
+```
+
+Bu, verileri seçmek için çok verimsiz bir yoldur. Büyük tablolar için kullanmayın.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/versionedcollapsingmergetree/)
diff --git a/docs/tr/engines/table_engines/special/buffer.md b/docs/tr/engines/table_engines/special/buffer.md
new file mode 100644
index 0000000000..fa53822ab2
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/buffer.md
@@ -0,0 +1,71 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 45
+toc_title: Arabellek
+---
+
+# Arabellek {#buffer}
+
+RAM'de yazmak için verileri tamponlar, periyodik olarak başka bir tabloya temizler. Okuma işlemi sırasında veri arabellekten ve diğer tablodan aynı anda okunur.
+
+``` sql
+Buffer(database, table, num_layers, min_time, max_time, min_rows, max_rows, min_bytes, max_bytes)
+```
+
+Motor parametreleri:
+
+- `database` – Database name. Instead of the database name, you can use a constant expression that returns a string.
+- `table` – Table to flush data to.
+- `num_layers` – Parallelism layer. Physically, the table will be represented as `num_layers` bağımsız tamponların. Önerilen değer: 16.
+- `min_time`, `max_time`, `min_rows`, `max_rows`, `min_bytes`, ve `max_bytes` – Conditions for flushing data from the buffer.
+
+Veri arabellekten temizlendi ve hedef tabloya yazılır eğer tüm `min*` koşulları veya en az bir `max*` koşul karşı arelanır.
+
+- `min_time`, `max_time` – Condition for the time in seconds from the moment of the first write to the buffer.
+- `min_rows`, `max_rows` – Condition for the number of rows in the buffer.
+- `min_bytes`, `max_bytes` – Condition for the number of bytes in the buffer.
+
+Yazma işlemi sırasında veri bir `num_layers` rastgele tampon sayısı. Veya, eklenecek veri kısmı yeterince büyükse (daha büyük `max_rows` veya `max_bytes`), arabelleği atlayarak doğrudan hedef tabloya yazılır.
+
+Verilerin yıkanması için koşullar, her biri için ayrı ayrı hesaplanır. `num_layers` arabellekler. Örneğin, `num_layers = 16` ve `max_bytes = 100000000`, maksimum RAM tüketimi 1,6 GB'DİR.
+
+Örnek:
+
+``` sql
+CREATE TABLE merge.hits_buffer AS merge.hits ENGINE = Buffer(merge, hits, 16, 10, 100, 10000, 1000000, 10000000, 100000000)
+```
+
+Oluşturma Bir ‘merge.hits\_buffer’ ile aynı yapıya sahip tablo ‘merge.hits’ ve Tampon motorunu kullanarak. Bu tabloya yazarken, veriler RAM'de arabelleğe alınır ve daha sonra ‘merge.hits’ Tablo. 16 tamponlar oluşturulur. 100 saniye geçti veya bir milyon satır yazılmış veya 100 MB veri yazılmıştır; ya da aynı anda 10 saniye geçti ve 10.000 satır ve 10 MB veri yazılmıştır, bunların her veri temizlendi. Örneğin, sadece bir satır yazılmışsa, 100 saniye sonra ne olursa olsun, yıkanacaktır. Ancak, birçok satır yazılmışsa, veriler daha erken temizlenecektir.
+
+Sunucu DROP TABLE veya DETACH TABLE ile durdurulduğunda, arabellek verileri de hedef tabloya temizlendi.
+
+Veritabanı ve tablo adı için tek tırnak içinde boş dizeleri ayarlayabilirsiniz. Bu, bir hedef tablonun yokluğunu gösterir. Bu durumda, Veri Temizleme koşullarına ulaşıldığında, arabellek basitçe temizlenir. Bu, bir veri penceresini bellekte tutmak için yararlı olabilir.
+
+Bir arabellek tablosundan okurken, veriler hem arabellekten hem de hedef tablodan (varsa) işlenir.
+Arabellek tabloları bir dizin desteklemediğini unutmayın. Başka bir deyişle, arabellekteki veriler tamamen taranır, bu da büyük arabellekler için yavaş olabilir. (Alt tablodaki veriler için, desteklediği dizin kullanılacaktır.)
+
+Arabellek tablosundaki sütun kümesi, alt tablodaki sütun kümesiyle eşleşmiyorsa, her iki tabloda da bulunan sütunların bir alt kümesi eklenir.
+
+Türleri arabellek tablo ve alt tablo sütunlarından biri için eşleşmiyorsa, sunucu günlüğüne bir hata iletisi girilir ve arabellek temizlenir.
+Arabellek temizlendiğinde alt tablo yoksa aynı şey olur.
+
+Eğer bağımlı bir tablo ve Tampon tablo için ALTER çalıştırmak gerekiyorsa, ilk Tampon tablo silme, alt tablo için ALTER çalışan, sonra tekrar Tampon tablo oluşturma öneririz.
+
+Sunucu anormal şekilde yeniden başlatılırsa, arabellekteki veriler kaybolur.
+
+Son ve örnek arabellek tabloları için düzgün çalışmıyor. Bu koşullar hedef tabloya geçirilir, ancak arabellekte veri işlemek için kullanılmaz. Bu özellikler gerekiyorsa, hedef tablodan okurken yalnızca yazma için arabellek tablosunu kullanmanızı öneririz.
+
+Bir arabelleğe veri eklerken, arabelleklerden biri kilitlenir. Bir okuma işlemi aynı anda tablodan gerçekleştiriliyor, bu gecikmelere neden olur.
+
+Bir arabellek tablosuna eklenen veriler, alt tabloda farklı bir sırada ve farklı bloklarda sonuçlanabilir. Bu nedenle, bir arabellek tablo CollapsingMergeTree doğru yazmak için kullanmak zordur. Sorunları önlemek için şunları ayarlayabilirsiniz ‘num\_layers’ 1'e.
+
+Hedef tablo yinelenirse, bir arabellek tablosuna yazarken yinelenmiş tabloların bazı beklenen özellikleri kaybolur. Satır ve veri parçaları boyutlarda sipariş için rasgele değişiklikler veri çoğaltma güvenilir olması mümkün olmadığını ifade eden çalışma, kapanmasına neden ‘exactly once’ çoğaltılan tablolara yazın.
+
+Bu dezavantajlardan dolayı, nadir durumlarda yalnızca bir arabellek tablosu kullanmanızı önerebiliriz.
+
+Bir arabellek tablosu, bir zaman birimi üzerinden çok sayıda sunucudan çok fazla ekleme alındığında kullanılır ve ekleme işleminden önce veri arabelleğe alınamaz, bu da eklerin yeterince hızlı çalışamayacağı anlamına gelir.
+
+Arabellek tabloları için bile, her seferinde bir satır veri eklemek mantıklı olmadığını unutmayın. Bu, yalnızca saniyede birkaç bin satırlık bir hız üretirken, daha büyük veri blokları eklemek saniyede bir milyondan fazla satır üretebilir (bölüme bakın “Performance”).
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/buffer/)
diff --git a/docs/tr/engines/table_engines/special/dictionary.md b/docs/tr/engines/table_engines/special/dictionary.md
new file mode 100644
index 0000000000..ce02429a31
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/dictionary.md
@@ -0,0 +1,97 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 35
+toc_title: "S\xF6zl\xFCk"
+---
+
+# Sözlük {#dictionary}
+
+Bu `Dictionary` motor görüntüler [sözlük](../../../sql_reference/dictionaries/external_dictionaries/external_dicts.md) bir ClickHouse tablo olarak veri.
+
+Örnek olarak, bir sözlük düşünün `products` aşağıdaki yapılandırma ile:
+
+``` xml
+
+
+ products
+
+
+
products
+ DSN=some-db-server
+
+
+
+ 300
+ 360
+
+
+
+
+
+
+ product_id
+
+
+ title
+ String
+
+
+
+
+
+```
+
+Sözlük verilerini sorgula:
+
+``` sql
+SELECT
+ name,
+ type,
+ key,
+ attribute.names,
+ attribute.types,
+ bytes_allocated,
+ element_count,
+ source
+FROM system.dictionaries
+WHERE name = 'products'
+```
+
+``` text
+┌─name─────┬─type─┬─key────┬─attribute.names─┬─attribute.types─┬─bytes_allocated─┬─element_count─┬─source──────────┐
+│ products │ Flat │ UInt64 │ ['title'] │ ['String'] │ 23065376 │ 175032 │ ODBC: .products │
+└──────────┴──────┴────────┴─────────────────┴─────────────────┴─────────────────┴───────────────┴─────────────────┘
+```
+
+Kullanabilirsiniz [dictGet\*](../../../sql_reference/functions/ext_dict_functions.md#ext_dict_functions) sözlük verilerini bu formatta almak için işlev.
+
+Bu görünüm, ham veri almanız gerektiğinde veya bir `JOIN` işleyiş. Bu durumlar için şunları kullanabilirsiniz `Dictionary` bir tabloda sözlük verilerini görüntüleyen motor.
+
+Sözdizimi:
+
+``` sql
+CREATE TABLE %table_name% (%fields%) engine = Dictionary(%dictionary_name%)`
+```
+
+Kullanım örneği:
+
+``` sql
+create table products (product_id UInt64, title String) Engine = Dictionary(products);
+```
+
+ Ok
+
+Masada ne olduğuna bir bak.
+
+``` sql
+select * from products limit 1;
+```
+
+``` text
+┌────product_id─┬─title───────────┐
+│ 152689 │ Some item │
+└───────────────┴─────────────────┘
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/dictionary/)
diff --git a/docs/tr/engines/table_engines/special/distributed.md b/docs/tr/engines/table_engines/special/distributed.md
new file mode 100644
index 0000000000..28cb0e0855
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/distributed.md
@@ -0,0 +1,152 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 33
+toc_title: "Da\u011F\u0131l\u0131"
+---
+
+# Dağılı {#distributed}
+
+**Dağıtılmış altyapısı olan tablolar kendileri tarafından herhangi bir veri depolamaz**, ancak birden çok sunucuda dağıtılmış sorgu işleme izin verir.
+Okuma otomatik olarak paralelleştirilir. Bir okuma sırasında, varsa uzak sunucularda tablo dizinleri kullanılır.
+
+Dağıtılmış motor parametreleri kabul eder:
+
+- sunucunun yapılandırma dosyasındaki küme adı
+
+- uzak veritabanı adı
+
+- uzak bir tablonun adı
+
+- (isteğe bağlı olarak) sharding anahtarı
+
+- (isteğe bağlı olarak) ilke adı, zaman uyumsuz göndermek için geçici dosyaları depolamak için kullanılacaktır
+
+ Ayrıca bakınız:
+
+ - `insert_distributed_sync` ayar
+ - [MergeTree](../mergetree_family/mergetree.md#table_engine-mergetree-multiple-volumes) örnekler için
+
+Örnek:
+
+``` sql
+Distributed(logs, default, hits[, sharding_key[, policy_name]])
+```
+
+Veri tüm sunuculardan okunacak ‘logs’ küme, varsayılan değerden.kümedeki her sunucuda bulunan hits tablosu.
+Veriler yalnızca okunmakla kalmaz, aynı zamanda uzak sunucularda kısmen işlenir (bunun mümkün olduğu ölçüde).
+Örneğin, GROUP BY ile bir sorgu için uzak sunucularda veri toplanır ve toplama işlevlerinin Ara durumları istek sahibi sunucuya gönderilir. Daha sonra veriler daha fazla toplanacaktır.
+
+Veritabanı adı yerine, bir dize döndüren sabit bir ifade kullanabilirsiniz. Örneğin: currentDatabase ().
+
+logs – The cluster name in the server's config file.
+
+Kümeler şöyle ayarlanır:
+
+``` xml
+
+
+
+
+ 1
+
+ false
+
+ example01-01-1
+ 9000
+
+
+ example01-01-2
+ 9000
+
+
+
+ 2
+ false
+
+ example01-02-1
+ 9000
+
+
+ example01-02-2
+ 1
+ 9440
+
+
+
+
+```
+
+Burada bir küme adı ile tanımlanır ‘logs’ bu, her biri iki kopya içeren iki parçadan oluşur.
+Kırıklar, verilerin farklı bölümlerini içeren sunuculara başvurur (tüm verileri okumak için tüm kırıklara erişmeniz gerekir).
+Yinelemeler sunucuları çoğaltılıyor (tüm verileri okumak için, yinelemelerden herhangi birinde verilere erişebilirsiniz).
+
+Küme adları nokta içermemelidir.
+
+Parametre `host`, `port` ve isteğe bağlı olarak `user`, `password`, `secure`, `compression` her sunucu için belirtilir:
+- `host` – The address of the remote server. You can use either the domain or the IPv4 or IPv6 address. If you specify the domain, the server makes a DNS request when it starts, and the result is stored as long as the server is running. If the DNS request fails, the server doesn't start. If you change the DNS record, restart the server.
+- `port` – The TCP port for messenger activity (‘tcp\_port’ yapılandırmada, genellikle 9000 olarak ayarlanır). Http\_port ile karıştırmayın.
+- `user` – Name of the user for connecting to a remote server. Default value: default. This user must have access to connect to the specified server. Access is configured in the users.xml file. For more information, see the section [Erişim hakları](../../../operations/access_rights.md).
+- `password` – The password for connecting to a remote server (not masked). Default value: empty string.
+- `secure` - Bağlantı için ssl kullanın, genellikle de tanımlamanız gerekir `port` = 9440. Sunucu dinlem shouldeli 9440 ve doğru sertifikalara sahip.
+- `compression` - Kullanım veri sıkıştırma. Varsayılan değer: true.
+
+When specifying replicas, one of the available replicas will be selected for each of the shards when reading. You can configure the algorithm for load balancing (the preference for which replica to access) – see the [dengeleme](../../../operations/settings/settings.md#settings-load_balancing) ayar.
+Sunucu ile bağlantı kurulmamışsa, kısa bir zaman aşımı ile bağlanma girişimi olacaktır. Bağlantı başarısız olursa, sonraki yineleme seçilir ve benzeri tüm yinelemeler için. Bağlantı girişimi tüm yinelemeler için başarısız olursa, girişimi aynı şekilde, birkaç kez tekrarlanır.
+Bu esneklik lehine çalışır, ancak tam hataya dayanıklılık sağlamaz: uzak bir sunucu bağlantıyı kabul edebilir, ancak çalışmayabilir veya kötü çalışabilir.
+
+Parçalardan yalnızca birini belirtebilirsiniz (bu durumda, sorgu işleme dağıtılmış yerine uzak olarak adlandırılmalıdır) veya herhangi bir sayıda parçaya kadar. Her parçada, bir ila herhangi bir sayıda yinelemeyi belirtebilirsiniz. Her parça için farklı sayıda çoğaltma belirtebilirsiniz.
+
+Yapılandırmada istediğiniz kadar küme belirtebilirsiniz.
+
+Kümelerinizi görüntülemek için ‘system.clusters’ Tablo.
+
+Dağıtılmış motor, yerel bir sunucu gibi bir küme ile çalışmaya izin verir. Ancak, küme uzatılamaz: yapılandırmasını sunucu yapılandırma dosyasına yazmanız gerekir (tüm kümenin sunucuları için daha da iyisi).
+
+The Distributed engine requires writing clusters to the config file. Clusters from the config file are updated on the fly, without restarting the server. If you need to send a query to an unknown set of shards and replicas each time, you don't need to create a Distributed table – use the ‘remote’ bunun yerine tablo işlevi. Bölümüne bakınız [Tablo fonksiyonları](../../../sql_reference/table_functions/index.md).
+
+Bir kümeye veri yazmak için iki yöntem vardır:
+
+İlk olarak, hangi sunucuların hangi verileri yazacağını ve her bir parçaya doğrudan yazmayı gerçekleştireceğini tanımlayabilirsiniz. Başka bir deyişle, dağıtılmış tablo içinde INSERT gerçekleştirmek “looks at”. Bu, konu alanının gereklilikleri nedeniyle önemsiz olmayan herhangi bir sharding şemasını kullanabileceğiniz için en esnek çözümdür. Bu aynı zamanda en uygun çözümdür, çünkü veriler farklı parçalara tamamen bağımsız olarak yazılabilir.
+
+İkinci olarak, dağıtılmış bir tabloda ekleme gerçekleştirebilirsiniz. Bu durumda, tablo eklenen verileri sunucuların kendisine dağıtacaktır. Dağıtılmış bir tabloya yazmak için, bir sharding anahtar kümesi (son parametre) olmalıdır. Ek olarak, yalnızca bir parça varsa, yazma işlemi sharding anahtarını belirtmeden çalışır, çünkü bu durumda hiçbir şey ifade etmez.
+
+Her parça yapılandırma dosyasında tanımlanan bir ağırlığa sahip olabilir. Varsayılan olarak, ağırlık bir eşittir. Veriler, parça ağırlığı ile orantılı miktarda parçalara dağıtılır. Örneğin, iki parça varsa ve birincisi 9'luk bir ağırlığa sahipse, ikincisi 10'luk bir ağırlığa sahipse, ilk satırların 9 / 19 parçası gönderilir ve ikincisi 10 / 19 gönderilir.
+
+Her shard olabilir ‘internal\_replication’ yapılandırma dosyasında tanımlanan parametre.
+
+Bu parametre şu şekilde ayarlanırsa ‘true’, yazma işlemi ilk sağlıklı yinelemeyi seçer ve ona veri yazar. Dağıtılmış tablo ise bu alternatifi kullanın “looks at” çoğaltılan tablolar. Başka bir deyişle, verilerin yazılacağı tablo kendilerini çoğaltacaktır.
+
+Olarak ayarlan ifmışsa ‘false’ (varsayılan), veriler tüm kopyalara yazılır. Özünde, bu, dağıtılmış tablonun verilerin kendisini çoğalttığı anlamına gelir. Bu, çoğaltılmış tabloları kullanmaktan daha kötüdür, çünkü kopyaların tutarlılığı denetlenmez ve zamanla biraz farklı veriler içerirler.
+
+Bir veri satırının gönderildiği parçayı seçmek için, parçalama ifadesi analiz edilir ve kalan kısmı, parçaların toplam ağırlığına bölünmesinden alınır. Satır, kalanların yarı aralığına karşılık gelen parçaya gönderilir. ‘prev\_weight’ -e doğru ‘prev\_weights + weight’, nere ‘prev\_weights’ en küçük sayıya sahip parçaların toplam ağırlığı ve ‘weight’ bu parçanın ağırlığı. Örneğin, iki parça varsa ve birincisi 9'luk bir ağırlığa sahipse, ikincisi 10'luk bir ağırlığa sahipse, satır \[0, 9) aralığından kalanlar için ilk parçaya ve ikincisine \[9, 19) aralığından kalanlar için gönderilecektir.
+
+Sharding ifadesi, bir tamsayı döndüren sabitler ve tablo sütunlarından herhangi bir ifade olabilir. Örneğin, ifadeyi kullanabilirsiniz ‘rand()’ verilerin rastgele dağılımı için veya ‘UserID’ kullanıcının kimliğinin bölünmesinden kalanın dağıtımı için (daha sonra tek bir kullanıcının verileri, kullanıcılar tarafından çalışmayı ve katılmayı basitleştiren tek bir parçada bulunur). Sütunlardan biri yeterince eşit olarak dağıtılmazsa, onu bir karma işleve sarabilirsiniz: ınthash64(Userıd).
+
+Bölüm'den basit bir hatırlatma, sharding için sınırlı bir çözümdür ve her zaman uygun değildir. Orta ve büyük hacimlerde veri (düzinelerce sunucu) için çalışır, ancak çok büyük hacimlerde veri (yüzlerce sunucu veya daha fazla) için değildir. İkinci durumda, dağıtılmış tablolarda girdileri kullanmak yerine konu alanı tarafından gerekli olan sharding şemasını kullanın.
+
+SELECT queries are sent to all the shards and work regardless of how data is distributed across the shards (they can be distributed completely randomly). When you add a new shard, you don't have to transfer the old data to it. You can write new data with a heavier weight – the data will be distributed slightly unevenly, but queries will work correctly and efficiently.
+
+Aşağıdaki durumlarda sharding şeması hakkında endişelenmelisiniz:
+
+- Belirli bir anahtar tarafından veri (veya birleştirme) birleştirme gerektiren sorgular kullanılır. Veriler bu anahtar tarafından parçalanırsa, GLOBAL IN veya GLOBAL JOİN yerine local IN veya JOİN kullanabilirsiniz, bu da çok daha etkilidir.
+- Çok sayıda küçük Sorgu ile çok sayıda sunucu (yüzlerce veya daha fazla) kullanılır (bireysel müşterilerin sorguları - web siteleri, reklamverenler veya ortaklar). Küçük sorguların tüm kümeyi etkilememesi için, tek bir istemci için tek bir parça üzerinde veri bulmak mantıklıdır. Alternatif olarak, Yandex'te yaptığımız gibi.Metrica, iki seviyeli sharding kurabilirsiniz: tüm kümeyi bölün “layers”, bir katmanın birden fazla parçadan oluşabileceği yer. Tek bir istemci için veriler tek bir katmanda bulunur, ancak kırıklar gerektiğinde bir katmana eklenebilir ve veriler rastgele dağıtılır. Her katman için dağıtılmış tablolar oluşturulur ve genel sorgular için tek bir paylaşılan dağıtılmış tablo oluşturulur.
+
+Veriler zaman uyumsuz olarak yazılır. Tabloya eklendiğinde, veri bloğu sadece yerel dosya sistemine yazılır. Veriler en kısa sürede arka planda uzak sunuculara gönderilir. Veri gönderme süresi tarafından yönetilir [distributed\_directory\_monitor\_sleep\_time\_ms](../../../operations/settings/settings.md#distributed_directory_monitor_sleep_time_ms) ve [distributed\_directory\_monitor\_max\_sleep\_time\_ms](../../../operations/settings/settings.md#distributed_directory_monitor_max_sleep_time_ms) ayarlar. Bu `Distributed` motor ayrı ayrı eklenen verilerle her dosyayı gönderir, ancak toplu dosya gönderme etkinleştirebilirsiniz [distributed\_directory\_monitor\_batch\_ınserts](../../../operations/settings/settings.md#distributed_directory_monitor_batch_inserts) ayar. Bu ayar, yerel sunucu ve ağ kaynaklarını daha iyi kullanarak küme performansını artırır. Tablo dizinindeki dosyaların listesini (gönderilmeyi bekleyen veriler) kontrol ederek verilerin başarıyla gönderilip gönderilmediğini kontrol etmelisiniz: `/var/lib/clickhouse/data/database/table/`.
+
+Sunucu varlığını durdurdu veya (örneğin, bir aygıt arızasından sonra) dağıtılmış bir tabloya bir ekleme sonra kaba bir yeniden başlatma vardı, eklenen veriler kaybolabilir. Tablo dizininde bozuk bir veri parçası tespit edilirse, ‘broken’ alt dizin ve artık kullanılmıyor.
+
+Max\_parallel\_replicas seçeneği etkinleştirildiğinde, sorgu işleme tek bir parça içindeki tüm yinelemeler arasında paralelleştirilir. Daha fazla bilgi için bölüme bakın [max\_parallel\_replicas](../../../operations/settings/settings.md#settings-max_parallel_replicas).
+
+## Sanal Sütunlar {#virtual-columns}
+
+- `_shard_num` — Contains the `shard_num` (itibaren `system.clusters`). Tür: [Uİnt32](../../../sql_reference/data_types/int_uint.md).
+
+!!! note "Not"
+ Beri [`remote`](../../../sql_reference/table_functions/remote.md)/`cluster` tablo işlevleri DAHİLİ olarak aynı dağıtılmış altyapının geçici örneğini oluşturur, `_shard_num` de kullanılabilir.
+
+**Ayrıca Bakınız**
+
+- [Sanal sütunlar](index.md#table_engines-virtual_columns)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/distributed/)
diff --git a/docs/tr/engines/table_engines/special/external_data.md b/docs/tr/engines/table_engines/special/external_data.md
new file mode 100644
index 0000000000..123b2dbdf0
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/external_data.md
@@ -0,0 +1,68 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 34
+toc_title: "D\u0131\u015F veri"
+---
+
+# Sorgu işleme için harici veriler {#external-data-for-query-processing}
+
+ClickHouse bir sunucu bir SELECT sorgusu ile birlikte bir sorgu işlemek için gerekli olan verileri gönderme sağlar. Bu veriler geçici bir tabloya konur (bölüme bakın “Temporary tables”) ve sorguda kullanılabilir (örneğin, işleçlerde).
+
+Örneğin, önemli kullanıcı tanımlayıcılarına sahip bir metin dosyanız varsa, bu listeyi süzme kullanan bir sorgu ile birlikte sunucuya yükleyebilirsiniz.
+
+Büyük hacimli dış verilerle birden fazla sorgu çalıştırmanız gerekiyorsa, bu özelliği kullanmayın. Verileri vaktinden önce DB'YE yüklemek daha iyidir.
+
+Harici veriler komut satırı istemcisi (etkileşimli olmayan modda) veya HTTP arabirimi kullanılarak yüklenebilir.
+
+Komut satırı istemcisinde, formatta bir parametreler bölümü belirtebilirsiniz
+
+``` bash
+--external --file=... [--name=...] [--format=...] [--types=...|--structure=...]
+```
+
+İletilen tablo sayısı için bunun gibi birden çok bölümünüz olabilir.
+
+**–external** – Marks the beginning of a clause.
+**–file** – Path to the file with the table dump, or -, which refers to stdin.
+Stdın'den yalnızca tek bir tablo alınabilir.
+
+Aşağıdaki parametreler isteğe bağlıdır: **–name**– Name of the table. If omitted, \_data is used.
+**–format** – Data format in the file. If omitted, TabSeparated is used.
+
+Aşağıdaki parametrelerden biri gereklidir:**–types** – A list of comma-separated column types. For example: `UInt64,String`. The columns will be named \_1, \_2, …
+**–structure**– The table structure in the format`UserID UInt64`, `URL String`. Sütun adlarını ve türlerini tanımlar.
+
+Belirtilen dosyalar ‘file’ belirtilen biçimde ayrıştırılır ‘format’, belirtilen veri türlerini kullanarak ‘types’ veya ‘structure’. Tablo sunucuya yüklenecek ve orada adı ile geçici bir tablo olarak erişilebilir ‘name’.
+
+Örnekler:
+
+``` bash
+$ echo -ne "1\n2\n3\n" | clickhouse-client --query="SELECT count() FROM test.visits WHERE TraficSourceID IN _data" --external --file=- --types=Int8
+849897
+$ cat /etc/passwd | sed 's/:/\t/g' | clickhouse-client --query="SELECT shell, count() AS c FROM passwd GROUP BY shell ORDER BY c DESC" --external --file=- --name=passwd --structure='login String, unused String, uid UInt16, gid UInt16, comment String, home String, shell String'
+/bin/sh 20
+/bin/false 5
+/bin/bash 4
+/usr/sbin/nologin 1
+/bin/sync 1
+```
+
+HTTP arabirimini kullanırken, dış veriler çok parçalı/form veri biçiminde geçirilir. Her tablo ayrı bir dosya olarak iletilir. Tablo adı dosya adından alınır. Bu ‘query\_string’ parametreleri geçirilir ‘name\_format’, ‘name\_types’, ve ‘name\_structure’, nere ‘name’ bu parametreler karşılık gelen tablonun adıdır. Parametrelerin anlamı, komut satırı istemcisini kullanırken olduğu gibi aynıdır.
+
+Örnek:
+
+``` bash
+$ cat /etc/passwd | sed 's/:/\t/g' > passwd.tsv
+
+$ curl -F 'passwd=@passwd.tsv;' 'http://localhost:8123/?query=SELECT+shell,+count()+AS+c+FROM+passwd+GROUP+BY+shell+ORDER+BY+c+DESC&passwd_structure=login+String,+unused+String,+uid+UInt16,+gid+UInt16,+comment+String,+home+String,+shell+String'
+/bin/sh 20
+/bin/false 5
+/bin/bash 4
+/usr/sbin/nologin 1
+/bin/sync 1
+```
+
+Dağıtılmış sorgu işleme için geçici tablolar tüm uzak sunuculara gönderilir.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/external_data/)
diff --git a/docs/tr/engines/table_engines/special/file.md b/docs/tr/engines/table_engines/special/file.md
new file mode 100644
index 0000000000..c132d1dd5a
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/file.md
@@ -0,0 +1,90 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 37
+toc_title: Dosya
+---
+
+# Dosya {#table_engines-file}
+
+Dosya tablosu altyapısı, verileri desteklenen dosyalardan birinde tutar [Dosya
+biçimliler](../../../interfaces/formats.md#formats) (TabSeparated, yerli, vb.).
+
+Kullanım örnekleri:
+
+- Clickhouse'dan dosyaya veri aktarımı.
+- Verileri bir biçimden diğerine dönüştürün.
+- Bir diskte bir dosya düzenleme yoluyla ClickHouse veri güncelleme.
+
+## ClickHouse Sunucusunda Kullanım {#usage-in-clickhouse-server}
+
+``` sql
+File(Format)
+```
+
+Bu `Format` parametre kullanılabilir dosya biçimlerinden birini belirtir. Gerçekleştirmek
+`SELECT` sorgular, biçim giriş için desteklenmeli ve gerçekleştirmek için
+`INSERT` queries – for output. The available formats are listed in the
+[Biçimliler](../../../interfaces/formats.md#formats) bölme.
+
+ClickHouse dosya sistemi yolunu belirtmek için izin vermiyor`File`. Tarafından tanımlanan klasörü kullan willacaktır [yol](../../../operations/server_configuration_parameters/settings.md) sunucu yapılandırmasında ayarlama.
+
+Kullanarak tablo oluştururken `File(Format)` bu klasörde boş bir alt dizin oluşturur. Veri o tabloya yazıldığında, içine konur `data.Format` bu alt dizinde dosya.
+
+Bu alt klasörü ve dosyayı sunucu dosya sisteminde el ile oluşturabilir ve sonra [ATTACH](../../../sql_reference/statements/misc.md) eşleşen ada sahip tablo bilgilerine, böylece bu dosyadan veri sorgulayabilirsiniz.
+
+!!! warning "Uyarıcı"
+ Bu işlevselliğe dikkat edin, çünkü ClickHouse bu tür dosyalarda harici değişiklikleri izlemez. ClickHouse ve ClickHouse dışında eşzamanlı yazma sonucu tanımsızdır.
+
+**Örnek:**
+
+**1.** Set up the `file_engine_table` Tablo:
+
+``` sql
+CREATE TABLE file_engine_table (name String, value UInt32) ENGINE=File(TabSeparated)
+```
+
+Varsayılan olarak ClickHouse klasör oluşturur `/var/lib/clickhouse/data/default/file_engine_table`.
+
+**2.** El ile oluştur `/var/lib/clickhouse/data/default/file_engine_table/data.TabSeparated` içerme:
+
+``` bash
+$ cat data.TabSeparated
+one 1
+two 2
+```
+
+**3.** Verileri sorgula:
+
+``` sql
+SELECT * FROM file_engine_table
+```
+
+``` text
+┌─name─┬─value─┐
+│ one │ 1 │
+│ two │ 2 │
+└──────┴───────┘
+```
+
+## Clickhouse'da kullanım-yerel {#usage-in-clickhouse-local}
+
+İçinde [clickhouse-yerel](../../../operations/utilities/clickhouse-local.md) Dosya motoru ek olarak dosya yolunu kabul eder `Format`. Varsayılan giriş / çıkış akışları gibi sayısal veya insan tarafından okunabilir isimler kullanılarak belirtilebilir `0` veya `stdin`, `1` veya `stdout`.
+**Örnek:**
+
+``` bash
+$ echo -e "1,2\n3,4" | clickhouse-local -q "CREATE TABLE table (a Int64, b Int64) ENGINE = File(CSV, stdin); SELECT a, b FROM table; DROP TABLE table"
+```
+
+## Uygulama Detayları {#details-of-implementation}
+
+- Çoklu `SELECT` sorgular aynı anda yapılabilir, ancak `INSERT` sorgular birbirini bekler.
+- Tarafından yeni dosya oluşturma desteklenen `INSERT` sorgu.
+- Dosya varsa, `INSERT` içinde yeni değerler ekler.
+- Desteklenmiyor:
+ - `ALTER`
+ - `SELECT ... SAMPLE`
+ - Dizinler
+ - Çoğalma
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/file/)
diff --git a/docs/tr/engines/table_engines/special/generate.md b/docs/tr/engines/table_engines/special/generate.md
new file mode 100644
index 0000000000..01d2534441
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/generate.md
@@ -0,0 +1,61 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 46
+toc_title: GenerateRandom
+---
+
+# Generaterandom {#table_engines-generate}
+
+GenerateRandom tablo motoru, verilen tablo şeması için rasgele veri üretir.
+
+Kullanım örnekleri:
+
+- Tekrarlanabilir büyük tabloyu doldurmak için testte kullanın.
+- Fuzzing testleri için rastgele girdi oluşturun.
+
+## ClickHouse Sunucusunda Kullanım {#usage-in-clickhouse-server}
+
+``` sql
+ENGINE = GenerateRandom(random_seed, max_string_length, max_array_length)
+```
+
+Bu `max_array_length` ve `max_string_length` parametreler tüm maksimum uzunluğu belirtin
+oluşturulan verilerde dizi sütunları ve dizeleri.
+
+Tablo motoru oluşturmak yalnızca destekler `SELECT` sorgular.
+
+Tüm destekler [Veri türleri](../../../sql_reference/data_types/index.md) dışında bir tabloda saklanabilir `LowCardinality` ve `AggregateFunction`.
+
+**Örnek:**
+
+**1.** Set up the `generate_engine_table` Tablo:
+
+``` sql
+CREATE TABLE generate_engine_table (name String, value UInt32) ENGINE = GenerateRandom(1, 5, 3)
+```
+
+**2.** Verileri sorgula:
+
+``` sql
+SELECT * FROM generate_engine_table LIMIT 3
+```
+
+``` text
+┌─name─┬──────value─┐
+│ c4xJ │ 1412771199 │
+│ r │ 1791099446 │
+│ 7#$ │ 124312908 │
+└──────┴────────────┘
+```
+
+## Uygulama Detayları {#details-of-implementation}
+
+- Desteklenmiyor:
+ - `ALTER`
+ - `SELECT ... SAMPLE`
+ - `INSERT`
+ - Dizinler
+ - Çoğalma
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/generate/)
diff --git a/docs/tr/engines/table_engines/special/index.md b/docs/tr/engines/table_engines/special/index.md
new file mode 100644
index 0000000000..2e754a86bc
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/index.md
@@ -0,0 +1,8 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "\xD6zellikli"
+toc_priority: 31
+---
+
+
diff --git a/docs/tr/engines/table_engines/special/join.md b/docs/tr/engines/table_engines/special/join.md
new file mode 100644
index 0000000000..2fa786148e
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/join.md
@@ -0,0 +1,111 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 40
+toc_title: Katmak
+---
+
+# Katmak {#join}
+
+Kullanılmak üzere hazırlanmış veri yapısı [JOIN](../../../sql_reference/statements/select.md#select-join) harekat.
+
+## Tablo oluşturma {#creating-a-table}
+
+``` sql
+CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
+(
+ name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
+ name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
+) ENGINE = Join(join_strictness, join_type, k1[, k2, ...])
+```
+
+Ayrıntılı açıklamasına bakın [CREATE TABLE](../../../sql_reference/statements/create.md#create-table-query) sorgu.
+
+**Motor Parametreleri**
+
+- `join_strictness` – [Katılık katılın](../../../sql_reference/statements/select.md#select-join-strictness).
+- `join_type` – [Birleştirme türü](../../../sql_reference/statements/select.md#select-join-types).
+- `k1[, k2, ...]` – Key columns from the `USING` fık thera: `JOIN` işlemi yapılmamaktadır.
+
+Girmek `join_strictness` ve `join_type` tırnak işaretleri olmadan parametreler, örneğin, `Join(ANY, LEFT, col1)`. Onlar eşleşmelidir `JOIN` tablo için kullanılacak işlem. Parametreler eşleşmezse, ClickHouse bir istisna atmaz ve yanlış veri döndürebilir.
+
+## Tablo Kullanımı {#table-usage}
+
+### Örnek {#example}
+
+Sol taraftaki tablo oluşturma:
+
+``` sql
+CREATE TABLE id_val(`id` UInt32, `val` UInt32) ENGINE = TinyLog
+```
+
+``` sql
+INSERT INTO id_val VALUES (1,11)(2,12)(3,13)
+```
+
+Sağ tarafı oluşturma `Join` Tablo:
+
+``` sql
+CREATE TABLE id_val_join(`id` UInt32, `val` UInt8) ENGINE = Join(ANY, LEFT, id)
+```
+
+``` sql
+INSERT INTO id_val_join VALUES (1,21)(1,22)(3,23)
+```
+
+Tabloları birleştirme:
+
+``` sql
+SELECT * FROM id_val ANY LEFT JOIN id_val_join USING (id) SETTINGS join_use_nulls = 1
+```
+
+``` text
+┌─id─┬─val─┬─id_val_join.val─┐
+│ 1 │ 11 │ 21 │
+│ 2 │ 12 │ ᴺᵁᴸᴸ │
+│ 3 │ 13 │ 23 │
+└────┴─────┴─────────────────┘
+```
+
+Alternatif olarak, veri alabilirsiniz `Join` tablo, birleştirme anahtarı değerini belirterek:
+
+``` sql
+SELECT joinGet('id_val_join', 'val', toUInt32(1))
+```
+
+``` text
+┌─joinGet('id_val_join', 'val', toUInt32(1))─┐
+│ 21 │
+└────────────────────────────────────────────┘
+```
+
+### Veri seçme ve ekleme {#selecting-and-inserting-data}
+
+Kullanabilirsiniz `INSERT` veri eklemek için sorgular `Join`- motor masaları. Tablo ile oluşturulmuş ise `ANY` katılık, yinelenen anahtarlar için veriler göz ardı edilir. İle... `ALL` katılık, tüm satırlar eklenir.
+
+Gerçekleştir aemezsiniz `SELECT` doğrudan tablodan sorgulayın. Bunun yerine, aşağıdaki yöntemlerden birini kullanın:
+
+- Tabloyu sağ tarafa yerleştirin. `JOIN` yan.
+- Call the [joinGet](../../../sql_reference/functions/other_functions.md#joinget) tablodan bir sözlükten aynı şekilde veri ayıklamanızı sağlayan işlev.
+
+### Sınırlamalar ve Ayarlar {#join-limitations-and-settings}
+
+Bir tablo oluştururken aşağıdaki ayarlar uygulanır:
+
+- [join\_use\_nulls](../../../operations/settings/settings.md#join_use_nulls)
+- [max\_rows\_in\_join](../../../operations/settings/query_complexity.md#settings-max_rows_in_join)
+- [max\_bytes\_in\_join](../../../operations/settings/query_complexity.md#settings-max_bytes_in_join)
+- [join\_overflow\_mode](../../../operations/settings/query_complexity.md#settings-join_overflow_mode)
+- [join\_any\_take\_last\_row](../../../operations/settings/settings.md#settings-join_any_take_last_row)
+
+Bu `Join`- motor tabloları kullanılamaz `GLOBAL JOIN` harekat.
+
+Bu `Join`- motor kullanımına izin verir [join\_use\_nulls](../../../operations/settings/settings.md#join_use_nulls) ayarı `CREATE TABLE` deyim. Ve [SELECT](../../../sql_reference/statements/select.md) sorgu kullanımına izin verir `join_use_nulls` çok. Eğer farklı varsa `join_use_nulls` ayarlar, tablo birleştirme bir hata alabilirsiniz. Bu katılmak türüne bağlıdır. Kullandığınızda [joinGet](../../../sql_reference/functions/other_functions.md#joinget) fonksiyonu, aynı kullanmak zorunda `join_use_nulls` ayarı `CRATE TABLE` ve `SELECT` deyimler.
+
+## Veri Depolama {#data-storage}
+
+`Join` tablo verileri her zaman RAM'de bulunur. Bir tabloya satır eklerken, sunucu yeniden başlatıldığında geri yüklenebilir, böylece ClickHouse disk üzerindeki dizine veri bloklarını yazar.
+
+Sunucu yanlış yeniden başlatılırsa, diskteki veri bloğu kaybolabilir veya zarar görebilir. Bu durumda, dosyayı hasarlı verilerle el ile silmeniz gerekebilir.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/join/)
diff --git a/docs/tr/engines/table_engines/special/materializedview.md b/docs/tr/engines/table_engines/special/materializedview.md
new file mode 100644
index 0000000000..23e7d3122e
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/materializedview.md
@@ -0,0 +1,12 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 43
+toc_title: MaterializedView
+---
+
+# Materializedview {#materializedview}
+
+Somut görünümler uygulamak için kullanılır (Daha fazla bilgi için bkz . [CREATE TABLE](../../../sql_reference/statements/create.md)). Verileri depolamak için, görünümü oluştururken belirtilen farklı bir motor kullanır. Bir tablodan okurken, sadece bu motoru kullanır.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/materializedview/)
diff --git a/docs/tr/engines/table_engines/special/memory.md b/docs/tr/engines/table_engines/special/memory.md
new file mode 100644
index 0000000000..a5f985ff5e
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/memory.md
@@ -0,0 +1,19 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 44
+toc_title: Bellek
+---
+
+# Bellek {#memory}
+
+Bellek altyapısı verileri RAM, sıkıştırılmamış biçimde depolar. Veri okunduğunda alınan tam olarak aynı biçimde saklanır. Başka bir deyişle, bu tablodan okuma tamamen ücretsizdir.
+Eşzamanlı veri erişimi senkronize edilir. Kilitler kısa: okuma ve yazma işlemleri birbirini engellemez.
+Dizinler desteklenmiyor. Okuma paralelleştirilmiştir.
+Basit sorgularda maksimum üretkenliğe (10 GB/sn'den fazla) ulaşılır, çünkü diskten okuma, açma veya veri serisini kaldırma yoktur. (Birçok durumda MergeTree motorunun verimliliğinin neredeyse yüksek olduğunu unutmamalıyız.)
+Bir sunucu yeniden başlatılırken, veri tablodan kaybolur ve tablo boş olur.
+Normalde, bu tablo motorunu kullanmak haklı değildir. Bununla birlikte, testler ve nispeten az sayıda satırda (yaklaşık 100.000.000'a kadar) maksimum hızın gerekli olduğu görevler için kullanılabilir.
+
+Bellek motoru, harici sorgu verilerine sahip geçici tablolar için sistem tarafından kullanılır (bkz. “External data for processing a query”) ve GLOBAL In uygulanması için (bkz. “IN operators”).
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/memory/)
diff --git a/docs/tr/engines/table_engines/special/merge.md b/docs/tr/engines/table_engines/special/merge.md
new file mode 100644
index 0000000000..bd4150e1af
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/merge.md
@@ -0,0 +1,70 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 36
+toc_title: "Birle\u015Ftirmek"
+---
+
+# Birleştirmek {#merge}
+
+Bu `Merge` motor (ile karıştırılmamalıdır `MergeTree`) verileri kendisi saklamaz, ancak aynı anda herhangi bir sayıda başka tablodan okumaya izin verir.
+Okuma otomatik olarak paralelleştirilir. Bir tabloya yazma desteklenmiyor. Okurken, gerçekten okunmakta olan tabloların dizinleri varsa kullanılır.
+Bu `Merge` motor parametreleri kabul eder: veritabanı adı ve tablolar için düzenli ifade.
+
+Örnek:
+
+``` sql
+Merge(hits, '^WatchLog')
+```
+
+Veri tablolardan okunacak `hits` düzenli ifadeyle eşleşen adlara sahip veritabanı ‘`^WatchLog`’.
+
+Veritabanı adı yerine, bir dize döndüren sabit bir ifade kullanabilirsiniz. Mesela, `currentDatabase()`.
+
+Regular expressions — [re2](https://github.com/google/re2) (pcre bir alt kümesini destekler), büyük / küçük harf duyarlı.
+Düzenli ifadelerde kaçan sembollerle ilgili notlara bakın “match” bölme.
+
+Okumak için tabloları seçerken, `Merge` regex ile eşleşse bile tablonun kendisi seçilmeyecektir. Bu döngülerden kaçınmaktır.
+İki tane oluşturmak mümkündür `Merge` sonsuza kadar birbirlerinin verilerini okumaya çalışacak tablolar, ancak bu iyi bir fikir değil.
+
+Kullanmak için tipik bir yol `Merge` motor çok sayıda çalışma içindir `TinyLog` tablolar tek bir tablo ile sanki.
+
+Örnek 2:
+
+Diyelim ki eski bir tablonuz (WatchLog\_old) var ve verileri yeni bir tabloya (WatchLog\_new) taşımadan bölümlemeyi değiştirmeye karar verdiniz ve her iki tablodaki verileri görmeniz gerekiyor.
+
+``` sql
+CREATE TABLE WatchLog_old(date Date, UserId Int64, EventType String, Cnt UInt64)
+ENGINE=MergeTree(date, (UserId, EventType), 8192);
+INSERT INTO WatchLog_old VALUES ('2018-01-01', 1, 'hit', 3);
+
+CREATE TABLE WatchLog_new(date Date, UserId Int64, EventType String, Cnt UInt64)
+ENGINE=MergeTree PARTITION BY date ORDER BY (UserId, EventType) SETTINGS index_granularity=8192;
+INSERT INTO WatchLog_new VALUES ('2018-01-02', 2, 'hit', 3);
+
+CREATE TABLE WatchLog as WatchLog_old ENGINE=Merge(currentDatabase(), '^WatchLog');
+
+SELECT *
+FROM WatchLog
+```
+
+``` text
+┌───────date─┬─UserId─┬─EventType─┬─Cnt─┐
+│ 2018-01-01 │ 1 │ hit │ 3 │
+└────────────┴────────┴───────────┴─────┘
+┌───────date─┬─UserId─┬─EventType─┬─Cnt─┐
+│ 2018-01-02 │ 2 │ hit │ 3 │
+└────────────┴────────┴───────────┴─────┘
+```
+
+## Sanal Sütunlar {#virtual-columns}
+
+- `_table` — Contains the name of the table from which data was read. Type: [Dize](../../../sql_reference/data_types/string.md).
+
+ Sabit koşulları ayarlayabilirsiniz `_table` in the `WHERE/PREWHERE` fıkra (sı (örneğin, `WHERE _table='xyz'`). Bu durumda, okuma işlemi yalnızca koşulun açık olduğu tablolar için gerçekleştirilir `_table` memnun olduğunu, bu yüzden `_table` sütun bir dizin görevi görür.
+
+**Ayrıca Bakınız**
+
+- [Sanal sütunlar](index.md#table_engines-virtual_columns)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/merge/)
diff --git a/docs/tr/engines/table_engines/special/null.md b/docs/tr/engines/table_engines/special/null.md
new file mode 100644
index 0000000000..19d518f415
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/null.md
@@ -0,0 +1,14 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 38
+toc_title: "Bo\u015F"
+---
+
+# Boş {#null}
+
+Boş bir tabloya yazarken, veri yoksayılır. Boş bir tablodan okurken, yanıt boştur.
+
+Ancak, boş bir tablo üzerinde materialized bir görünüm oluşturabilirsiniz. Böylece tabloya yazılan veriler görünümde sona erecek.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/null/)
diff --git a/docs/tr/engines/table_engines/special/set.md b/docs/tr/engines/table_engines/special/set.md
new file mode 100644
index 0000000000..af94ada6e1
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/set.md
@@ -0,0 +1,19 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 39
+toc_title: Koymak
+---
+
+# Koymak {#set}
+
+Her zaman RAM olan bir veri kümesi. In operatörünün sağ tarafında kullanılmak üzere tasarlanmıştır (bölüme bakın “IN operators”).
+
+Tabloya veri eklemek için INSERT kullanabilirsiniz. Veri kümesine yeni öğeler eklenirken, yinelenenler göz ardı edilir.
+Ancak tablodan seçim yapamazsınız. Verileri almak için tek yol, IN operatörünün sağ yarısında kullanmaktır.
+
+Veri her zaman RAM yer almaktadır. INSERT için, eklenen veri blokları da diskteki tabloların dizinine yazılır. Sunucuyu başlatırken, bu veriler RAM'e yüklenir. Başka bir deyişle, yeniden başlattıktan sonra veriler yerinde kalır.
+
+Kaba bir sunucu yeniden başlatma için diskteki veri bloğu kaybolabilir veya zarar görebilir. İkinci durumda, dosyayı hasarlı verilerle el ile silmeniz gerekebilir.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/set/)
diff --git a/docs/tr/engines/table_engines/special/url.md b/docs/tr/engines/table_engines/special/url.md
new file mode 100644
index 0000000000..51657248e7
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/url.md
@@ -0,0 +1,82 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 41
+toc_title: URL
+---
+
+# URL (URL, Biçim) {#table_engines-url}
+
+Uzak bir HTTP/HTTPS sunucusundaki verileri yönetir. Bu motor benzer
+to the [Dosya](file.md) motor.
+
+## ClickHouse sunucusunda motoru kullanma {#using-the-engine-in-the-clickhouse-server}
+
+Bu `format` Clickhouse'un kullanabileceği bir tane olmalı
+`SELECT` sorgular ve gerekirse `INSERTs`. Desteklenen formatların tam listesi için bkz.
+[Biçimliler](../../../interfaces/formats.md#formats).
+
+Bu `URL` tekdüzen bir kaynak Bulucu yapısına uygun olmalıdır. Belirtilen URL bir sunucuya işaret etmelidir
+bu HTTP veya HTTPS kullanır. Bu herhangi bir gerektirmez
+sunucudan yanıt almak için ek başlıklar.
+
+`INSERT` ve `SELECT` sorgular dönüştürülür `POST` ve `GET` istemler,
+sırasıyla. İşleme için `POST` istekleri, uzak sunucu desteklemesi gerekir
+[Yığınlı aktarım kodlaması](https://en.wikipedia.org/wiki/Chunked_transfer_encoding).
+
+Kullanarak HTTP get yönlendirme şerbetçiotu sayısını sınırlayabilirsiniz [max\_http\_get\_redirects](../../../operations/settings/settings.md#setting-max_http_get_redirects) ayar.
+
+**Örnek:**
+
+**1.** Create a `url_engine_table` sunucuda tablo :
+
+``` sql
+CREATE TABLE url_engine_table (word String, value UInt64)
+ENGINE=URL('http://127.0.0.1:12345/', CSV)
+```
+
+**2.** Standart Python 3 araçlarını kullanarak temel bir HTTP Sunucusu oluşturun ve
+Başlat:
+
+``` python3
+from http.server import BaseHTTPRequestHandler, HTTPServer
+
+class CSVHTTPServer(BaseHTTPRequestHandler):
+ def do_GET(self):
+ self.send_response(200)
+ self.send_header('Content-type', 'text/csv')
+ self.end_headers()
+
+ self.wfile.write(bytes('Hello,1\nWorld,2\n', "utf-8"))
+
+if __name__ == "__main__":
+ server_address = ('127.0.0.1', 12345)
+ HTTPServer(server_address, CSVHTTPServer).serve_forever()
+```
+
+``` bash
+$ python3 server.py
+```
+
+**3.** Veri iste:
+
+``` sql
+SELECT * FROM url_engine_table
+```
+
+``` text
+┌─word──┬─value─┐
+│ Hello │ 1 │
+│ World │ 2 │
+└───────┴───────┘
+```
+
+## Uygulama Detayları {#details-of-implementation}
+
+- Okuma ve yazma paralel olabilir
+- Desteklenmiyor:
+ - `ALTER` ve `SELECT...SAMPLE` harekat.
+ - Dizinler.
+ - Çoğalma.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/url/)
diff --git a/docs/tr/engines/table_engines/special/view.md b/docs/tr/engines/table_engines/special/view.md
new file mode 100644
index 0000000000..e3b46a7b92
--- /dev/null
+++ b/docs/tr/engines/table_engines/special/view.md
@@ -0,0 +1,12 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 42
+toc_title: "G\xF6r\xFCn\xFCm"
+---
+
+# Görünüm {#table_engines-view}
+
+Görünümler uygulamak için kullanılır (Daha fazla bilgi için bkz. `CREATE VIEW query`). Verileri saklamaz, ancak yalnızca belirtilen `SELECT` sorgu. Bir tablodan okurken, bu sorguyu çalıştırır (ve gereksiz tüm sütunları sorgudan siler).
+
+[Orijinal makale](https://clickhouse.tech/docs/en/operations/table_engines/view/)
diff --git a/docs/tr/faq/general.md b/docs/tr/faq/general.md
new file mode 100644
index 0000000000..05779e132a
--- /dev/null
+++ b/docs/tr/faq/general.md
@@ -0,0 +1,60 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 78
+toc_title: Genel Sorular
+---
+
+# Genel Sorular {#general-questions}
+
+## Neden MapReduce Gibi Bir Şey Kullanmıyorsun? {#why-not-use-something-like-mapreduce}
+
+Mapreduce gibi sistemlere, azaltma işleminin dağıtılmış sıralamaya dayandığı dağıtılmış bilgi işlem sistemleri olarak başvurabiliriz. Bu sınıftaki en yaygın açık kaynak çözümü [Apache Hadoop](http://hadoop.apache.org). Yandex, şirket içi çözümünü, YT'Yİ kullanıyor.
+
+Bu sistemler, yüksek gecikme süreleri nedeniyle çevrimiçi sorgular için uygun değildir. Başka bir deyişle, bir web arayüzü için arka uç olarak kullanılamazlar. Bu tür sistemler gerçek zamanlı veri güncellemeleri için yararlı değildir. Dağıtılmış sıralama, işlemin sonucu ve tüm ara sonuçlar (varsa) tek bir sunucunun RAM'İNDE bulunuyorsa, genellikle çevrimiçi sorgular için geçerli olan işlemleri azaltmanın en iyi yolu değildir. Böyle bir durumda, bir karma tablo azaltma işlemlerini gerçekleştirmek için en uygun yoldur. Harita azaltma görevlerini optimize etmek için ortak bir yaklaşım, RAM'de bir karma tablo kullanarak ön toplama (kısmi azaltma) ' dir. Kullanıcı bu optimizasyonu manuel olarak gerçekleştirir. Dağıtılmış sıralama, basit harita azaltma görevlerini çalıştırırken düşük performansın ana nedenlerinden biridir.
+
+Çoğu MapReduce uygulaması, bir kümede rasgele kod çalıştırmanıza izin verir. Ancak bildirimsel bir sorgu dili, deneyleri hızlı bir şekilde çalıştırmak için OLAP için daha uygundur. Örneğin, Hadoop kovanı ve domuz vardır. Ayrıca Spark için Cloudera Impala veya Shark'ı (modası geçmiş) ve Spark SQL, Presto ve Apache Drill'i de düşünün. Bu tür görevleri çalıştırırken performans, özel sistemlere kıyasla oldukça düşük bir seviyededir, ancak nispeten yüksek gecikme, bu sistemleri bir web arayüzü için arka uç olarak kullanmayı gerçekçi kılmaktadır.
+
+## Oracle aracılığıyla ODBC kullanırken Kodlamalarla ilgili bir sorunum varsa ne olur? {#oracle-odbc-encodings}
+
+Oracle ODBC sürücüsü aracılığıyla dış sözlükler kaynağı olarak kullanırsanız, doğru değeri ayarlamanız gerekir. `NLS_LANG` ortam değişkeni `/etc/default/clickhouse`. Daha fazla bilgi için, bkz: [Oracle NLS\_LANG SSS](https://www.oracle.com/technetwork/products/globalization/nls-lang-099431.html).
+
+**Örnek**
+
+``` sql
+NLS_LANG=RUSSIAN_RUSSIA.UTF8
+```
+
+## Clickhouse'dan bir dosyaya verileri nasıl dışa aktarırım? {#how-to-export-to-file}
+
+### INTO OUTFİLE yan tümcesini kullanma {#using-into-outfile-clause}
+
+Add an [INTO OUTFILE](../sql_reference/statements/select.md#into-outfile-clause) sorgunuza yan tümce.
+
+Mesela:
+
+``` sql
+SELECT * FROM table INTO OUTFILE 'file'
+```
+
+Varsayılan olarak, ClickHouse kullanır [TabSeparated](../interfaces/formats.md#tabseparated) çıktı verileri için Biçim. Seçmek için [Veri formatı](../interfaces/formats.md), use the [FORMAT CLA clauseuse](../sql_reference/statements/select.md#format-clause).
+
+Mesela:
+
+``` sql
+SELECT * FROM table INTO OUTFILE 'file' FORMAT CSV
+```
+
+### Dosya altyapısı tablosu kullanma {#using-a-file-engine-table}
+
+Görmek [Dosya](../engines/table_engines/special/file.md).
+
+### Komut Satırı Yeniden Yönlendirmesini Kullanma {#using-command-line-redirection}
+
+``` sql
+$ clickhouse-client --query "SELECT * from table" --format FormatName > result.txt
+```
+
+Görmek [clickhouse-müşteri](../interfaces/cli.md).
+
+{## [Orijinal makale](https://clickhouse.tech/docs/en/faq/general/) ##}
diff --git a/docs/tr/faq/index.md b/docs/tr/faq/index.md
new file mode 100644
index 0000000000..591011fb66
--- /dev/null
+++ b/docs/tr/faq/index.md
@@ -0,0 +1,8 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: F.A.Q.
+toc_priority: 76
+---
+
+
diff --git a/docs/tr/getting_started/example_datasets/amplab_benchmark.md b/docs/tr/getting_started/example_datasets/amplab_benchmark.md
new file mode 100644
index 0000000000..e6f95df68b
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/amplab_benchmark.md
@@ -0,0 +1,129 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 17
+toc_title: "AMPLab B\xFCy\xFCk Veri Benchmark"
+---
+
+# AMPLab Büyük Veri Benchmark {#amplab-big-data-benchmark}
+
+Bkz. https://amplab.cs.berkeley.edu/benchmark/
+
+Ücretsiz bir hesap için kaydolun https://aws.amazon.com. bir kredi kartı, e-posta ve telefon numarası gerektirir. Yeni bir erişim anahtarı alın https://console.aws.amazon.com/iam/home?nc2=h\_m\_sc\#security\_credential
+
+Konsolda aşağıdakileri çalıştırın:
+
+``` bash
+$ sudo apt-get install s3cmd
+$ mkdir tiny; cd tiny;
+$ s3cmd sync s3://big-data-benchmark/pavlo/text-deflate/tiny/ .
+$ cd ..
+$ mkdir 1node; cd 1node;
+$ s3cmd sync s3://big-data-benchmark/pavlo/text-deflate/1node/ .
+$ cd ..
+$ mkdir 5nodes; cd 5nodes;
+$ s3cmd sync s3://big-data-benchmark/pavlo/text-deflate/5nodes/ .
+$ cd ..
+```
+
+Aşağıdaki ClickHouse sorguları çalıştırın:
+
+``` sql
+CREATE TABLE rankings_tiny
+(
+ pageURL String,
+ pageRank UInt32,
+ avgDuration UInt32
+) ENGINE = Log;
+
+CREATE TABLE uservisits_tiny
+(
+ sourceIP String,
+ destinationURL String,
+ visitDate Date,
+ adRevenue Float32,
+ UserAgent String,
+ cCode FixedString(3),
+ lCode FixedString(6),
+ searchWord String,
+ duration UInt32
+) ENGINE = MergeTree(visitDate, visitDate, 8192);
+
+CREATE TABLE rankings_1node
+(
+ pageURL String,
+ pageRank UInt32,
+ avgDuration UInt32
+) ENGINE = Log;
+
+CREATE TABLE uservisits_1node
+(
+ sourceIP String,
+ destinationURL String,
+ visitDate Date,
+ adRevenue Float32,
+ UserAgent String,
+ cCode FixedString(3),
+ lCode FixedString(6),
+ searchWord String,
+ duration UInt32
+) ENGINE = MergeTree(visitDate, visitDate, 8192);
+
+CREATE TABLE rankings_5nodes_on_single
+(
+ pageURL String,
+ pageRank UInt32,
+ avgDuration UInt32
+) ENGINE = Log;
+
+CREATE TABLE uservisits_5nodes_on_single
+(
+ sourceIP String,
+ destinationURL String,
+ visitDate Date,
+ adRevenue Float32,
+ UserAgent String,
+ cCode FixedString(3),
+ lCode FixedString(6),
+ searchWord String,
+ duration UInt32
+) ENGINE = MergeTree(visitDate, visitDate, 8192);
+```
+
+Konsola geri dön:
+
+``` bash
+$ for i in tiny/rankings/*.deflate; do echo $i; zlib-flate -uncompress < $i | clickhouse-client --host=example-perftest01j --query="INSERT INTO rankings_tiny FORMAT CSV"; done
+$ for i in tiny/uservisits/*.deflate; do echo $i; zlib-flate -uncompress < $i | clickhouse-client --host=example-perftest01j --query="INSERT INTO uservisits_tiny FORMAT CSV"; done
+$ for i in 1node/rankings/*.deflate; do echo $i; zlib-flate -uncompress < $i | clickhouse-client --host=example-perftest01j --query="INSERT INTO rankings_1node FORMAT CSV"; done
+$ for i in 1node/uservisits/*.deflate; do echo $i; zlib-flate -uncompress < $i | clickhouse-client --host=example-perftest01j --query="INSERT INTO uservisits_1node FORMAT CSV"; done
+$ for i in 5nodes/rankings/*.deflate; do echo $i; zlib-flate -uncompress < $i | clickhouse-client --host=example-perftest01j --query="INSERT INTO rankings_5nodes_on_single FORMAT CSV"; done
+$ for i in 5nodes/uservisits/*.deflate; do echo $i; zlib-flate -uncompress < $i | clickhouse-client --host=example-perftest01j --query="INSERT INTO uservisits_5nodes_on_single FORMAT CSV"; done
+```
+
+Veri örnekleri almak için sorgular:
+
+``` sql
+SELECT pageURL, pageRank FROM rankings_1node WHERE pageRank > 1000
+
+SELECT substring(sourceIP, 1, 8), sum(adRevenue) FROM uservisits_1node GROUP BY substring(sourceIP, 1, 8)
+
+SELECT
+ sourceIP,
+ sum(adRevenue) AS totalRevenue,
+ avg(pageRank) AS pageRank
+FROM rankings_1node ALL INNER JOIN
+(
+ SELECT
+ sourceIP,
+ destinationURL AS pageURL,
+ adRevenue
+ FROM uservisits_1node
+ WHERE (visitDate > '1980-01-01') AND (visitDate < '1980-04-01')
+) USING pageURL
+GROUP BY sourceIP
+ORDER BY totalRevenue DESC
+LIMIT 1
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/example_datasets/amplab_benchmark/)
diff --git a/docs/tr/getting_started/example_datasets/criteo.md b/docs/tr/getting_started/example_datasets/criteo.md
new file mode 100644
index 0000000000..37cb2d2b0e
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/criteo.md
@@ -0,0 +1,81 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 19
+toc_title: "Criteo'dan Terabyte t\u0131klama g\xFCnl\xFCkleri"
+---
+
+# Criteo'dan tıklama günlüklerinin terabayt {#terabyte-of-click-logs-from-criteo}
+
+Verileri indirin http://labs.criteo.com/downloads/download-terabyte-click-logs/
+
+Günlük almak için bir tablo oluşturun:
+
+``` sql
+CREATE TABLE criteo_log (date Date, clicked UInt8, int1 Int32, int2 Int32, int3 Int32, int4 Int32, int5 Int32, int6 Int32, int7 Int32, int8 Int32, int9 Int32, int10 Int32, int11 Int32, int12 Int32, int13 Int32, cat1 String, cat2 String, cat3 String, cat4 String, cat5 String, cat6 String, cat7 String, cat8 String, cat9 String, cat10 String, cat11 String, cat12 String, cat13 String, cat14 String, cat15 String, cat16 String, cat17 String, cat18 String, cat19 String, cat20 String, cat21 String, cat22 String, cat23 String, cat24 String, cat25 String, cat26 String) ENGINE = Log
+```
+
+Verileri indirin:
+
+``` bash
+$ for i in {00..23}; do echo $i; zcat datasets/criteo/day_${i#0}.gz | sed -r 's/^/2000-01-'${i/00/24}'\t/' | clickhouse-client --host=example-perftest01j --query="INSERT INTO criteo_log FORMAT TabSeparated"; done
+```
+
+Dönüştürülen veriler için bir tablo oluşturma:
+
+``` sql
+CREATE TABLE criteo
+(
+ date Date,
+ clicked UInt8,
+ int1 Int32,
+ int2 Int32,
+ int3 Int32,
+ int4 Int32,
+ int5 Int32,
+ int6 Int32,
+ int7 Int32,
+ int8 Int32,
+ int9 Int32,
+ int10 Int32,
+ int11 Int32,
+ int12 Int32,
+ int13 Int32,
+ icat1 UInt32,
+ icat2 UInt32,
+ icat3 UInt32,
+ icat4 UInt32,
+ icat5 UInt32,
+ icat6 UInt32,
+ icat7 UInt32,
+ icat8 UInt32,
+ icat9 UInt32,
+ icat10 UInt32,
+ icat11 UInt32,
+ icat12 UInt32,
+ icat13 UInt32,
+ icat14 UInt32,
+ icat15 UInt32,
+ icat16 UInt32,
+ icat17 UInt32,
+ icat18 UInt32,
+ icat19 UInt32,
+ icat20 UInt32,
+ icat21 UInt32,
+ icat22 UInt32,
+ icat23 UInt32,
+ icat24 UInt32,
+ icat25 UInt32,
+ icat26 UInt32
+) ENGINE = MergeTree(date, intHash32(icat1), (date, intHash32(icat1)), 8192)
+```
+
+Verileri ham günlüğünden dönüştürün ve ikinci tabloya koyun:
+
+``` sql
+INSERT INTO criteo SELECT date, clicked, int1, int2, int3, int4, int5, int6, int7, int8, int9, int10, int11, int12, int13, reinterpretAsUInt32(unhex(cat1)) AS icat1, reinterpretAsUInt32(unhex(cat2)) AS icat2, reinterpretAsUInt32(unhex(cat3)) AS icat3, reinterpretAsUInt32(unhex(cat4)) AS icat4, reinterpretAsUInt32(unhex(cat5)) AS icat5, reinterpretAsUInt32(unhex(cat6)) AS icat6, reinterpretAsUInt32(unhex(cat7)) AS icat7, reinterpretAsUInt32(unhex(cat8)) AS icat8, reinterpretAsUInt32(unhex(cat9)) AS icat9, reinterpretAsUInt32(unhex(cat10)) AS icat10, reinterpretAsUInt32(unhex(cat11)) AS icat11, reinterpretAsUInt32(unhex(cat12)) AS icat12, reinterpretAsUInt32(unhex(cat13)) AS icat13, reinterpretAsUInt32(unhex(cat14)) AS icat14, reinterpretAsUInt32(unhex(cat15)) AS icat15, reinterpretAsUInt32(unhex(cat16)) AS icat16, reinterpretAsUInt32(unhex(cat17)) AS icat17, reinterpretAsUInt32(unhex(cat18)) AS icat18, reinterpretAsUInt32(unhex(cat19)) AS icat19, reinterpretAsUInt32(unhex(cat20)) AS icat20, reinterpretAsUInt32(unhex(cat21)) AS icat21, reinterpretAsUInt32(unhex(cat22)) AS icat22, reinterpretAsUInt32(unhex(cat23)) AS icat23, reinterpretAsUInt32(unhex(cat24)) AS icat24, reinterpretAsUInt32(unhex(cat25)) AS icat25, reinterpretAsUInt32(unhex(cat26)) AS icat26 FROM criteo_log;
+
+DROP TABLE criteo_log;
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/example_datasets/criteo/)
diff --git a/docs/tr/getting_started/example_datasets/index.md b/docs/tr/getting_started/example_datasets/index.md
new file mode 100644
index 0000000000..fecb39f219
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/index.md
@@ -0,0 +1,22 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "\xD6rnek Veri K\xFCmeleri"
+toc_priority: 12
+toc_title: "Giri\u015F"
+---
+
+# Örnek Veri Kümeleri {#example-datasets}
+
+Bu bölümde, örnek veri kümelerinin nasıl elde edileceği ve bunları Clickhouse'a nasıl içe aktarılacağı açıklanmaktadır.
+Bazı veri kümeleri için örnek sorgular da mevcuttur.
+
+- [Anonim Yandex.Metrica Veri Kümesi](metrica.md)
+- [Yıldız Şema Ben Benchmarkch Benchmarkmark](star_schema.md)
+- [WikiStat](wikistat.md)
+- [Criteo'dan tıklama günlüklerinin terabayt](criteo.md)
+- [AMPLab Büyük Veri Benchmark](amplab_benchmark.md)
+- [New York Taksi Verileri](nyc_taxi.md)
+- [OnTime](ontime.md)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/example_datasets)
diff --git a/docs/tr/getting_started/example_datasets/metrica.md b/docs/tr/getting_started/example_datasets/metrica.md
new file mode 100644
index 0000000000..a9d3d6743e
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/metrica.md
@@ -0,0 +1,70 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 21
+toc_title: "\xDCye.Metrica Verileri"
+---
+
+# Anonim Yandex.Metrica Verileri {#anonymized-yandex-metrica-data}
+
+Veri kümesi, isabetlerle ilgili anonimleştirilmiş verileri içeren iki tablodan oluşur (`hits_v1`) ve ziyaret visitsler (`visits_v1`(kayıt olmak için).Metrica. Yandex hakkında daha fazla bilgi edinebilirsiniz.Metrica içinde [ClickHouse geçmişi](../../introduction/history.md) bölme.
+
+Veri kümesi iki tablodan oluşur, bunlardan biri sıkıştırılmış olarak indirilebilir `tsv.xz` dosya veya hazırlanmış bölümler olarak. Buna ek olarak, genişletilmiş bir sürümü `hits` 100 milyon satır içeren tablo TSV olarak mevcuttur https://clickhouse-datasets.s3.yandex.net/hits/tsv/hits\_100m\_obfuscated\_v1.tsv.xz ve hazırlanan bölümler olarak https://clickhouse-datasets.s3.yandex.net/hits/partitions/hits\_100m\_obfuscated\_v1.tar.xz.
+
+## Hazırlanan bölümlerden tablolar elde etme {#obtaining-tables-from-prepared-partitions}
+
+İndirme ve ithalat tablo hits:
+
+``` bash
+curl -O https://clickhouse-datasets.s3.yandex.net/hits/partitions/hits_v1.tar
+tar xvf hits_v1.tar -C /var/lib/clickhouse # path to ClickHouse data directory
+# check permissions on unpacked data, fix if required
+sudo service clickhouse-server restart
+clickhouse-client --query "SELECT COUNT(*) FROM datasets.hits_v1"
+```
+
+İndirme ve ithalat ziyaretleri:
+
+``` bash
+curl -O https://clickhouse-datasets.s3.yandex.net/visits/partitions/visits_v1.tar
+tar xvf visits_v1.tar -C /var/lib/clickhouse # path to ClickHouse data directory
+# check permissions on unpacked data, fix if required
+sudo service clickhouse-server restart
+clickhouse-client --query "SELECT COUNT(*) FROM datasets.visits_v1"
+```
+
+## Sıkıştırılmış TSV dosyasından Tablo alma {#obtaining-tables-from-compressed-tsv-file}
+
+Sıkıştırılmış TSV dosyasından indir ve İçe Aktar:
+
+``` bash
+curl https://clickhouse-datasets.s3.yandex.net/hits/tsv/hits_v1.tsv.xz | unxz --threads=`nproc` > hits_v1.tsv
+# now create table
+clickhouse-client --query "CREATE DATABASE IF NOT EXISTS datasets"
+clickhouse-client --query "CREATE TABLE datasets.hits_v1 ( WatchID UInt64, JavaEnable UInt8, Title String, GoodEvent Int16, EventTime DateTime, EventDate Date, CounterID UInt32, ClientIP UInt32, ClientIP6 FixedString(16), RegionID UInt32, UserID UInt64, CounterClass Int8, OS UInt8, UserAgent UInt8, URL String, Referer String, URLDomain String, RefererDomain String, Refresh UInt8, IsRobot UInt8, RefererCategories Array(UInt16), URLCategories Array(UInt16), URLRegions Array(UInt32), RefererRegions Array(UInt32), ResolutionWidth UInt16, ResolutionHeight UInt16, ResolutionDepth UInt8, FlashMajor UInt8, FlashMinor UInt8, FlashMinor2 String, NetMajor UInt8, NetMinor UInt8, UserAgentMajor UInt16, UserAgentMinor FixedString(2), CookieEnable UInt8, JavascriptEnable UInt8, IsMobile UInt8, MobilePhone UInt8, MobilePhoneModel String, Params String, IPNetworkID UInt32, TraficSourceID Int8, SearchEngineID UInt16, SearchPhrase String, AdvEngineID UInt8, IsArtifical UInt8, WindowClientWidth UInt16, WindowClientHeight UInt16, ClientTimeZone Int16, ClientEventTime DateTime, SilverlightVersion1 UInt8, SilverlightVersion2 UInt8, SilverlightVersion3 UInt32, SilverlightVersion4 UInt16, PageCharset String, CodeVersion UInt32, IsLink UInt8, IsDownload UInt8, IsNotBounce UInt8, FUniqID UInt64, HID UInt32, IsOldCounter UInt8, IsEvent UInt8, IsParameter UInt8, DontCountHits UInt8, WithHash UInt8, HitColor FixedString(1), UTCEventTime DateTime, Age UInt8, Sex UInt8, Income UInt8, Interests UInt16, Robotness UInt8, GeneralInterests Array(UInt16), RemoteIP UInt32, RemoteIP6 FixedString(16), WindowName Int32, OpenerName Int32, HistoryLength Int16, BrowserLanguage FixedString(2), BrowserCountry FixedString(2), SocialNetwork String, SocialAction String, HTTPError UInt16, SendTiming Int32, DNSTiming Int32, ConnectTiming Int32, ResponseStartTiming Int32, ResponseEndTiming Int32, FetchTiming Int32, RedirectTiming Int32, DOMInteractiveTiming Int32, DOMContentLoadedTiming Int32, DOMCompleteTiming Int32, LoadEventStartTiming Int32, LoadEventEndTiming Int32, NSToDOMContentLoadedTiming Int32, FirstPaintTiming Int32, RedirectCount Int8, SocialSourceNetworkID UInt8, SocialSourcePage String, ParamPrice Int64, ParamOrderID String, ParamCurrency FixedString(3), ParamCurrencyID UInt16, GoalsReached Array(UInt32), OpenstatServiceName String, OpenstatCampaignID String, OpenstatAdID String, OpenstatSourceID String, UTMSource String, UTMMedium String, UTMCampaign String, UTMContent String, UTMTerm String, FromTag String, HasGCLID UInt8, RefererHash UInt64, URLHash UInt64, CLID UInt32, YCLID UInt64, ShareService String, ShareURL String, ShareTitle String, ParsedParams Nested(Key1 String, Key2 String, Key3 String, Key4 String, Key5 String, ValueDouble Float64), IslandID FixedString(16), RequestNum UInt32, RequestTry UInt8) ENGINE = MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity = 8192"
+# import data
+cat hits_v1.tsv | clickhouse-client --query "INSERT INTO datasets.hits_v1 FORMAT TSV" --max_insert_block_size=100000
+# optionally you can optimize table
+clickhouse-client --query "OPTIMIZE TABLE datasets.hits_v1 FINAL"
+clickhouse-client --query "SELECT COUNT(*) FROM datasets.hits_v1"
+```
+
+Sıkıştırılmış tsv dosyasından ziyaretleri indirin ve içe aktarın:
+
+``` bash
+curl https://clickhouse-datasets.s3.yandex.net/visits/tsv/visits_v1.tsv.xz | unxz --threads=`nproc` > visits_v1.tsv
+# now create table
+clickhouse-client --query "CREATE DATABASE IF NOT EXISTS datasets"
+clickhouse-client --query "CREATE TABLE datasets.visits_v1 ( CounterID UInt32, StartDate Date, Sign Int8, IsNew UInt8, VisitID UInt64, UserID UInt64, StartTime DateTime, Duration UInt32, UTCStartTime DateTime, PageViews Int32, Hits Int32, IsBounce UInt8, Referer String, StartURL String, RefererDomain String, StartURLDomain String, EndURL String, LinkURL String, IsDownload UInt8, TraficSourceID Int8, SearchEngineID UInt16, SearchPhrase String, AdvEngineID UInt8, PlaceID Int32, RefererCategories Array(UInt16), URLCategories Array(UInt16), URLRegions Array(UInt32), RefererRegions Array(UInt32), IsYandex UInt8, GoalReachesDepth Int32, GoalReachesURL Int32, GoalReachesAny Int32, SocialSourceNetworkID UInt8, SocialSourcePage String, MobilePhoneModel String, ClientEventTime DateTime, RegionID UInt32, ClientIP UInt32, ClientIP6 FixedString(16), RemoteIP UInt32, RemoteIP6 FixedString(16), IPNetworkID UInt32, SilverlightVersion3 UInt32, CodeVersion UInt32, ResolutionWidth UInt16, ResolutionHeight UInt16, UserAgentMajor UInt16, UserAgentMinor UInt16, WindowClientWidth UInt16, WindowClientHeight UInt16, SilverlightVersion2 UInt8, SilverlightVersion4 UInt16, FlashVersion3 UInt16, FlashVersion4 UInt16, ClientTimeZone Int16, OS UInt8, UserAgent UInt8, ResolutionDepth UInt8, FlashMajor UInt8, FlashMinor UInt8, NetMajor UInt8, NetMinor UInt8, MobilePhone UInt8, SilverlightVersion1 UInt8, Age UInt8, Sex UInt8, Income UInt8, JavaEnable UInt8, CookieEnable UInt8, JavascriptEnable UInt8, IsMobile UInt8, BrowserLanguage UInt16, BrowserCountry UInt16, Interests UInt16, Robotness UInt8, GeneralInterests Array(UInt16), Params Array(String), Goals Nested(ID UInt32, Serial UInt32, EventTime DateTime, Price Int64, OrderID String, CurrencyID UInt32), WatchIDs Array(UInt64), ParamSumPrice Int64, ParamCurrency FixedString(3), ParamCurrencyID UInt16, ClickLogID UInt64, ClickEventID Int32, ClickGoodEvent Int32, ClickEventTime DateTime, ClickPriorityID Int32, ClickPhraseID Int32, ClickPageID Int32, ClickPlaceID Int32, ClickTypeID Int32, ClickResourceID Int32, ClickCost UInt32, ClickClientIP UInt32, ClickDomainID UInt32, ClickURL String, ClickAttempt UInt8, ClickOrderID UInt32, ClickBannerID UInt32, ClickMarketCategoryID UInt32, ClickMarketPP UInt32, ClickMarketCategoryName String, ClickMarketPPName String, ClickAWAPSCampaignName String, ClickPageName String, ClickTargetType UInt16, ClickTargetPhraseID UInt64, ClickContextType UInt8, ClickSelectType Int8, ClickOptions String, ClickGroupBannerID Int32, OpenstatServiceName String, OpenstatCampaignID String, OpenstatAdID String, OpenstatSourceID String, UTMSource String, UTMMedium String, UTMCampaign String, UTMContent String, UTMTerm String, FromTag String, HasGCLID UInt8, FirstVisit DateTime, PredLastVisit Date, LastVisit Date, TotalVisits UInt32, TraficSource Nested(ID Int8, SearchEngineID UInt16, AdvEngineID UInt8, PlaceID UInt16, SocialSourceNetworkID UInt8, Domain String, SearchPhrase String, SocialSourcePage String), Attendance FixedString(16), CLID UInt32, YCLID UInt64, NormalizedRefererHash UInt64, SearchPhraseHash UInt64, RefererDomainHash UInt64, NormalizedStartURLHash UInt64, StartURLDomainHash UInt64, NormalizedEndURLHash UInt64, TopLevelDomain UInt64, URLScheme UInt64, OpenstatServiceNameHash UInt64, OpenstatCampaignIDHash UInt64, OpenstatAdIDHash UInt64, OpenstatSourceIDHash UInt64, UTMSourceHash UInt64, UTMMediumHash UInt64, UTMCampaignHash UInt64, UTMContentHash UInt64, UTMTermHash UInt64, FromHash UInt64, WebVisorEnabled UInt8, WebVisorActivity UInt32, ParsedParams Nested(Key1 String, Key2 String, Key3 String, Key4 String, Key5 String, ValueDouble Float64), Market Nested(Type UInt8, GoalID UInt32, OrderID String, OrderPrice Int64, PP UInt32, DirectPlaceID UInt32, DirectOrderID UInt32, DirectBannerID UInt32, GoodID String, GoodName String, GoodQuantity Int32, GoodPrice Int64), IslandID FixedString(16)) ENGINE = CollapsingMergeTree(Sign) PARTITION BY toYYYYMM(StartDate) ORDER BY (CounterID, StartDate, intHash32(UserID), VisitID) SAMPLE BY intHash32(UserID) SETTINGS index_granularity = 8192"
+# import data
+cat visits_v1.tsv | clickhouse-client --query "INSERT INTO datasets.visits_v1 FORMAT TSV" --max_insert_block_size=100000
+# optionally you can optimize table
+clickhouse-client --query "OPTIMIZE TABLE datasets.visits_v1 FINAL"
+clickhouse-client --query "SELECT COUNT(*) FROM datasets.visits_v1"
+```
+
+## Örnek Sorgular {#example-queries}
+
+[ClickHouse eğitimi](../../getting_started/tutorial.md) Yandex dayanmaktadır.Metrica veri kümesi ve bu veri kümesine başlamak için önerilen yol sadece öğreticiden geçmektir.
+
+Bu tablolara ek sorgu örnekleri arasında bulunabilir [durum bilgisi testleri](https://github.com/ClickHouse/ClickHouse/tree/master/tests/queries/1_stateful) ClickHouse of (onlar adlandırılır `test.hists` ve `test.visits` oralarda).
diff --git a/docs/tr/getting_started/example_datasets/nyc_taxi.md b/docs/tr/getting_started/example_datasets/nyc_taxi.md
new file mode 100644
index 0000000000..218a7f06f7
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/nyc_taxi.md
@@ -0,0 +1,390 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 16
+toc_title: New York Taksi Verileri
+---
+
+# New York Taksi Verileri {#new-york-taxi-data}
+
+Bu veri kümesi iki şekilde elde edilebilir:
+
+- ham verilerden içe aktarma
+- hazırlanan bölüm downloadlerin indir downloadilmesi
+
+## Ham veri nasıl alınır {#how-to-import-the-raw-data}
+
+Bkz. https://github.com/toddwschneider/nyc-taxi-data ve http://tech.marksblogg.com/billion-nyc-taxi-rides-redshift.html bir veri kümesinin açıklaması ve indirme talimatları için.
+
+İndirme, CSV dosyalarında yaklaşık 227 GB sıkıştırılmamış veri ile sonuçlanacaktır. İndirme, 1 Gbit bağlantısı üzerinden yaklaşık bir saat sürer (paralel indirme s3.amazonaws.com 1 Gbit kanalın en az yarısını kurtarır).
+Bazı dosyalar tam olarak indirilmeyebilir. Dosya boyutlarını kontrol edin ve şüpheli görünen herhangi birini yeniden indirin.
+
+Bazı dosyalar geçersiz satırlar içerebilir. Bunları aşağıdaki gibi düzeltebilirsiniz:
+
+``` bash
+sed -E '/(.*,){18,}/d' data/yellow_tripdata_2010-02.csv > data/yellow_tripdata_2010-02.csv_
+sed -E '/(.*,){18,}/d' data/yellow_tripdata_2010-03.csv > data/yellow_tripdata_2010-03.csv_
+mv data/yellow_tripdata_2010-02.csv_ data/yellow_tripdata_2010-02.csv
+mv data/yellow_tripdata_2010-03.csv_ data/yellow_tripdata_2010-03.csv
+```
+
+Daha sonra veriler Postgresql'de önceden işlenmelidir. Bu, çokgenlerdeki noktaların seçimlerini oluşturacaktır (Haritadaki noktaları New York şehrinin ilçeleriyle eşleştirmek için) ve tüm verileri bir birleştirme kullanarak tek bir denormalize düz tabloda birleştirecektir. Bunu yapmak için Postgresql'i Postgıs desteği ile yüklemeniz gerekir.
+
+Çalışırken dikkatli olun `initialize_database.sh` ve tüm tabloların doğru şekilde oluşturulduğunu manuel olarak yeniden kontrol edin.
+
+Postgresql'deki her ayın verilerini işlemek yaklaşık 20-30 dakika sürer, toplam yaklaşık 48 saat sürer.
+
+İndirilen satır sayısını aşağıdaki gibi kontrol edebilirsiniz:
+
+``` bash
+$ time psql nyc-taxi-data -c "SELECT count(*) FROM trips;"
+## Count
+ 1298979494
+(1 row)
+
+real 7m9.164s
+```
+
+(Bu, Mark Litwintschik tarafından bir dizi blog gönderisinde bildirilen 1.1 milyar satırdan biraz daha fazladır .)
+
+Postgresql'deki veriler 370 GB alan kullanıyor.
+
+PostgreSQL veri verme:
+
+``` sql
+COPY
+(
+ SELECT trips.id,
+ trips.vendor_id,
+ trips.pickup_datetime,
+ trips.dropoff_datetime,
+ trips.store_and_fwd_flag,
+ trips.rate_code_id,
+ trips.pickup_longitude,
+ trips.pickup_latitude,
+ trips.dropoff_longitude,
+ trips.dropoff_latitude,
+ trips.passenger_count,
+ trips.trip_distance,
+ trips.fare_amount,
+ trips.extra,
+ trips.mta_tax,
+ trips.tip_amount,
+ trips.tolls_amount,
+ trips.ehail_fee,
+ trips.improvement_surcharge,
+ trips.total_amount,
+ trips.payment_type,
+ trips.trip_type,
+ trips.pickup,
+ trips.dropoff,
+
+ cab_types.type cab_type,
+
+ weather.precipitation_tenths_of_mm rain,
+ weather.snow_depth_mm,
+ weather.snowfall_mm,
+ weather.max_temperature_tenths_degrees_celsius max_temp,
+ weather.min_temperature_tenths_degrees_celsius min_temp,
+ weather.average_wind_speed_tenths_of_meters_per_second wind,
+
+ pick_up.gid pickup_nyct2010_gid,
+ pick_up.ctlabel pickup_ctlabel,
+ pick_up.borocode pickup_borocode,
+ pick_up.boroname pickup_boroname,
+ pick_up.ct2010 pickup_ct2010,
+ pick_up.boroct2010 pickup_boroct2010,
+ pick_up.cdeligibil pickup_cdeligibil,
+ pick_up.ntacode pickup_ntacode,
+ pick_up.ntaname pickup_ntaname,
+ pick_up.puma pickup_puma,
+
+ drop_off.gid dropoff_nyct2010_gid,
+ drop_off.ctlabel dropoff_ctlabel,
+ drop_off.borocode dropoff_borocode,
+ drop_off.boroname dropoff_boroname,
+ drop_off.ct2010 dropoff_ct2010,
+ drop_off.boroct2010 dropoff_boroct2010,
+ drop_off.cdeligibil dropoff_cdeligibil,
+ drop_off.ntacode dropoff_ntacode,
+ drop_off.ntaname dropoff_ntaname,
+ drop_off.puma dropoff_puma
+ FROM trips
+ LEFT JOIN cab_types
+ ON trips.cab_type_id = cab_types.id
+ LEFT JOIN central_park_weather_observations_raw weather
+ ON weather.date = trips.pickup_datetime::date
+ LEFT JOIN nyct2010 pick_up
+ ON pick_up.gid = trips.pickup_nyct2010_gid
+ LEFT JOIN nyct2010 drop_off
+ ON drop_off.gid = trips.dropoff_nyct2010_gid
+) TO '/opt/milovidov/nyc-taxi-data/trips.tsv';
+```
+
+Veri anlık görüntüsü saniyede yaklaşık 50 MB hızında oluşturulur. Anlık görüntü oluştururken, PostgreSQL diskten saniyede yaklaşık 28 MB hızında okur.
+Bu yaklaşık 5 saat sürer. Elde edilen TSV dosyası 590612904969 bayttır.
+
+Clickhouse'da geçici bir tablo oluşturma:
+
+``` sql
+CREATE TABLE trips
+(
+trip_id UInt32,
+vendor_id String,
+pickup_datetime DateTime,
+dropoff_datetime Nullable(DateTime),
+store_and_fwd_flag Nullable(FixedString(1)),
+rate_code_id Nullable(UInt8),
+pickup_longitude Nullable(Float64),
+pickup_latitude Nullable(Float64),
+dropoff_longitude Nullable(Float64),
+dropoff_latitude Nullable(Float64),
+passenger_count Nullable(UInt8),
+trip_distance Nullable(Float64),
+fare_amount Nullable(Float32),
+extra Nullable(Float32),
+mta_tax Nullable(Float32),
+tip_amount Nullable(Float32),
+tolls_amount Nullable(Float32),
+ehail_fee Nullable(Float32),
+improvement_surcharge Nullable(Float32),
+total_amount Nullable(Float32),
+payment_type Nullable(String),
+trip_type Nullable(UInt8),
+pickup Nullable(String),
+dropoff Nullable(String),
+cab_type Nullable(String),
+precipitation Nullable(UInt8),
+snow_depth Nullable(UInt8),
+snowfall Nullable(UInt8),
+max_temperature Nullable(UInt8),
+min_temperature Nullable(UInt8),
+average_wind_speed Nullable(UInt8),
+pickup_nyct2010_gid Nullable(UInt8),
+pickup_ctlabel Nullable(String),
+pickup_borocode Nullable(UInt8),
+pickup_boroname Nullable(String),
+pickup_ct2010 Nullable(String),
+pickup_boroct2010 Nullable(String),
+pickup_cdeligibil Nullable(FixedString(1)),
+pickup_ntacode Nullable(String),
+pickup_ntaname Nullable(String),
+pickup_puma Nullable(String),
+dropoff_nyct2010_gid Nullable(UInt8),
+dropoff_ctlabel Nullable(String),
+dropoff_borocode Nullable(UInt8),
+dropoff_boroname Nullable(String),
+dropoff_ct2010 Nullable(String),
+dropoff_boroct2010 Nullable(String),
+dropoff_cdeligibil Nullable(String),
+dropoff_ntacode Nullable(String),
+dropoff_ntaname Nullable(String),
+dropoff_puma Nullable(String)
+) ENGINE = Log;
+```
+
+Alanları daha doğru veri türlerine dönüştürmek ve mümkünse Boşları ortadan kaldırmak için gereklidir.
+
+``` bash
+$ time clickhouse-client --query="INSERT INTO trips FORMAT TabSeparated" < trips.tsv
+
+real 75m56.214s
+```
+
+Veri 112-140 Mb/saniye hızında okunur.
+Bir akışta bir günlük türü tablosuna veri yükleme 76 dakika sürdü.
+Bu tablodaki veriler 142 GB kullanır.
+
+(Verileri doğrudan Postgres'ten içe aktarmak da mümkündür `COPY ... TO PROGRAM`.)
+
+Unfortunately, all the fields associated with the weather (precipitation…average\_wind\_speed) were filled with NULL. Because of this, we will remove them from the final data set.
+
+Başlamak için, tek bir sunucuda bir tablo oluşturacağız. Daha sonra tabloyu dağıtacağız.
+
+Özet Tablo oluşturma ve doldurma:
+
+``` sql
+CREATE TABLE trips_mergetree
+ENGINE = MergeTree(pickup_date, pickup_datetime, 8192)
+AS SELECT
+
+trip_id,
+CAST(vendor_id AS Enum8('1' = 1, '2' = 2, 'CMT' = 3, 'VTS' = 4, 'DDS' = 5, 'B02512' = 10, 'B02598' = 11, 'B02617' = 12, 'B02682' = 13, 'B02764' = 14)) AS vendor_id,
+toDate(pickup_datetime) AS pickup_date,
+ifNull(pickup_datetime, toDateTime(0)) AS pickup_datetime,
+toDate(dropoff_datetime) AS dropoff_date,
+ifNull(dropoff_datetime, toDateTime(0)) AS dropoff_datetime,
+assumeNotNull(store_and_fwd_flag) IN ('Y', '1', '2') AS store_and_fwd_flag,
+assumeNotNull(rate_code_id) AS rate_code_id,
+assumeNotNull(pickup_longitude) AS pickup_longitude,
+assumeNotNull(pickup_latitude) AS pickup_latitude,
+assumeNotNull(dropoff_longitude) AS dropoff_longitude,
+assumeNotNull(dropoff_latitude) AS dropoff_latitude,
+assumeNotNull(passenger_count) AS passenger_count,
+assumeNotNull(trip_distance) AS trip_distance,
+assumeNotNull(fare_amount) AS fare_amount,
+assumeNotNull(extra) AS extra,
+assumeNotNull(mta_tax) AS mta_tax,
+assumeNotNull(tip_amount) AS tip_amount,
+assumeNotNull(tolls_amount) AS tolls_amount,
+assumeNotNull(ehail_fee) AS ehail_fee,
+assumeNotNull(improvement_surcharge) AS improvement_surcharge,
+assumeNotNull(total_amount) AS total_amount,
+CAST((assumeNotNull(payment_type) AS pt) IN ('CSH', 'CASH', 'Cash', 'CAS', 'Cas', '1') ? 'CSH' : (pt IN ('CRD', 'Credit', 'Cre', 'CRE', 'CREDIT', '2') ? 'CRE' : (pt IN ('NOC', 'No Charge', 'No', '3') ? 'NOC' : (pt IN ('DIS', 'Dispute', 'Dis', '4') ? 'DIS' : 'UNK'))) AS Enum8('CSH' = 1, 'CRE' = 2, 'UNK' = 0, 'NOC' = 3, 'DIS' = 4)) AS payment_type_,
+assumeNotNull(trip_type) AS trip_type,
+ifNull(toFixedString(unhex(pickup), 25), toFixedString('', 25)) AS pickup,
+ifNull(toFixedString(unhex(dropoff), 25), toFixedString('', 25)) AS dropoff,
+CAST(assumeNotNull(cab_type) AS Enum8('yellow' = 1, 'green' = 2, 'uber' = 3)) AS cab_type,
+
+assumeNotNull(pickup_nyct2010_gid) AS pickup_nyct2010_gid,
+toFloat32(ifNull(pickup_ctlabel, '0')) AS pickup_ctlabel,
+assumeNotNull(pickup_borocode) AS pickup_borocode,
+CAST(assumeNotNull(pickup_boroname) AS Enum8('Manhattan' = 1, 'Queens' = 4, 'Brooklyn' = 3, '' = 0, 'Bronx' = 2, 'Staten Island' = 5)) AS pickup_boroname,
+toFixedString(ifNull(pickup_ct2010, '000000'), 6) AS pickup_ct2010,
+toFixedString(ifNull(pickup_boroct2010, '0000000'), 7) AS pickup_boroct2010,
+CAST(assumeNotNull(ifNull(pickup_cdeligibil, ' ')) AS Enum8(' ' = 0, 'E' = 1, 'I' = 2)) AS pickup_cdeligibil,
+toFixedString(ifNull(pickup_ntacode, '0000'), 4) AS pickup_ntacode,
+
+CAST(assumeNotNull(pickup_ntaname) AS Enum16('' = 0, 'Airport' = 1, 'Allerton-Pelham Gardens' = 2, 'Annadale-Huguenot-Prince\'s Bay-Eltingville' = 3, 'Arden Heights' = 4, 'Astoria' = 5, 'Auburndale' = 6, 'Baisley Park' = 7, 'Bath Beach' = 8, 'Battery Park City-Lower Manhattan' = 9, 'Bay Ridge' = 10, 'Bayside-Bayside Hills' = 11, 'Bedford' = 12, 'Bedford Park-Fordham North' = 13, 'Bellerose' = 14, 'Belmont' = 15, 'Bensonhurst East' = 16, 'Bensonhurst West' = 17, 'Borough Park' = 18, 'Breezy Point-Belle Harbor-Rockaway Park-Broad Channel' = 19, 'Briarwood-Jamaica Hills' = 20, 'Brighton Beach' = 21, 'Bronxdale' = 22, 'Brooklyn Heights-Cobble Hill' = 23, 'Brownsville' = 24, 'Bushwick North' = 25, 'Bushwick South' = 26, 'Cambria Heights' = 27, 'Canarsie' = 28, 'Carroll Gardens-Columbia Street-Red Hook' = 29, 'Central Harlem North-Polo Grounds' = 30, 'Central Harlem South' = 31, 'Charleston-Richmond Valley-Tottenville' = 32, 'Chinatown' = 33, 'Claremont-Bathgate' = 34, 'Clinton' = 35, 'Clinton Hill' = 36, 'Co-op City' = 37, 'College Point' = 38, 'Corona' = 39, 'Crotona Park East' = 40, 'Crown Heights North' = 41, 'Crown Heights South' = 42, 'Cypress Hills-City Line' = 43, 'DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill' = 44, 'Douglas Manor-Douglaston-Little Neck' = 45, 'Dyker Heights' = 46, 'East Concourse-Concourse Village' = 47, 'East Elmhurst' = 48, 'East Flatbush-Farragut' = 49, 'East Flushing' = 50, 'East Harlem North' = 51, 'East Harlem South' = 52, 'East New York' = 53, 'East New York (Pennsylvania Ave)' = 54, 'East Tremont' = 55, 'East Village' = 56, 'East Williamsburg' = 57, 'Eastchester-Edenwald-Baychester' = 58, 'Elmhurst' = 59, 'Elmhurst-Maspeth' = 60, 'Erasmus' = 61, 'Far Rockaway-Bayswater' = 62, 'Flatbush' = 63, 'Flatlands' = 64, 'Flushing' = 65, 'Fordham South' = 66, 'Forest Hills' = 67, 'Fort Greene' = 68, 'Fresh Meadows-Utopia' = 69, 'Ft. Totten-Bay Terrace-Clearview' = 70, 'Georgetown-Marine Park-Bergen Beach-Mill Basin' = 71, 'Glen Oaks-Floral Park-New Hyde Park' = 72, 'Glendale' = 73, 'Gramercy' = 74, 'Grasmere-Arrochar-Ft. Wadsworth' = 75, 'Gravesend' = 76, 'Great Kills' = 77, 'Greenpoint' = 78, 'Grymes Hill-Clifton-Fox Hills' = 79, 'Hamilton Heights' = 80, 'Hammels-Arverne-Edgemere' = 81, 'Highbridge' = 82, 'Hollis' = 83, 'Homecrest' = 84, 'Hudson Yards-Chelsea-Flatiron-Union Square' = 85, 'Hunters Point-Sunnyside-West Maspeth' = 86, 'Hunts Point' = 87, 'Jackson Heights' = 88, 'Jamaica' = 89, 'Jamaica Estates-Holliswood' = 90, 'Kensington-Ocean Parkway' = 91, 'Kew Gardens' = 92, 'Kew Gardens Hills' = 93, 'Kingsbridge Heights' = 94, 'Laurelton' = 95, 'Lenox Hill-Roosevelt Island' = 96, 'Lincoln Square' = 97, 'Lindenwood-Howard Beach' = 98, 'Longwood' = 99, 'Lower East Side' = 100, 'Madison' = 101, 'Manhattanville' = 102, 'Marble Hill-Inwood' = 103, 'Mariner\'s Harbor-Arlington-Port Ivory-Graniteville' = 104, 'Maspeth' = 105, 'Melrose South-Mott Haven North' = 106, 'Middle Village' = 107, 'Midtown-Midtown South' = 108, 'Midwood' = 109, 'Morningside Heights' = 110, 'Morrisania-Melrose' = 111, 'Mott Haven-Port Morris' = 112, 'Mount Hope' = 113, 'Murray Hill' = 114, 'Murray Hill-Kips Bay' = 115, 'New Brighton-Silver Lake' = 116, 'New Dorp-Midland Beach' = 117, 'New Springville-Bloomfield-Travis' = 118, 'North Corona' = 119, 'North Riverdale-Fieldston-Riverdale' = 120, 'North Side-South Side' = 121, 'Norwood' = 122, 'Oakland Gardens' = 123, 'Oakwood-Oakwood Beach' = 124, 'Ocean Hill' = 125, 'Ocean Parkway South' = 126, 'Old Astoria' = 127, 'Old Town-Dongan Hills-South Beach' = 128, 'Ozone Park' = 129, 'Park Slope-Gowanus' = 130, 'Parkchester' = 131, 'Pelham Bay-Country Club-City Island' = 132, 'Pelham Parkway' = 133, 'Pomonok-Flushing Heights-Hillcrest' = 134, 'Port Richmond' = 135, 'Prospect Heights' = 136, 'Prospect Lefferts Gardens-Wingate' = 137, 'Queens Village' = 138, 'Queensboro Hill' = 139, 'Queensbridge-Ravenswood-Long Island City' = 140, 'Rego Park' = 141, 'Richmond Hill' = 142, 'Ridgewood' = 143, 'Rikers Island' = 144, 'Rosedale' = 145, 'Rossville-Woodrow' = 146, 'Rugby-Remsen Village' = 147, 'Schuylerville-Throgs Neck-Edgewater Park' = 148, 'Seagate-Coney Island' = 149, 'Sheepshead Bay-Gerritsen Beach-Manhattan Beach' = 150, 'SoHo-TriBeCa-Civic Center-Little Italy' = 151, 'Soundview-Bruckner' = 152, 'Soundview-Castle Hill-Clason Point-Harding Park' = 153, 'South Jamaica' = 154, 'South Ozone Park' = 155, 'Springfield Gardens North' = 156, 'Springfield Gardens South-Brookville' = 157, 'Spuyten Duyvil-Kingsbridge' = 158, 'St. Albans' = 159, 'Stapleton-Rosebank' = 160, 'Starrett City' = 161, 'Steinway' = 162, 'Stuyvesant Heights' = 163, 'Stuyvesant Town-Cooper Village' = 164, 'Sunset Park East' = 165, 'Sunset Park West' = 166, 'Todt Hill-Emerson Hill-Heartland Village-Lighthouse Hill' = 167, 'Turtle Bay-East Midtown' = 168, 'University Heights-Morris Heights' = 169, 'Upper East Side-Carnegie Hill' = 170, 'Upper West Side' = 171, 'Van Cortlandt Village' = 172, 'Van Nest-Morris Park-Westchester Square' = 173, 'Washington Heights North' = 174, 'Washington Heights South' = 175, 'West Brighton' = 176, 'West Concourse' = 177, 'West Farms-Bronx River' = 178, 'West New Brighton-New Brighton-St. George' = 179, 'West Village' = 180, 'Westchester-Unionport' = 181, 'Westerleigh' = 182, 'Whitestone' = 183, 'Williamsbridge-Olinville' = 184, 'Williamsburg' = 185, 'Windsor Terrace' = 186, 'Woodhaven' = 187, 'Woodlawn-Wakefield' = 188, 'Woodside' = 189, 'Yorkville' = 190, 'park-cemetery-etc-Bronx' = 191, 'park-cemetery-etc-Brooklyn' = 192, 'park-cemetery-etc-Manhattan' = 193, 'park-cemetery-etc-Queens' = 194, 'park-cemetery-etc-Staten Island' = 195)) AS pickup_ntaname,
+
+toUInt16(ifNull(pickup_puma, '0')) AS pickup_puma,
+
+assumeNotNull(dropoff_nyct2010_gid) AS dropoff_nyct2010_gid,
+toFloat32(ifNull(dropoff_ctlabel, '0')) AS dropoff_ctlabel,
+assumeNotNull(dropoff_borocode) AS dropoff_borocode,
+CAST(assumeNotNull(dropoff_boroname) AS Enum8('Manhattan' = 1, 'Queens' = 4, 'Brooklyn' = 3, '' = 0, 'Bronx' = 2, 'Staten Island' = 5)) AS dropoff_boroname,
+toFixedString(ifNull(dropoff_ct2010, '000000'), 6) AS dropoff_ct2010,
+toFixedString(ifNull(dropoff_boroct2010, '0000000'), 7) AS dropoff_boroct2010,
+CAST(assumeNotNull(ifNull(dropoff_cdeligibil, ' ')) AS Enum8(' ' = 0, 'E' = 1, 'I' = 2)) AS dropoff_cdeligibil,
+toFixedString(ifNull(dropoff_ntacode, '0000'), 4) AS dropoff_ntacode,
+
+CAST(assumeNotNull(dropoff_ntaname) AS Enum16('' = 0, 'Airport' = 1, 'Allerton-Pelham Gardens' = 2, 'Annadale-Huguenot-Prince\'s Bay-Eltingville' = 3, 'Arden Heights' = 4, 'Astoria' = 5, 'Auburndale' = 6, 'Baisley Park' = 7, 'Bath Beach' = 8, 'Battery Park City-Lower Manhattan' = 9, 'Bay Ridge' = 10, 'Bayside-Bayside Hills' = 11, 'Bedford' = 12, 'Bedford Park-Fordham North' = 13, 'Bellerose' = 14, 'Belmont' = 15, 'Bensonhurst East' = 16, 'Bensonhurst West' = 17, 'Borough Park' = 18, 'Breezy Point-Belle Harbor-Rockaway Park-Broad Channel' = 19, 'Briarwood-Jamaica Hills' = 20, 'Brighton Beach' = 21, 'Bronxdale' = 22, 'Brooklyn Heights-Cobble Hill' = 23, 'Brownsville' = 24, 'Bushwick North' = 25, 'Bushwick South' = 26, 'Cambria Heights' = 27, 'Canarsie' = 28, 'Carroll Gardens-Columbia Street-Red Hook' = 29, 'Central Harlem North-Polo Grounds' = 30, 'Central Harlem South' = 31, 'Charleston-Richmond Valley-Tottenville' = 32, 'Chinatown' = 33, 'Claremont-Bathgate' = 34, 'Clinton' = 35, 'Clinton Hill' = 36, 'Co-op City' = 37, 'College Point' = 38, 'Corona' = 39, 'Crotona Park East' = 40, 'Crown Heights North' = 41, 'Crown Heights South' = 42, 'Cypress Hills-City Line' = 43, 'DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill' = 44, 'Douglas Manor-Douglaston-Little Neck' = 45, 'Dyker Heights' = 46, 'East Concourse-Concourse Village' = 47, 'East Elmhurst' = 48, 'East Flatbush-Farragut' = 49, 'East Flushing' = 50, 'East Harlem North' = 51, 'East Harlem South' = 52, 'East New York' = 53, 'East New York (Pennsylvania Ave)' = 54, 'East Tremont' = 55, 'East Village' = 56, 'East Williamsburg' = 57, 'Eastchester-Edenwald-Baychester' = 58, 'Elmhurst' = 59, 'Elmhurst-Maspeth' = 60, 'Erasmus' = 61, 'Far Rockaway-Bayswater' = 62, 'Flatbush' = 63, 'Flatlands' = 64, 'Flushing' = 65, 'Fordham South' = 66, 'Forest Hills' = 67, 'Fort Greene' = 68, 'Fresh Meadows-Utopia' = 69, 'Ft. Totten-Bay Terrace-Clearview' = 70, 'Georgetown-Marine Park-Bergen Beach-Mill Basin' = 71, 'Glen Oaks-Floral Park-New Hyde Park' = 72, 'Glendale' = 73, 'Gramercy' = 74, 'Grasmere-Arrochar-Ft. Wadsworth' = 75, 'Gravesend' = 76, 'Great Kills' = 77, 'Greenpoint' = 78, 'Grymes Hill-Clifton-Fox Hills' = 79, 'Hamilton Heights' = 80, 'Hammels-Arverne-Edgemere' = 81, 'Highbridge' = 82, 'Hollis' = 83, 'Homecrest' = 84, 'Hudson Yards-Chelsea-Flatiron-Union Square' = 85, 'Hunters Point-Sunnyside-West Maspeth' = 86, 'Hunts Point' = 87, 'Jackson Heights' = 88, 'Jamaica' = 89, 'Jamaica Estates-Holliswood' = 90, 'Kensington-Ocean Parkway' = 91, 'Kew Gardens' = 92, 'Kew Gardens Hills' = 93, 'Kingsbridge Heights' = 94, 'Laurelton' = 95, 'Lenox Hill-Roosevelt Island' = 96, 'Lincoln Square' = 97, 'Lindenwood-Howard Beach' = 98, 'Longwood' = 99, 'Lower East Side' = 100, 'Madison' = 101, 'Manhattanville' = 102, 'Marble Hill-Inwood' = 103, 'Mariner\'s Harbor-Arlington-Port Ivory-Graniteville' = 104, 'Maspeth' = 105, 'Melrose South-Mott Haven North' = 106, 'Middle Village' = 107, 'Midtown-Midtown South' = 108, 'Midwood' = 109, 'Morningside Heights' = 110, 'Morrisania-Melrose' = 111, 'Mott Haven-Port Morris' = 112, 'Mount Hope' = 113, 'Murray Hill' = 114, 'Murray Hill-Kips Bay' = 115, 'New Brighton-Silver Lake' = 116, 'New Dorp-Midland Beach' = 117, 'New Springville-Bloomfield-Travis' = 118, 'North Corona' = 119, 'North Riverdale-Fieldston-Riverdale' = 120, 'North Side-South Side' = 121, 'Norwood' = 122, 'Oakland Gardens' = 123, 'Oakwood-Oakwood Beach' = 124, 'Ocean Hill' = 125, 'Ocean Parkway South' = 126, 'Old Astoria' = 127, 'Old Town-Dongan Hills-South Beach' = 128, 'Ozone Park' = 129, 'Park Slope-Gowanus' = 130, 'Parkchester' = 131, 'Pelham Bay-Country Club-City Island' = 132, 'Pelham Parkway' = 133, 'Pomonok-Flushing Heights-Hillcrest' = 134, 'Port Richmond' = 135, 'Prospect Heights' = 136, 'Prospect Lefferts Gardens-Wingate' = 137, 'Queens Village' = 138, 'Queensboro Hill' = 139, 'Queensbridge-Ravenswood-Long Island City' = 140, 'Rego Park' = 141, 'Richmond Hill' = 142, 'Ridgewood' = 143, 'Rikers Island' = 144, 'Rosedale' = 145, 'Rossville-Woodrow' = 146, 'Rugby-Remsen Village' = 147, 'Schuylerville-Throgs Neck-Edgewater Park' = 148, 'Seagate-Coney Island' = 149, 'Sheepshead Bay-Gerritsen Beach-Manhattan Beach' = 150, 'SoHo-TriBeCa-Civic Center-Little Italy' = 151, 'Soundview-Bruckner' = 152, 'Soundview-Castle Hill-Clason Point-Harding Park' = 153, 'South Jamaica' = 154, 'South Ozone Park' = 155, 'Springfield Gardens North' = 156, 'Springfield Gardens South-Brookville' = 157, 'Spuyten Duyvil-Kingsbridge' = 158, 'St. Albans' = 159, 'Stapleton-Rosebank' = 160, 'Starrett City' = 161, 'Steinway' = 162, 'Stuyvesant Heights' = 163, 'Stuyvesant Town-Cooper Village' = 164, 'Sunset Park East' = 165, 'Sunset Park West' = 166, 'Todt Hill-Emerson Hill-Heartland Village-Lighthouse Hill' = 167, 'Turtle Bay-East Midtown' = 168, 'University Heights-Morris Heights' = 169, 'Upper East Side-Carnegie Hill' = 170, 'Upper West Side' = 171, 'Van Cortlandt Village' = 172, 'Van Nest-Morris Park-Westchester Square' = 173, 'Washington Heights North' = 174, 'Washington Heights South' = 175, 'West Brighton' = 176, 'West Concourse' = 177, 'West Farms-Bronx River' = 178, 'West New Brighton-New Brighton-St. George' = 179, 'West Village' = 180, 'Westchester-Unionport' = 181, 'Westerleigh' = 182, 'Whitestone' = 183, 'Williamsbridge-Olinville' = 184, 'Williamsburg' = 185, 'Windsor Terrace' = 186, 'Woodhaven' = 187, 'Woodlawn-Wakefield' = 188, 'Woodside' = 189, 'Yorkville' = 190, 'park-cemetery-etc-Bronx' = 191, 'park-cemetery-etc-Brooklyn' = 192, 'park-cemetery-etc-Manhattan' = 193, 'park-cemetery-etc-Queens' = 194, 'park-cemetery-etc-Staten Island' = 195)) AS dropoff_ntaname,
+
+toUInt16(ifNull(dropoff_puma, '0')) AS dropoff_puma
+
+FROM trips
+```
+
+Bu, saniyede yaklaşık 428.000 satırlık bir hızda 3030 saniye sürer.
+Daha hızlı yüklemek için, tablo ile oluşturabilirsiniz `Log` motor yerine `MergeTree`. Bu durumda, indirme 200 saniyeden daha hızlı çalışır.
+
+Tablo 126 GB disk alanı kullanır.
+
+``` sql
+SELECT formatReadableSize(sum(bytes)) FROM system.parts WHERE table = 'trips_mergetree' AND active
+```
+
+``` text
+┌─formatReadableSize(sum(bytes))─┐
+│ 126.18 GiB │
+└────────────────────────────────┘
+```
+
+Diğer şeylerin yanı sıra, MERGETREE üzerinde en iyi duruma getirme sorgusunu çalıştırabilirsiniz. Ama her şey onsuz iyi olacak çünkü gerekli değildir.
+
+## Hazırlanan Bölüm downloadlerin indir downloadilmesi {#download-of-prepared-partitions}
+
+``` bash
+$ curl -O https://clickhouse-datasets.s3.yandex.net/trips_mergetree/partitions/trips_mergetree.tar
+$ tar xvf trips_mergetree.tar -C /var/lib/clickhouse # path to ClickHouse data directory
+$ # check permissions of unpacked data, fix if required
+$ sudo service clickhouse-server restart
+$ clickhouse-client --query "select count(*) from datasets.trips_mergetree"
+```
+
+!!! info "Bilgin"
+ Aşağıda açıklanan sorguları çalıştıracaksanız, tam tablo adını kullanmanız gerekir, `datasets.trips_mergetree`.
+
+## Tek Server ile ilgili sonuçlar {#results-on-single-server}
+
+Q1:
+
+``` sql
+SELECT cab_type, count(*) FROM trips_mergetree GROUP BY cab_type
+```
+
+0.490 saniye.
+
+Q2:
+
+``` sql
+SELECT passenger_count, avg(total_amount) FROM trips_mergetree GROUP BY passenger_count
+```
+
+1.224 saniye.
+
+Q3:
+
+``` sql
+SELECT passenger_count, toYear(pickup_date) AS year, count(*) FROM trips_mergetree GROUP BY passenger_count, year
+```
+
+2.104 saniye.
+
+Q4:
+
+``` sql
+SELECT passenger_count, toYear(pickup_date) AS year, round(trip_distance) AS distance, count(*)
+FROM trips_mergetree
+GROUP BY passenger_count, year, distance
+ORDER BY year, count(*) DESC
+```
+
+3.593 saniye.
+
+Aşağıdaki sunucu kullanıldı:
+
+İki Intel(R) Xeon(R) CPU E5-2650 v2 @ 2.60 GHz, 16 fiziksel çekirdekler toplam,128 GiB RAM,8x6 TB HD donanım RAID-5
+
+Yürütme süresi üç koşunun en iyisidir. Ancak ikinci çalıştırmadan başlayarak, sorgular dosya sistemi önbelleğinden verileri okur. Başka önbelleğe alma oluşur: veri okundu ve her vadede işlenir.
+
+Üç sunucuda tablo oluşturma:
+
+Her sunucuda:
+
+``` sql
+CREATE TABLE default.trips_mergetree_third ( trip_id UInt32, vendor_id Enum8('1' = 1, '2' = 2, 'CMT' = 3, 'VTS' = 4, 'DDS' = 5, 'B02512' = 10, 'B02598' = 11, 'B02617' = 12, 'B02682' = 13, 'B02764' = 14), pickup_date Date, pickup_datetime DateTime, dropoff_date Date, dropoff_datetime DateTime, store_and_fwd_flag UInt8, rate_code_id UInt8, pickup_longitude Float64, pickup_latitude Float64, dropoff_longitude Float64, dropoff_latitude Float64, passenger_count UInt8, trip_distance Float64, fare_amount Float32, extra Float32, mta_tax Float32, tip_amount Float32, tolls_amount Float32, ehail_fee Float32, improvement_surcharge Float32, total_amount Float32, payment_type_ Enum8('UNK' = 0, 'CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4), trip_type UInt8, pickup FixedString(25), dropoff FixedString(25), cab_type Enum8('yellow' = 1, 'green' = 2, 'uber' = 3), pickup_nyct2010_gid UInt8, pickup_ctlabel Float32, pickup_borocode UInt8, pickup_boroname Enum8('' = 0, 'Manhattan' = 1, 'Bronx' = 2, 'Brooklyn' = 3, 'Queens' = 4, 'Staten Island' = 5), pickup_ct2010 FixedString(6), pickup_boroct2010 FixedString(7), pickup_cdeligibil Enum8(' ' = 0, 'E' = 1, 'I' = 2), pickup_ntacode FixedString(4), pickup_ntaname Enum16('' = 0, 'Airport' = 1, 'Allerton-Pelham Gardens' = 2, 'Annadale-Huguenot-Prince\'s Bay-Eltingville' = 3, 'Arden Heights' = 4, 'Astoria' = 5, 'Auburndale' = 6, 'Baisley Park' = 7, 'Bath Beach' = 8, 'Battery Park City-Lower Manhattan' = 9, 'Bay Ridge' = 10, 'Bayside-Bayside Hills' = 11, 'Bedford' = 12, 'Bedford Park-Fordham North' = 13, 'Bellerose' = 14, 'Belmont' = 15, 'Bensonhurst East' = 16, 'Bensonhurst West' = 17, 'Borough Park' = 18, 'Breezy Point-Belle Harbor-Rockaway Park-Broad Channel' = 19, 'Briarwood-Jamaica Hills' = 20, 'Brighton Beach' = 21, 'Bronxdale' = 22, 'Brooklyn Heights-Cobble Hill' = 23, 'Brownsville' = 24, 'Bushwick North' = 25, 'Bushwick South' = 26, 'Cambria Heights' = 27, 'Canarsie' = 28, 'Carroll Gardens-Columbia Street-Red Hook' = 29, 'Central Harlem North-Polo Grounds' = 30, 'Central Harlem South' = 31, 'Charleston-Richmond Valley-Tottenville' = 32, 'Chinatown' = 33, 'Claremont-Bathgate' = 34, 'Clinton' = 35, 'Clinton Hill' = 36, 'Co-op City' = 37, 'College Point' = 38, 'Corona' = 39, 'Crotona Park East' = 40, 'Crown Heights North' = 41, 'Crown Heights South' = 42, 'Cypress Hills-City Line' = 43, 'DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill' = 44, 'Douglas Manor-Douglaston-Little Neck' = 45, 'Dyker Heights' = 46, 'East Concourse-Concourse Village' = 47, 'East Elmhurst' = 48, 'East Flatbush-Farragut' = 49, 'East Flushing' = 50, 'East Harlem North' = 51, 'East Harlem South' = 52, 'East New York' = 53, 'East New York (Pennsylvania Ave)' = 54, 'East Tremont' = 55, 'East Village' = 56, 'East Williamsburg' = 57, 'Eastchester-Edenwald-Baychester' = 58, 'Elmhurst' = 59, 'Elmhurst-Maspeth' = 60, 'Erasmus' = 61, 'Far Rockaway-Bayswater' = 62, 'Flatbush' = 63, 'Flatlands' = 64, 'Flushing' = 65, 'Fordham South' = 66, 'Forest Hills' = 67, 'Fort Greene' = 68, 'Fresh Meadows-Utopia' = 69, 'Ft. Totten-Bay Terrace-Clearview' = 70, 'Georgetown-Marine Park-Bergen Beach-Mill Basin' = 71, 'Glen Oaks-Floral Park-New Hyde Park' = 72, 'Glendale' = 73, 'Gramercy' = 74, 'Grasmere-Arrochar-Ft. Wadsworth' = 75, 'Gravesend' = 76, 'Great Kills' = 77, 'Greenpoint' = 78, 'Grymes Hill-Clifton-Fox Hills' = 79, 'Hamilton Heights' = 80, 'Hammels-Arverne-Edgemere' = 81, 'Highbridge' = 82, 'Hollis' = 83, 'Homecrest' = 84, 'Hudson Yards-Chelsea-Flatiron-Union Square' = 85, 'Hunters Point-Sunnyside-West Maspeth' = 86, 'Hunts Point' = 87, 'Jackson Heights' = 88, 'Jamaica' = 89, 'Jamaica Estates-Holliswood' = 90, 'Kensington-Ocean Parkway' = 91, 'Kew Gardens' = 92, 'Kew Gardens Hills' = 93, 'Kingsbridge Heights' = 94, 'Laurelton' = 95, 'Lenox Hill-Roosevelt Island' = 96, 'Lincoln Square' = 97, 'Lindenwood-Howard Beach' = 98, 'Longwood' = 99, 'Lower East Side' = 100, 'Madison' = 101, 'Manhattanville' = 102, 'Marble Hill-Inwood' = 103, 'Mariner\'s Harbor-Arlington-Port Ivory-Graniteville' = 104, 'Maspeth' = 105, 'Melrose South-Mott Haven North' = 106, 'Middle Village' = 107, 'Midtown-Midtown South' = 108, 'Midwood' = 109, 'Morningside Heights' = 110, 'Morrisania-Melrose' = 111, 'Mott Haven-Port Morris' = 112, 'Mount Hope' = 113, 'Murray Hill' = 114, 'Murray Hill-Kips Bay' = 115, 'New Brighton-Silver Lake' = 116, 'New Dorp-Midland Beach' = 117, 'New Springville-Bloomfield-Travis' = 118, 'North Corona' = 119, 'North Riverdale-Fieldston-Riverdale' = 120, 'North Side-South Side' = 121, 'Norwood' = 122, 'Oakland Gardens' = 123, 'Oakwood-Oakwood Beach' = 124, 'Ocean Hill' = 125, 'Ocean Parkway South' = 126, 'Old Astoria' = 127, 'Old Town-Dongan Hills-South Beach' = 128, 'Ozone Park' = 129, 'Park Slope-Gowanus' = 130, 'Parkchester' = 131, 'Pelham Bay-Country Club-City Island' = 132, 'Pelham Parkway' = 133, 'Pomonok-Flushing Heights-Hillcrest' = 134, 'Port Richmond' = 135, 'Prospect Heights' = 136, 'Prospect Lefferts Gardens-Wingate' = 137, 'Queens Village' = 138, 'Queensboro Hill' = 139, 'Queensbridge-Ravenswood-Long Island City' = 140, 'Rego Park' = 141, 'Richmond Hill' = 142, 'Ridgewood' = 143, 'Rikers Island' = 144, 'Rosedale' = 145, 'Rossville-Woodrow' = 146, 'Rugby-Remsen Village' = 147, 'Schuylerville-Throgs Neck-Edgewater Park' = 148, 'Seagate-Coney Island' = 149, 'Sheepshead Bay-Gerritsen Beach-Manhattan Beach' = 150, 'SoHo-TriBeCa-Civic Center-Little Italy' = 151, 'Soundview-Bruckner' = 152, 'Soundview-Castle Hill-Clason Point-Harding Park' = 153, 'South Jamaica' = 154, 'South Ozone Park' = 155, 'Springfield Gardens North' = 156, 'Springfield Gardens South-Brookville' = 157, 'Spuyten Duyvil-Kingsbridge' = 158, 'St. Albans' = 159, 'Stapleton-Rosebank' = 160, 'Starrett City' = 161, 'Steinway' = 162, 'Stuyvesant Heights' = 163, 'Stuyvesant Town-Cooper Village' = 164, 'Sunset Park East' = 165, 'Sunset Park West' = 166, 'Todt Hill-Emerson Hill-Heartland Village-Lighthouse Hill' = 167, 'Turtle Bay-East Midtown' = 168, 'University Heights-Morris Heights' = 169, 'Upper East Side-Carnegie Hill' = 170, 'Upper West Side' = 171, 'Van Cortlandt Village' = 172, 'Van Nest-Morris Park-Westchester Square' = 173, 'Washington Heights North' = 174, 'Washington Heights South' = 175, 'West Brighton' = 176, 'West Concourse' = 177, 'West Farms-Bronx River' = 178, 'West New Brighton-New Brighton-St. George' = 179, 'West Village' = 180, 'Westchester-Unionport' = 181, 'Westerleigh' = 182, 'Whitestone' = 183, 'Williamsbridge-Olinville' = 184, 'Williamsburg' = 185, 'Windsor Terrace' = 186, 'Woodhaven' = 187, 'Woodlawn-Wakefield' = 188, 'Woodside' = 189, 'Yorkville' = 190, 'park-cemetery-etc-Bronx' = 191, 'park-cemetery-etc-Brooklyn' = 192, 'park-cemetery-etc-Manhattan' = 193, 'park-cemetery-etc-Queens' = 194, 'park-cemetery-etc-Staten Island' = 195), pickup_puma UInt16, dropoff_nyct2010_gid UInt8, dropoff_ctlabel Float32, dropoff_borocode UInt8, dropoff_boroname Enum8('' = 0, 'Manhattan' = 1, 'Bronx' = 2, 'Brooklyn' = 3, 'Queens' = 4, 'Staten Island' = 5), dropoff_ct2010 FixedString(6), dropoff_boroct2010 FixedString(7), dropoff_cdeligibil Enum8(' ' = 0, 'E' = 1, 'I' = 2), dropoff_ntacode FixedString(4), dropoff_ntaname Enum16('' = 0, 'Airport' = 1, 'Allerton-Pelham Gardens' = 2, 'Annadale-Huguenot-Prince\'s Bay-Eltingville' = 3, 'Arden Heights' = 4, 'Astoria' = 5, 'Auburndale' = 6, 'Baisley Park' = 7, 'Bath Beach' = 8, 'Battery Park City-Lower Manhattan' = 9, 'Bay Ridge' = 10, 'Bayside-Bayside Hills' = 11, 'Bedford' = 12, 'Bedford Park-Fordham North' = 13, 'Bellerose' = 14, 'Belmont' = 15, 'Bensonhurst East' = 16, 'Bensonhurst West' = 17, 'Borough Park' = 18, 'Breezy Point-Belle Harbor-Rockaway Park-Broad Channel' = 19, 'Briarwood-Jamaica Hills' = 20, 'Brighton Beach' = 21, 'Bronxdale' = 22, 'Brooklyn Heights-Cobble Hill' = 23, 'Brownsville' = 24, 'Bushwick North' = 25, 'Bushwick South' = 26, 'Cambria Heights' = 27, 'Canarsie' = 28, 'Carroll Gardens-Columbia Street-Red Hook' = 29, 'Central Harlem North-Polo Grounds' = 30, 'Central Harlem South' = 31, 'Charleston-Richmond Valley-Tottenville' = 32, 'Chinatown' = 33, 'Claremont-Bathgate' = 34, 'Clinton' = 35, 'Clinton Hill' = 36, 'Co-op City' = 37, 'College Point' = 38, 'Corona' = 39, 'Crotona Park East' = 40, 'Crown Heights North' = 41, 'Crown Heights South' = 42, 'Cypress Hills-City Line' = 43, 'DUMBO-Vinegar Hill-Downtown Brooklyn-Boerum Hill' = 44, 'Douglas Manor-Douglaston-Little Neck' = 45, 'Dyker Heights' = 46, 'East Concourse-Concourse Village' = 47, 'East Elmhurst' = 48, 'East Flatbush-Farragut' = 49, 'East Flushing' = 50, 'East Harlem North' = 51, 'East Harlem South' = 52, 'East New York' = 53, 'East New York (Pennsylvania Ave)' = 54, 'East Tremont' = 55, 'East Village' = 56, 'East Williamsburg' = 57, 'Eastchester-Edenwald-Baychester' = 58, 'Elmhurst' = 59, 'Elmhurst-Maspeth' = 60, 'Erasmus' = 61, 'Far Rockaway-Bayswater' = 62, 'Flatbush' = 63, 'Flatlands' = 64, 'Flushing' = 65, 'Fordham South' = 66, 'Forest Hills' = 67, 'Fort Greene' = 68, 'Fresh Meadows-Utopia' = 69, 'Ft. Totten-Bay Terrace-Clearview' = 70, 'Georgetown-Marine Park-Bergen Beach-Mill Basin' = 71, 'Glen Oaks-Floral Park-New Hyde Park' = 72, 'Glendale' = 73, 'Gramercy' = 74, 'Grasmere-Arrochar-Ft. Wadsworth' = 75, 'Gravesend' = 76, 'Great Kills' = 77, 'Greenpoint' = 78, 'Grymes Hill-Clifton-Fox Hills' = 79, 'Hamilton Heights' = 80, 'Hammels-Arverne-Edgemere' = 81, 'Highbridge' = 82, 'Hollis' = 83, 'Homecrest' = 84, 'Hudson Yards-Chelsea-Flatiron-Union Square' = 85, 'Hunters Point-Sunnyside-West Maspeth' = 86, 'Hunts Point' = 87, 'Jackson Heights' = 88, 'Jamaica' = 89, 'Jamaica Estates-Holliswood' = 90, 'Kensington-Ocean Parkway' = 91, 'Kew Gardens' = 92, 'Kew Gardens Hills' = 93, 'Kingsbridge Heights' = 94, 'Laurelton' = 95, 'Lenox Hill-Roosevelt Island' = 96, 'Lincoln Square' = 97, 'Lindenwood-Howard Beach' = 98, 'Longwood' = 99, 'Lower East Side' = 100, 'Madison' = 101, 'Manhattanville' = 102, 'Marble Hill-Inwood' = 103, 'Mariner\'s Harbor-Arlington-Port Ivory-Graniteville' = 104, 'Maspeth' = 105, 'Melrose South-Mott Haven North' = 106, 'Middle Village' = 107, 'Midtown-Midtown South' = 108, 'Midwood' = 109, 'Morningside Heights' = 110, 'Morrisania-Melrose' = 111, 'Mott Haven-Port Morris' = 112, 'Mount Hope' = 113, 'Murray Hill' = 114, 'Murray Hill-Kips Bay' = 115, 'New Brighton-Silver Lake' = 116, 'New Dorp-Midland Beach' = 117, 'New Springville-Bloomfield-Travis' = 118, 'North Corona' = 119, 'North Riverdale-Fieldston-Riverdale' = 120, 'North Side-South Side' = 121, 'Norwood' = 122, 'Oakland Gardens' = 123, 'Oakwood-Oakwood Beach' = 124, 'Ocean Hill' = 125, 'Ocean Parkway South' = 126, 'Old Astoria' = 127, 'Old Town-Dongan Hills-South Beach' = 128, 'Ozone Park' = 129, 'Park Slope-Gowanus' = 130, 'Parkchester' = 131, 'Pelham Bay-Country Club-City Island' = 132, 'Pelham Parkway' = 133, 'Pomonok-Flushing Heights-Hillcrest' = 134, 'Port Richmond' = 135, 'Prospect Heights' = 136, 'Prospect Lefferts Gardens-Wingate' = 137, 'Queens Village' = 138, 'Queensboro Hill' = 139, 'Queensbridge-Ravenswood-Long Island City' = 140, 'Rego Park' = 141, 'Richmond Hill' = 142, 'Ridgewood' = 143, 'Rikers Island' = 144, 'Rosedale' = 145, 'Rossville-Woodrow' = 146, 'Rugby-Remsen Village' = 147, 'Schuylerville-Throgs Neck-Edgewater Park' = 148, 'Seagate-Coney Island' = 149, 'Sheepshead Bay-Gerritsen Beach-Manhattan Beach' = 150, 'SoHo-TriBeCa-Civic Center-Little Italy' = 151, 'Soundview-Bruckner' = 152, 'Soundview-Castle Hill-Clason Point-Harding Park' = 153, 'South Jamaica' = 154, 'South Ozone Park' = 155, 'Springfield Gardens North' = 156, 'Springfield Gardens South-Brookville' = 157, 'Spuyten Duyvil-Kingsbridge' = 158, 'St. Albans' = 159, 'Stapleton-Rosebank' = 160, 'Starrett City' = 161, 'Steinway' = 162, 'Stuyvesant Heights' = 163, 'Stuyvesant Town-Cooper Village' = 164, 'Sunset Park East' = 165, 'Sunset Park West' = 166, 'Todt Hill-Emerson Hill-Heartland Village-Lighthouse Hill' = 167, 'Turtle Bay-East Midtown' = 168, 'University Heights-Morris Heights' = 169, 'Upper East Side-Carnegie Hill' = 170, 'Upper West Side' = 171, 'Van Cortlandt Village' = 172, 'Van Nest-Morris Park-Westchester Square' = 173, 'Washington Heights North' = 174, 'Washington Heights South' = 175, 'West Brighton' = 176, 'West Concourse' = 177, 'West Farms-Bronx River' = 178, 'West New Brighton-New Brighton-St. George' = 179, 'West Village' = 180, 'Westchester-Unionport' = 181, 'Westerleigh' = 182, 'Whitestone' = 183, 'Williamsbridge-Olinville' = 184, 'Williamsburg' = 185, 'Windsor Terrace' = 186, 'Woodhaven' = 187, 'Woodlawn-Wakefield' = 188, 'Woodside' = 189, 'Yorkville' = 190, 'park-cemetery-etc-Bronx' = 191, 'park-cemetery-etc-Brooklyn' = 192, 'park-cemetery-etc-Manhattan' = 193, 'park-cemetery-etc-Queens' = 194, 'park-cemetery-etc-Staten Island' = 195), dropoff_puma UInt16) ENGINE = MergeTree(pickup_date, pickup_datetime, 8192)
+```
+
+Kaynak sunucuda:
+
+``` sql
+CREATE TABLE trips_mergetree_x3 AS trips_mergetree_third ENGINE = Distributed(perftest, default, trips_mergetree_third, rand())
+```
+
+Aşağıdaki sorgu verileri yeniden dağıtır:
+
+``` sql
+INSERT INTO trips_mergetree_x3 SELECT * FROM trips_mergetree
+```
+
+Bu 2454 saniye sürer.
+
+Üç sunucuda:
+
+Q1: 0.212 saniye.
+Q2: 0.438 saniye.
+Q3: 0.733 saniye.
+Q4: 1.241 saniye.
+
+Sorgular doğrusal olarak ölçeklendiğinden, burada sürpriz yok.
+
+Ayrıca 140 sunucu kümesinden elde edilen sonuçlara sahibiz:
+
+Q1: 0.028 sn.
+Q2: 0.043 sn.
+Q3: 0.051 sn.
+Q4: 0.072 sn.
+
+Bu durumda, sorgu işleme süresi her şeyden önce ağ gecikmesi ile belirlenir.
+Finlandiya'daki bir Yandex veri merkezinde bulunan ve Rusya'daki bir kümede bulunan ve yaklaşık 20 ms gecikme süresi ekleyen bir istemci kullanarak sorgular çalıştırdık.
+
+## Özet {#summary}
+
+| hizmetçiler | Q1 | Q2 | Q3 | Q4 |
+|-------------|-------|-------|-------|-------|
+| 1 | 0.490 | 1.224 | 2.104 | 3.593 |
+| 3 | 0.212 | 0.438 | 0.733 | 1.241 |
+| 140 | 0.028 | 0.043 | 0.051 | 0.072 |
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/example_datasets/nyc_taxi/)
diff --git a/docs/tr/getting_started/example_datasets/ontime.md b/docs/tr/getting_started/example_datasets/ontime.md
new file mode 100644
index 0000000000..dc06b86189
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/ontime.md
@@ -0,0 +1,412 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 15
+toc_title: OnTime
+---
+
+# OnTime {#ontime}
+
+Bu veri kümesi iki şekilde elde edilebilir:
+
+- ham verilerden içe aktarma
+- hazırlanan bölüm downloadlerin indir downloadilmesi
+
+## Ham Verilerden İçe Aktarma {#import-from-raw-data}
+
+Veri indirme:
+
+``` bash
+for s in `seq 1987 2018`
+do
+for m in `seq 1 12`
+do
+wget https://transtats.bts.gov/PREZIP/On_Time_Reporting_Carrier_On_Time_Performance_1987_present_${s}_${m}.zip
+done
+done
+```
+
+(from https://github.com/Percona-Lab/ontime-airline-performance/blob/master/download.sh )
+
+Tablo oluşturma:
+
+``` sql
+CREATE TABLE `ontime` (
+ `Year` UInt16,
+ `Quarter` UInt8,
+ `Month` UInt8,
+ `DayofMonth` UInt8,
+ `DayOfWeek` UInt8,
+ `FlightDate` Date,
+ `UniqueCarrier` FixedString(7),
+ `AirlineID` Int32,
+ `Carrier` FixedString(2),
+ `TailNum` String,
+ `FlightNum` String,
+ `OriginAirportID` Int32,
+ `OriginAirportSeqID` Int32,
+ `OriginCityMarketID` Int32,
+ `Origin` FixedString(5),
+ `OriginCityName` String,
+ `OriginState` FixedString(2),
+ `OriginStateFips` String,
+ `OriginStateName` String,
+ `OriginWac` Int32,
+ `DestAirportID` Int32,
+ `DestAirportSeqID` Int32,
+ `DestCityMarketID` Int32,
+ `Dest` FixedString(5),
+ `DestCityName` String,
+ `DestState` FixedString(2),
+ `DestStateFips` String,
+ `DestStateName` String,
+ `DestWac` Int32,
+ `CRSDepTime` Int32,
+ `DepTime` Int32,
+ `DepDelay` Int32,
+ `DepDelayMinutes` Int32,
+ `DepDel15` Int32,
+ `DepartureDelayGroups` String,
+ `DepTimeBlk` String,
+ `TaxiOut` Int32,
+ `WheelsOff` Int32,
+ `WheelsOn` Int32,
+ `TaxiIn` Int32,
+ `CRSArrTime` Int32,
+ `ArrTime` Int32,
+ `ArrDelay` Int32,
+ `ArrDelayMinutes` Int32,
+ `ArrDel15` Int32,
+ `ArrivalDelayGroups` Int32,
+ `ArrTimeBlk` String,
+ `Cancelled` UInt8,
+ `CancellationCode` FixedString(1),
+ `Diverted` UInt8,
+ `CRSElapsedTime` Int32,
+ `ActualElapsedTime` Int32,
+ `AirTime` Int32,
+ `Flights` Int32,
+ `Distance` Int32,
+ `DistanceGroup` UInt8,
+ `CarrierDelay` Int32,
+ `WeatherDelay` Int32,
+ `NASDelay` Int32,
+ `SecurityDelay` Int32,
+ `LateAircraftDelay` Int32,
+ `FirstDepTime` String,
+ `TotalAddGTime` String,
+ `LongestAddGTime` String,
+ `DivAirportLandings` String,
+ `DivReachedDest` String,
+ `DivActualElapsedTime` String,
+ `DivArrDelay` String,
+ `DivDistance` String,
+ `Div1Airport` String,
+ `Div1AirportID` Int32,
+ `Div1AirportSeqID` Int32,
+ `Div1WheelsOn` String,
+ `Div1TotalGTime` String,
+ `Div1LongestGTime` String,
+ `Div1WheelsOff` String,
+ `Div1TailNum` String,
+ `Div2Airport` String,
+ `Div2AirportID` Int32,
+ `Div2AirportSeqID` Int32,
+ `Div2WheelsOn` String,
+ `Div2TotalGTime` String,
+ `Div2LongestGTime` String,
+ `Div2WheelsOff` String,
+ `Div2TailNum` String,
+ `Div3Airport` String,
+ `Div3AirportID` Int32,
+ `Div3AirportSeqID` Int32,
+ `Div3WheelsOn` String,
+ `Div3TotalGTime` String,
+ `Div3LongestGTime` String,
+ `Div3WheelsOff` String,
+ `Div3TailNum` String,
+ `Div4Airport` String,
+ `Div4AirportID` Int32,
+ `Div4AirportSeqID` Int32,
+ `Div4WheelsOn` String,
+ `Div4TotalGTime` String,
+ `Div4LongestGTime` String,
+ `Div4WheelsOff` String,
+ `Div4TailNum` String,
+ `Div5Airport` String,
+ `Div5AirportID` Int32,
+ `Div5AirportSeqID` Int32,
+ `Div5WheelsOn` String,
+ `Div5TotalGTime` String,
+ `Div5LongestGTime` String,
+ `Div5WheelsOff` String,
+ `Div5TailNum` String
+) ENGINE = MergeTree
+PARTITION BY Year
+ORDER BY (Carrier, FlightDate)
+SETTINGS index_granularity = 8192;
+```
+
+Veri yükleme:
+
+``` bash
+$ for i in *.zip; do echo $i; unzip -cq $i '*.csv' | sed 's/\.00//g' | clickhouse-client --host=example-perftest01j --query="INSERT INTO ontime FORMAT CSVWithNames"; done
+```
+
+## Hazırlanan Bölüm downloadlerin indir downloadilmesi {#download-of-prepared-partitions}
+
+``` bash
+$ curl -O https://clickhouse-datasets.s3.yandex.net/ontime/partitions/ontime.tar
+$ tar xvf ontime.tar -C /var/lib/clickhouse # path to ClickHouse data directory
+$ # check permissions of unpacked data, fix if required
+$ sudo service clickhouse-server restart
+$ clickhouse-client --query "select count(*) from datasets.ontime"
+```
+
+!!! info "Bilgin"
+ Aşağıda açıklanan sorguları çalıştıracaksanız, tam tablo adını kullanmanız gerekir, `datasets.ontime`.
+
+## Sorgular {#queries}
+
+Q0.
+
+``` sql
+SELECT avg(c1)
+FROM
+(
+ SELECT Year, Month, count(*) AS c1
+ FROM ontime
+ GROUP BY Year, Month
+);
+```
+
+Q1. 2000 yılından 2008 yılına kadar günlük uçuş sayısı
+
+``` sql
+SELECT DayOfWeek, count(*) AS c
+FROM ontime
+WHERE Year>=2000 AND Year<=2008
+GROUP BY DayOfWeek
+ORDER BY c DESC;
+```
+
+S2. 2000-2008 için haftanın gününe göre gruplandırılmış 10 dakikadan fazla geciken uçuş sayısı
+
+``` sql
+SELECT DayOfWeek, count(*) AS c
+FROM ontime
+WHERE DepDelay>10 AND Year>=2000 AND Year<=2008
+GROUP BY DayOfWeek
+ORDER BY c DESC;
+```
+
+Q3. 2000-2008 için havaalanı tarafından gecikme sayısı
+
+``` sql
+SELECT Origin, count(*) AS c
+FROM ontime
+WHERE DepDelay>10 AND Year>=2000 AND Year<=2008
+GROUP BY Origin
+ORDER BY c DESC
+LIMIT 10;
+```
+
+S4. 2007 yılı için taşıyıcı tarafından gecikme sayısı
+
+``` sql
+SELECT Carrier, count(*)
+FROM ontime
+WHERE DepDelay>10 AND Year=2007
+GROUP BY Carrier
+ORDER BY count(*) DESC;
+```
+
+Q5. 2007 yılı için taşıyıcı tarafından gecikme yüzdesi
+
+``` sql
+SELECT Carrier, c, c2, c*100/c2 as c3
+FROM
+(
+ SELECT
+ Carrier,
+ count(*) AS c
+ FROM ontime
+ WHERE DepDelay>10
+ AND Year=2007
+ GROUP BY Carrier
+)
+JOIN
+(
+ SELECT
+ Carrier,
+ count(*) AS c2
+ FROM ontime
+ WHERE Year=2007
+ GROUP BY Carrier
+) USING Carrier
+ORDER BY c3 DESC;
+```
+
+Aynı sorgunun daha iyi sürümü:
+
+``` sql
+SELECT Carrier, avg(DepDelay>10)*100 AS c3
+FROM ontime
+WHERE Year=2007
+GROUP BY Carrier
+ORDER BY c3 DESC
+```
+
+S6. Daha geniş bir yıl aralığı için önceki talep, 2000-2008
+
+``` sql
+SELECT Carrier, c, c2, c*100/c2 as c3
+FROM
+(
+ SELECT
+ Carrier,
+ count(*) AS c
+ FROM ontime
+ WHERE DepDelay>10
+ AND Year>=2000 AND Year<=2008
+ GROUP BY Carrier
+)
+JOIN
+(
+ SELECT
+ Carrier,
+ count(*) AS c2
+ FROM ontime
+ WHERE Year>=2000 AND Year<=2008
+ GROUP BY Carrier
+) USING Carrier
+ORDER BY c3 DESC;
+```
+
+Aynı sorgunun daha iyi sürümü:
+
+``` sql
+SELECT Carrier, avg(DepDelay>10)*100 AS c3
+FROM ontime
+WHERE Year>=2000 AND Year<=2008
+GROUP BY Carrier
+ORDER BY c3 DESC;
+```
+
+Q7. Yıla göre 10 dakikadan fazla gecikmeli uçuş yüzdesi
+
+``` sql
+SELECT Year, c1/c2
+FROM
+(
+ select
+ Year,
+ count(*)*100 as c1
+ from ontime
+ WHERE DepDelay>10
+ GROUP BY Year
+)
+JOIN
+(
+ select
+ Year,
+ count(*) as c2
+ from ontime
+ GROUP BY Year
+) USING (Year)
+ORDER BY Year;
+```
+
+Aynı sorgunun daha iyi sürümü:
+
+``` sql
+SELECT Year, avg(DepDelay>10)*100
+FROM ontime
+GROUP BY Year
+ORDER BY Year;
+```
+
+S8. Çeşitli yıl aralıkları için doğrudan bağlı şehirlerin sayısına göre en popüler yerler
+
+``` sql
+SELECT DestCityName, uniqExact(OriginCityName) AS u
+FROM ontime
+WHERE Year >= 2000 and Year <= 2010
+GROUP BY DestCityName
+ORDER BY u DESC LIMIT 10;
+```
+
+Q9.
+
+``` sql
+SELECT Year, count(*) AS c1
+FROM ontime
+GROUP BY Year;
+```
+
+Q10.
+
+``` sql
+SELECT
+ min(Year), max(Year), Carrier, count(*) AS cnt,
+ sum(ArrDelayMinutes>30) AS flights_delayed,
+ round(sum(ArrDelayMinutes>30)/count(*),2) AS rate
+FROM ontime
+WHERE
+ DayOfWeek NOT IN (6,7) AND OriginState NOT IN ('AK', 'HI', 'PR', 'VI')
+ AND DestState NOT IN ('AK', 'HI', 'PR', 'VI')
+ AND FlightDate < '2010-01-01'
+GROUP by Carrier
+HAVING cnt>100000 and max(Year)>1990
+ORDER by rate DESC
+LIMIT 1000;
+```
+
+Bonus:
+
+``` sql
+SELECT avg(cnt)
+FROM
+(
+ SELECT Year,Month,count(*) AS cnt
+ FROM ontime
+ WHERE DepDel15=1
+ GROUP BY Year,Month
+);
+
+SELECT avg(c1) FROM
+(
+ SELECT Year,Month,count(*) AS c1
+ FROM ontime
+ GROUP BY Year,Month
+);
+
+SELECT DestCityName, uniqExact(OriginCityName) AS u
+FROM ontime
+GROUP BY DestCityName
+ORDER BY u DESC
+LIMIT 10;
+
+SELECT OriginCityName, DestCityName, count() AS c
+FROM ontime
+GROUP BY OriginCityName, DestCityName
+ORDER BY c DESC
+LIMIT 10;
+
+SELECT OriginCityName, count() AS c
+FROM ontime
+GROUP BY OriginCityName
+ORDER BY c DESC
+LIMIT 10;
+```
+
+Bu performans testi Vadim Tkachenko tarafından oluşturuldu. Görmek:
+
+- https://www.percona.com/blog/2009/10/02/analyzing-air-traffic-performance-with-infobright-and-monetdb/
+- https://www.percona.com/blog/2009/10/26/air-traffic-queries-in-luciddb/
+- https://www.percona.com/blog/2009/11/02/air-traffic-queries-in-infinidb-early-alpha/
+- https://www.percona.com/blog/2014/04/21/using-apache-hadoop-and-impala-together-with-mysql-for-data-analysis/
+- https://www.percona.com/blog/2016/01/07/apache-spark-with-air-ontime-performance-data/
+- http://nickmakos.blogspot.ru/2012/08/analyzing-air-traffic-performance-with.html
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/example_datasets/ontime/)
diff --git a/docs/tr/getting_started/example_datasets/star_schema.md b/docs/tr/getting_started/example_datasets/star_schema.md
new file mode 100644
index 0000000000..1326aab7ab
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/star_schema.md
@@ -0,0 +1,370 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 20
+toc_title: "Y\u0131ld\u0131z \u015Eema Ben Benchmarkch Benchmarkmark"
+---
+
+# Yıldız Şema Ben Benchmarkch Benchmarkmark {#star-schema-benchmark}
+
+Dbgen derleme:
+
+``` bash
+$ git clone git@github.com:vadimtk/ssb-dbgen.git
+$ cd ssb-dbgen
+$ make
+```
+
+Veri oluşturma:
+
+!!! warning "Dikkat"
+ İle `-s 100` dbgen, 600 milyon satır (67 GB) üretir `-s 1000` 6 milyar satır üretir (bu çok zaman alır)
+
+``` bash
+$ ./dbgen -s 1000 -T c
+$ ./dbgen -s 1000 -T l
+$ ./dbgen -s 1000 -T p
+$ ./dbgen -s 1000 -T s
+$ ./dbgen -s 1000 -T d
+```
+
+Clickhouse'da tablolar oluşturma:
+
+``` sql
+CREATE TABLE customer
+(
+ C_CUSTKEY UInt32,
+ C_NAME String,
+ C_ADDRESS String,
+ C_CITY LowCardinality(String),
+ C_NATION LowCardinality(String),
+ C_REGION LowCardinality(String),
+ C_PHONE String,
+ C_MKTSEGMENT LowCardinality(String)
+)
+ENGINE = MergeTree ORDER BY (C_CUSTKEY);
+
+CREATE TABLE lineorder
+(
+ LO_ORDERKEY UInt32,
+ LO_LINENUMBER UInt8,
+ LO_CUSTKEY UInt32,
+ LO_PARTKEY UInt32,
+ LO_SUPPKEY UInt32,
+ LO_ORDERDATE Date,
+ LO_ORDERPRIORITY LowCardinality(String),
+ LO_SHIPPRIORITY UInt8,
+ LO_QUANTITY UInt8,
+ LO_EXTENDEDPRICE UInt32,
+ LO_ORDTOTALPRICE UInt32,
+ LO_DISCOUNT UInt8,
+ LO_REVENUE UInt32,
+ LO_SUPPLYCOST UInt32,
+ LO_TAX UInt8,
+ LO_COMMITDATE Date,
+ LO_SHIPMODE LowCardinality(String)
+)
+ENGINE = MergeTree PARTITION BY toYear(LO_ORDERDATE) ORDER BY (LO_ORDERDATE, LO_ORDERKEY);
+
+CREATE TABLE part
+(
+ P_PARTKEY UInt32,
+ P_NAME String,
+ P_MFGR LowCardinality(String),
+ P_CATEGORY LowCardinality(String),
+ P_BRAND LowCardinality(String),
+ P_COLOR LowCardinality(String),
+ P_TYPE LowCardinality(String),
+ P_SIZE UInt8,
+ P_CONTAINER LowCardinality(String)
+)
+ENGINE = MergeTree ORDER BY P_PARTKEY;
+
+CREATE TABLE supplier
+(
+ S_SUPPKEY UInt32,
+ S_NAME String,
+ S_ADDRESS String,
+ S_CITY LowCardinality(String),
+ S_NATION LowCardinality(String),
+ S_REGION LowCardinality(String),
+ S_PHONE String
+)
+ENGINE = MergeTree ORDER BY S_SUPPKEY;
+```
+
+Veri ekleme:
+
+``` bash
+$ clickhouse-client --query "INSERT INTO customer FORMAT CSV" < customer.tbl
+$ clickhouse-client --query "INSERT INTO part FORMAT CSV" < part.tbl
+$ clickhouse-client --query "INSERT INTO supplier FORMAT CSV" < supplier.tbl
+$ clickhouse-client --query "INSERT INTO lineorder FORMAT CSV" < lineorder.tbl
+```
+
+Dönüşüm “star schema” denormalized için “flat schema”:
+
+``` sql
+SET max_memory_usage = 20000000000;
+
+CREATE TABLE lineorder_flat
+ENGINE = MergeTree
+PARTITION BY toYear(LO_ORDERDATE)
+ORDER BY (LO_ORDERDATE, LO_ORDERKEY) AS
+SELECT
+ l.LO_ORDERKEY AS LO_ORDERKEY,
+ l.LO_LINENUMBER AS LO_LINENUMBER,
+ l.LO_CUSTKEY AS LO_CUSTKEY,
+ l.LO_PARTKEY AS LO_PARTKEY,
+ l.LO_SUPPKEY AS LO_SUPPKEY,
+ l.LO_ORDERDATE AS LO_ORDERDATE,
+ l.LO_ORDERPRIORITY AS LO_ORDERPRIORITY,
+ l.LO_SHIPPRIORITY AS LO_SHIPPRIORITY,
+ l.LO_QUANTITY AS LO_QUANTITY,
+ l.LO_EXTENDEDPRICE AS LO_EXTENDEDPRICE,
+ l.LO_ORDTOTALPRICE AS LO_ORDTOTALPRICE,
+ l.LO_DISCOUNT AS LO_DISCOUNT,
+ l.LO_REVENUE AS LO_REVENUE,
+ l.LO_SUPPLYCOST AS LO_SUPPLYCOST,
+ l.LO_TAX AS LO_TAX,
+ l.LO_COMMITDATE AS LO_COMMITDATE,
+ l.LO_SHIPMODE AS LO_SHIPMODE,
+ c.C_NAME AS C_NAME,
+ c.C_ADDRESS AS C_ADDRESS,
+ c.C_CITY AS C_CITY,
+ c.C_NATION AS C_NATION,
+ c.C_REGION AS C_REGION,
+ c.C_PHONE AS C_PHONE,
+ c.C_MKTSEGMENT AS C_MKTSEGMENT,
+ s.S_NAME AS S_NAME,
+ s.S_ADDRESS AS S_ADDRESS,
+ s.S_CITY AS S_CITY,
+ s.S_NATION AS S_NATION,
+ s.S_REGION AS S_REGION,
+ s.S_PHONE AS S_PHONE,
+ p.P_NAME AS P_NAME,
+ p.P_MFGR AS P_MFGR,
+ p.P_CATEGORY AS P_CATEGORY,
+ p.P_BRAND AS P_BRAND,
+ p.P_COLOR AS P_COLOR,
+ p.P_TYPE AS P_TYPE,
+ p.P_SIZE AS P_SIZE,
+ p.P_CONTAINER AS P_CONTAINER
+FROM lineorder AS l
+INNER JOIN customer AS c ON c.C_CUSTKEY = l.LO_CUSTKEY
+INNER JOIN supplier AS s ON s.S_SUPPKEY = l.LO_SUPPKEY
+INNER JOIN part AS p ON p.P_PARTKEY = l.LO_PARTKEY;
+```
+
+Sorguları çalıştırma:
+
+Q1.1
+
+``` sql
+SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue
+FROM lineorder_flat
+WHERE toYear(LO_ORDERDATE) = 1993 AND LO_DISCOUNT BETWEEN 1 AND 3 AND LO_QUANTITY < 25;
+```
+
+Q1.2
+
+``` sql
+SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue
+FROM lineorder_flat
+WHERE toYYYYMM(LO_ORDERDATE) = 199401 AND LO_DISCOUNT BETWEEN 4 AND 6 AND LO_QUANTITY BETWEEN 26 AND 35;
+```
+
+Q1.3
+
+``` sql
+SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue
+FROM lineorder_flat
+WHERE toISOWeek(LO_ORDERDATE) = 6 AND toYear(LO_ORDERDATE) = 1994
+ AND LO_DISCOUNT BETWEEN 5 AND 7 AND LO_QUANTITY BETWEEN 26 AND 35;
+```
+
+Q2.1
+
+``` sql
+SELECT
+ sum(LO_REVENUE),
+ toYear(LO_ORDERDATE) AS year,
+ P_BRAND
+FROM lineorder_flat
+WHERE P_CATEGORY = 'MFGR#12' AND S_REGION = 'AMERICA'
+GROUP BY
+ year,
+ P_BRAND
+ORDER BY
+ year,
+ P_BRAND;
+```
+
+Q2.2
+
+``` sql
+SELECT
+ sum(LO_REVENUE),
+ toYear(LO_ORDERDATE) AS year,
+ P_BRAND
+FROM lineorder_flat
+WHERE P_BRAND >= 'MFGR#2221' AND P_BRAND <= 'MFGR#2228' AND S_REGION = 'ASIA'
+GROUP BY
+ year,
+ P_BRAND
+ORDER BY
+ year,
+ P_BRAND;
+```
+
+Q2.3
+
+``` sql
+SELECT
+ sum(LO_REVENUE),
+ toYear(LO_ORDERDATE) AS year,
+ P_BRAND
+FROM lineorder_flat
+WHERE P_BRAND = 'MFGR#2239' AND S_REGION = 'EUROPE'
+GROUP BY
+ year,
+ P_BRAND
+ORDER BY
+ year,
+ P_BRAND;
+```
+
+Q3.1
+
+``` sql
+SELECT
+ C_NATION,
+ S_NATION,
+ toYear(LO_ORDERDATE) AS year,
+ sum(LO_REVENUE) AS revenue
+FROM lineorder_flat
+WHERE C_REGION = 'ASIA' AND S_REGION = 'ASIA' AND year >= 1992 AND year <= 1997
+GROUP BY
+ C_NATION,
+ S_NATION,
+ year
+ORDER BY
+ year ASC,
+ revenue DESC;
+```
+
+Q3.2
+
+``` sql
+SELECT
+ C_CITY,
+ S_CITY,
+ toYear(LO_ORDERDATE) AS year,
+ sum(LO_REVENUE) AS revenue
+FROM lineorder_flat
+WHERE C_NATION = 'UNITED STATES' AND S_NATION = 'UNITED STATES' AND year >= 1992 AND year <= 1997
+GROUP BY
+ C_CITY,
+ S_CITY,
+ year
+ORDER BY
+ year ASC,
+ revenue DESC;
+```
+
+Q3.3
+
+``` sql
+SELECT
+ C_CITY,
+ S_CITY,
+ toYear(LO_ORDERDATE) AS year,
+ sum(LO_REVENUE) AS revenue
+FROM lineorder_flat
+WHERE (C_CITY = 'UNITED KI1' OR C_CITY = 'UNITED KI5') AND (S_CITY = 'UNITED KI1' OR S_CITY = 'UNITED KI5') AND year >= 1992 AND year <= 1997
+GROUP BY
+ C_CITY,
+ S_CITY,
+ year
+ORDER BY
+ year ASC,
+ revenue DESC;
+```
+
+Q3.4
+
+``` sql
+SELECT
+ C_CITY,
+ S_CITY,
+ toYear(LO_ORDERDATE) AS year,
+ sum(LO_REVENUE) AS revenue
+FROM lineorder_flat
+WHERE (C_CITY = 'UNITED KI1' OR C_CITY = 'UNITED KI5') AND (S_CITY = 'UNITED KI1' OR S_CITY = 'UNITED KI5') AND toYYYYMM(LO_ORDERDATE) = 199712
+GROUP BY
+ C_CITY,
+ S_CITY,
+ year
+ORDER BY
+ year ASC,
+ revenue DESC;
+```
+
+Q4.1
+
+``` sql
+SELECT
+ toYear(LO_ORDERDATE) AS year,
+ C_NATION,
+ sum(LO_REVENUE - LO_SUPPLYCOST) AS profit
+FROM lineorder_flat
+WHERE C_REGION = 'AMERICA' AND S_REGION = 'AMERICA' AND (P_MFGR = 'MFGR#1' OR P_MFGR = 'MFGR#2')
+GROUP BY
+ year,
+ C_NATION
+ORDER BY
+ year ASC,
+ C_NATION ASC;
+```
+
+Q4.2
+
+``` sql
+SELECT
+ toYear(LO_ORDERDATE) AS year,
+ S_NATION,
+ P_CATEGORY,
+ sum(LO_REVENUE - LO_SUPPLYCOST) AS profit
+FROM lineorder_flat
+WHERE C_REGION = 'AMERICA' AND S_REGION = 'AMERICA' AND (year = 1997 OR year = 1998) AND (P_MFGR = 'MFGR#1' OR P_MFGR = 'MFGR#2')
+GROUP BY
+ year,
+ S_NATION,
+ P_CATEGORY
+ORDER BY
+ year ASC,
+ S_NATION ASC,
+ P_CATEGORY ASC;
+```
+
+Q4.3
+
+``` sql
+SELECT
+ toYear(LO_ORDERDATE) AS year,
+ S_CITY,
+ P_BRAND,
+ sum(LO_REVENUE - LO_SUPPLYCOST) AS profit
+FROM lineorder_flat
+WHERE S_NATION = 'UNITED STATES' AND (year = 1997 OR year = 1998) AND P_CATEGORY = 'MFGR#14'
+GROUP BY
+ year,
+ S_CITY,
+ P_BRAND
+ORDER BY
+ year ASC,
+ S_CITY ASC,
+ P_BRAND ASC;
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/example_datasets/star_schema/)
diff --git a/docs/tr/getting_started/example_datasets/wikistat.md b/docs/tr/getting_started/example_datasets/wikistat.md
new file mode 100644
index 0000000000..0fc24dd5bb
--- /dev/null
+++ b/docs/tr/getting_started/example_datasets/wikistat.md
@@ -0,0 +1,35 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 18
+toc_title: WikiStat
+---
+
+# WikiStat {#wikistat}
+
+Bakınız: http://dumps.wikimedia.org/other/pagecounts-raw/
+
+Tablo oluşturma:
+
+``` sql
+CREATE TABLE wikistat
+(
+ date Date,
+ time DateTime,
+ project String,
+ subproject String,
+ path String,
+ hits UInt64,
+ size UInt64
+) ENGINE = MergeTree(date, (path, time), 8192);
+```
+
+Veri yükleme:
+
+``` bash
+$ for i in {2007..2016}; do for j in {01..12}; do echo $i-$j >&2; curl -sSL "http://dumps.wikimedia.org/other/pagecounts-raw/$i/$i-$j/" | grep -oE 'pagecounts-[0-9]+-[0-9]+\.gz'; done; done | sort | uniq | tee links.txt
+$ cat links.txt | while read link; do wget http://dumps.wikimedia.org/other/pagecounts-raw/$(echo $link | sed -r 's/pagecounts-([0-9]{4})([0-9]{2})[0-9]{2}-[0-9]+\.gz/\1/')/$(echo $link | sed -r 's/pagecounts-([0-9]{4})([0-9]{2})[0-9]{2}-[0-9]+\.gz/\1-\2/')/$link; done
+$ ls -1 /opt/wikistat/ | grep gz | while read i; do echo $i; gzip -cd /opt/wikistat/$i | ./wikistat-loader --time="$(echo -n $i | sed -r 's/pagecounts-([0-9]{4})([0-9]{2})([0-9]{2})-([0-9]{2})([0-9]{2})([0-9]{2})\.gz/\1-\2-\3 \4-00-00/')" | clickhouse-client --query="INSERT INTO wikistat FORMAT TabSeparated"; done
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/example_datasets/wikistat/)
diff --git a/docs/tr/getting_started/index.md b/docs/tr/getting_started/index.md
new file mode 100644
index 0000000000..e97f9add1f
--- /dev/null
+++ b/docs/tr/getting_started/index.md
@@ -0,0 +1,17 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "Ba\u015Flarken"
+toc_hidden: true
+toc_priority: 8
+toc_title: "gizlenmi\u015F"
+---
+
+# Başlarken {#getting-started}
+
+Eğer ClickHouse için yeni ve performans bir hands-on hissi almak istiyorsanız, her şeyden önce, sen [yükleme işlemi](install.md). Bundan sonra şunları yapabilirsiniz:
+
+- [Ayrıntılı öğretici geçmesi](tutorial.md)
+- [Örnek veri kümeleri ile deneme](example_datasets/ontime.md)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/)
diff --git a/docs/tr/getting_started/install.md b/docs/tr/getting_started/install.md
new file mode 100644
index 0000000000..8597a378fb
--- /dev/null
+++ b/docs/tr/getting_started/install.md
@@ -0,0 +1,191 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 11
+toc_title: Kurulum
+---
+
+# Kurulum {#installation}
+
+## Sistem Gereksinimleri {#system-requirements}
+
+ClickHouse, x86\_64, AArch64 veya PowerPC64LE CPU mimarisine sahip herhangi bir Linux, FreeBSD veya Mac OS X üzerinde çalışabilir.
+
+Resmi önceden oluşturulmuş ikili dosyalar genellikle x86\_64 ve kaldıraç sse 4.2 komut seti için derlenir, bu nedenle destekleyen CPU'nun aksi belirtilmedikçe ek bir sistem gereksinimi haline gelir. Geçerli CPU'nun sse 4.2 desteği olup olmadığını kontrol etmek için komut:
+
+``` bash
+$ grep -q sse4_2 /proc/cpuinfo && echo "SSE 4.2 supported" || echo "SSE 4.2 not supported"
+```
+
+SSE 4.2'yi desteklemeyen veya AArch64 veya PowerPC64LE mimarisine sahip işlemcilerde Clickhouse'u çalıştırmak için şunları yapmalısınız [kaynaklardan ClickHouse oluşturun](#from-sources) uygun yapılandırma ayarlamaları ile.
+
+## Mevcut Kurulum Seçenekleri {#available-installation-options}
+
+### DEB paket fromlerinden {#install-from-deb-packages}
+
+Resmi önceden derlenmiş kullanılması tavsiye edilir `deb` Debian veya Ubuntu için paketler.
+
+Resmi paketleri yüklemek için Yandex deposunu ekleyin `/etc/apt/sources.list` veya ayrı bir `/etc/apt/sources.list.d/clickhouse.list` Dosya:
+
+ deb http://repo.clickhouse.tech/deb/stable/ main/
+
+En son sürümü kullanmak istiyorsanız, değiştirin `stable` ile `testing` (bu, test ortamlarınız için önerilir).
+
+Sonra paketleri yüklemek için bu komutları çalıştırın:
+
+``` bash
+sudo apt-get install dirmngr # optional
+sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4 # optional
+sudo apt-get update
+sudo apt-get install clickhouse-client clickhouse-server
+```
+
+Paketleri buradan manuel olarak indirebilir ve kurabilirsiniz: https://repo.yandex.ru/clickhouse/deb/stable/main/.
+
+#### Paketler {#packages}
+
+- `clickhouse-common-static` — Installs ClickHouse compiled binary files.
+- `clickhouse-server` — Creates a symbolic link for `clickhouse-server` ve varsayılan sunucu yapılandırmasını yükler.
+- `clickhouse-client` — Creates a symbolic link for `clickhouse-client` ve diğer istemci ile ilgili araçlar. ve istemci yapılandırma dosyalarını yükler.
+- `clickhouse-common-static-dbg` — Installs ClickHouse compiled binary files with debug info.
+
+### RPM paket fromlerinden {#from-rpm-packages}
+
+Resmi önceden derlenmiş kullanılması tavsiye edilir `rpm` CentOS, RedHat ve diğer tüm rpm tabanlı Linux dağıtımları için paketler.
+
+İlk olarak, resmi depoyu eklemeniz gerekir:
+
+``` bash
+sudo yum install yum-utils
+sudo rpm --import https://repo.clickhouse.tech/CLICKHOUSE-KEY.GPG
+sudo yum-config-manager --add-repo https://repo.clickhouse.tech/rpm/stable/x86_64
+```
+
+En son sürümü kullanmak istiyorsanız, değiştirin `stable` ile `testing` (bu, test ortamlarınız için önerilir). Bu `prestable` etiket de bazen kullanılabilir.
+
+Sonra paketleri yüklemek için bu komutları çalıştırın:
+
+``` bash
+sudo yum install clickhouse-server clickhouse-client
+```
+
+Paketleri buradan manuel olarak indirebilir ve kurabilirsiniz: https://repo.clickhouse.teknoloji / rpm / kararlı / x86\_64.
+
+### Tgz Arşivlerinden {#from-tgz-archives}
+
+Resmi önceden derlenmiş kullanılması tavsiye edilir `tgz` Arch ,iv ,es for tüm Linux dağıtım installationları, kurulumu `deb` veya `rpm` paketler mümkün değildir.
+
+Gerekli sürümü ile indirilebilir `curl` veya `wget` depo fromdan https://repo.yandex.ru/clickhouse/tgz/.
+Bundan sonra indirilen arşivler açılmalı ve kurulum komut dosyaları ile kurulmalıdır. En son sürüm için örnek:
+
+``` bash
+export LATEST_VERSION=`curl https://api.github.com/repos/ClickHouse/ClickHouse/tags 2>/dev/null | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' | head -n 1`
+curl -O https://repo.clickhouse.tech/tgz/clickhouse-common-static-$LATEST_VERSION.tgz
+curl -O https://repo.clickhouse.tech/tgz/clickhouse-common-static-dbg-$LATEST_VERSION.tgz
+curl -O https://repo.clickhouse.tech/tgz/clickhouse-server-$LATEST_VERSION.tgz
+curl -O https://repo.clickhouse.tech/tgz/clickhouse-client-$LATEST_VERSION.tgz
+
+tar -xzvf clickhouse-common-static-$LATEST_VERSION.tgz
+sudo clickhouse-common-static-$LATEST_VERSION/install/doinst.sh
+
+tar -xzvf clickhouse-common-static-dbg-$LATEST_VERSION.tgz
+sudo clickhouse-common-static-dbg-$LATEST_VERSION/install/doinst.sh
+
+tar -xzvf clickhouse-server-$LATEST_VERSION.tgz
+sudo clickhouse-server-$LATEST_VERSION/install/doinst.sh
+sudo /etc/init.d/clickhouse-server start
+
+tar -xzvf clickhouse-client-$LATEST_VERSION.tgz
+sudo clickhouse-client-$LATEST_VERSION/install/doinst.sh
+```
+
+Üretim ortamları için en son teknolojiyi kullanmanız önerilir `stable`-sürüm. Numarasını GitHub sayfasında bulabilirsiniz https://github.com/ClickHouse/ClickHouse/tags postfix ile `-stable`.
+
+### Docker Görüntüden {#from-docker-image}
+
+Docker içinde ClickHouse çalıştırmak için kılavuzu izleyin [Docker Hub](https://hub.docker.com/r/yandex/clickhouse-server/). Bu görüntüler resmi `deb` paketler içinde.
+
+### Kaynaklardan {#from-sources}
+
+Clickhouse'u el ile derlemek için aşağıdaki talimatları izleyin [Linux](../development/build.md) veya [Mac OS X](../development/build_osx.md).
+
+Paketleri derleyebilir ve yükleyebilir veya paketleri yüklemeden programları kullanabilirsiniz. Ayrıca elle inşa ederek SSE 4.2 gereksinimini devre dışı bırakabilir veya AArch64 CPU'lar için oluşturabilirsiniz.
+
+ Client: programs/clickhouse-client
+ Server: programs/clickhouse-server
+
+Bir veri ve meta veri klasörleri oluşturmanız gerekir ve `chown` onları istenen kullanıcı için. Yolları sunucu yapılandırmasında değiştirilebilir (src / programlar / sunucu / config.xml), varsayılan olarak:
+
+ /opt/clickhouse/data/default/
+ /opt/clickhouse/metadata/default/
+
+Gentoo üzerinde, sadece kullanabilirsiniz `emerge clickhouse` Clickhouse'u kaynaklardan yüklemek için.
+
+## Başlamak {#launch}
+
+Sunucuyu bir daemon olarak başlatmak için çalıştırın:
+
+``` bash
+$ sudo service clickhouse-server start
+```
+
+Yok eğer `service` command, run as
+
+``` bash
+$ sudo /etc/init.d/clickhouse-server start
+```
+
+Günlükleri görmek `/var/log/clickhouse-server/` dizin.
+
+Sunucu başlatılmazsa, dosyadaki yapılandırmaları kontrol edin `/etc/clickhouse-server/config.xml`.
+
+Ayrıca sunucuyu konsoldan manuel olarak başlatabilirsiniz:
+
+``` bash
+$ clickhouse-server --config-file=/etc/clickhouse-server/config.xml
+```
+
+Bu durumda, günlük geliştirme sırasında uygun olan konsola yazdırılacaktır.
+Yapılandırma dosyası geçerli dizinde ise, `--config-file` parametre. Varsayılan olarak, kullanır `./config.xml`.
+
+ClickHouse erişim kısıtlama ayarlarını destekler. Bulun theurlar. `users.xml` dosya (yanındaki `config.xml`).
+Varsayılan olarak, erişim için herhangi bir yerden izin verilir `default` Kullanıcı, şifre olmadan. Görmek `user/default/networks`.
+Daha fazla bilgi için bölüme bakın [“Configuration Files”](../operations/configuration_files.md).
+
+Sunucuyu başlattıktan sonra, ona bağlanmak için komut satırı istemcisini kullanabilirsiniz:
+
+``` bash
+$ clickhouse-client
+```
+
+Varsayılan olarak, bağlanır `localhost:9000` kullanıcı adına `default` şifre olmadan. Kullanarak uzak bir sunucuya bağlanmak için de kullanılabilir `--host` değişken.
+
+Terminal UTF-8 kodlamasını kullanmalıdır.
+Daha fazla bilgi için bölüme bakın [“Command-line client”](../interfaces/cli.md).
+
+Örnek:
+
+``` bash
+$ ./clickhouse-client
+ClickHouse client version 0.0.18749.
+Connecting to localhost:9000.
+Connected to ClickHouse server version 0.0.18749.
+
+:) SELECT 1
+
+SELECT 1
+
+┌─1─┐
+│ 1 │
+└───┘
+
+1 rows in set. Elapsed: 0.003 sec.
+
+:)
+```
+
+**Tebrikler, sistem çalışıyor!**
+
+Denemeye devam etmek için, test veri kümelerinden birini indirebilir veya şunları yapabilirsiniz [öğretici](https://clickhouse.tech/tutorial.html).
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/install/)
diff --git a/docs/tr/getting_started/playground.md b/docs/tr/getting_started/playground.md
new file mode 100644
index 0000000000..7c0f364154
--- /dev/null
+++ b/docs/tr/getting_started/playground.md
@@ -0,0 +1,48 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 14
+toc_title: "Bah\xE7e"
+---
+
+# ClickHouse Oyun Alanı {#clickhouse-playground}
+
+[ClickHouse Oyun Alanı](https://play.clickhouse.tech?file=welcome) kullanıcıların kendi sunucu veya küme kurmadan, anında sorguları çalıştırarak ClickHouse ile deneme sağlar.
+Oyun alanında çeşitli örnek veri kümelerinin yanı sıra ClickHouse özelliklerini gösteren örnek sorgular da mevcuttur.
+
+Sorgular salt okunur bir kullanıcı olarak yürütülür. Bazı sınırlamaları ima eder:
+
+- DDL sorgularına İzin Verilmiyor
+- Sorgu Ekle izin verilmez
+
+Aşağıdaki ayarlar da uygulanır:
+- [`max_result_bytes=10485760`](../operations/settings/query_complexity/#max-result-bytes)
+- [`max_result_rows=2000`](../operations/settings/query_complexity/#setting-max_result_rows)
+- [`result_overflow_mode=break`](../operations/settings/query_complexity/#result-overflow-mode)
+- [`max_execution_time=60000`](../operations/settings/query_complexity/#max-execution-time)
+
+ClickHouse oyun alanı m2 deneyimini sunar.küçükler
+[ClickHouse için yönetilen hizmet](https://cloud.yandex.com/services/managed-clickhouse)
+örnek host hosteded in [Üye.Bulut](https://cloud.yandex.com/).
+Hakkında daha fazla bilgi [bulut sağlayıcıları](../commercial/cloud.md).
+
+ClickHouse Playground web arayüzü clickhouse üzerinden istekleri yapar [HTTP API](../interfaces/http.md).
+Bahçesi arka uç herhangi bir ek sunucu tarafı uygulaması olmadan sadece bir ClickHouse kümesidir.
+ClickHouse HTTPS bitiş noktası da oyun alanının bir parçası olarak kullanılabilir.
+
+Herhangi bir HTTP istemcisi kullanarak oyun alanına sorgu yapabilirsiniz, örneğin [kıvrılma](https://curl.haxx.se) veya [wget](https://www.gnu.org/software/wget/), veya kullanarak bir bağlantı kurmak [JDBC](../interfaces/jdbc.md) veya [ODBC](../interfaces/odbc.md) sürücüler.
+Clickhouse'u destekleyen yazılım ürünleri hakkında daha fazla bilgi mevcuttur [burada](../interfaces/index.md).
+
+| Parametre | Değer |
+|:----------|:----------------------------------------|
+| Nokta | https://play-api.clickhouse.teknik:8443 |
+| Kullanan | `playground` |
+| Şifre | `clickhouse` |
+
+Bu bitiş noktasının güvenli bir bağlantı gerektirdiğini unutmayın.
+
+Örnek:
+
+``` bash
+curl "https://play-api.clickhouse.tech:8443/?query=SELECT+'Play+ClickHouse!';&user=playground&password=clickhouse&database=datasets"
+```
diff --git a/docs/tr/getting_started/tutorial.md b/docs/tr/getting_started/tutorial.md
new file mode 100644
index 0000000000..9d3d31ba89
--- /dev/null
+++ b/docs/tr/getting_started/tutorial.md
@@ -0,0 +1,671 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 12
+toc_title: "\xD6\u011Fretici"
+---
+
+# ClickHouse Eğitimi {#clickhouse-tutorial}
+
+## Bu Öğreticiden ne beklenir? {#what-to-expect-from-this-tutorial}
+
+Bu öğreticiden geçerek, basit bir ClickHouse kümesinin nasıl kurulacağını öğreneceksiniz. Küçük ama hataya dayanıklı ve ölçeklenebilir olacak. Ardından, verilerle doldurmak ve bazı demo sorguları yürütmek için örnek veri kümelerinden birini kullanacağız.
+
+## Tek Düğüm Kurulumu {#single-node-setup}
+
+Dağıtılmış bir ortamın karmaşıklığını ertelemek için, Clickhouse'u tek bir sunucu veya sanal makinede dağıtmaya başlayacağız. ClickHouse genellikle [deb](index.md#install-from-deb-packages) veya [rpm](index.md#from-rpm-packages) paketler, ama var [alternatifler](index.md#from-docker-image) onları desteklemeyen işletim sistemleri için.
+
+Örneğin, seçtiğiniz `deb` paketler ve yürütülen:
+
+``` bash
+sudo apt-get install dirmngr
+sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv E0C56BD4
+
+echo "deb http://repo.clickhouse.tech/deb/stable/ main/" | sudo tee /etc/apt/sources.list.d/clickhouse.list
+sudo apt-get update
+
+sudo apt-get install -y clickhouse-server clickhouse-client
+```
+
+Yüklü olan paketlerde ne var:
+
+- `clickhouse-client` paket içerir [clickhouse-müşteri](../interfaces/cli.md) uygulama, interaktif ClickHouse konsol istemcisi.
+- `clickhouse-common` paket clickhouse yürütülebilir dosya içerir.
+- `clickhouse-server` paket bir sunucu olarak ClickHouse çalıştırmak için yapılandırma dosyalarını içerir.
+
+Sunucu yapılandırma dosyaları bulunur `/etc/clickhouse-server/`. Daha fazla gitmeden önce, fark lütfen `` element in `config.xml`. Path, veri depolama için konumu belirler, bu nedenle büyük disk kapasitesine sahip birimde bulunmalıdır; varsayılan değer `/var/lib/clickhouse/`. Yapılandırmayı ayarlamak istiyorsanız, doğrudan düzenlemek kullanışlı değildir `config.xml` dosya, gelecekteki paket güncellemelerinde yeniden yazılabileceğini düşünüyor. Yapılandırma öğelerini geçersiz kılmak için önerilen yol oluşturmaktır [config dosyaları.d dizin](../operations/configuration_files.md) hizmet olarak “patches” config için.xml.
+
+Fark etmiş olabileceğiniz gibi, `clickhouse-server` paket kurulumdan sonra otomatik olarak başlatılmaz. Güncellemelerden sonra otomatik olarak yeniden başlatılmaz. Sunucuyu başlatma şekliniz init sisteminize bağlıdır, genellikle:
+
+``` bash
+sudo service clickhouse-server start
+```
+
+veya
+
+``` bash
+sudo /etc/init.d/clickhouse-server start
+```
+
+Sunucu günlükleri için varsayılan konum `/var/log/clickhouse-server/`. Sunucu, oturum açtıktan sonra istemci bağlantılarını işlemeye hazırdır. `Ready for connections` ileti.
+
+Bir kez `clickhouse-server` yukarı ve çalışıyor, biz kullanabilirsiniz `clickhouse-client` sunucuya bağlanmak ve aşağıdaki gibi bazı test sorguları çalıştırmak için `SELECT "Hello, world!";`.
+
+
+
+Clickhouse-client için hızlı ipuçları
+İnteraktif mod:
+
+``` bash
+clickhouse-client
+clickhouse-client --host=... --port=... --user=... --password=...
+```
+
+Çok satırlı sorguları etkinleştirme:
+
+``` bash
+clickhouse-client -m
+clickhouse-client --multiline
+```
+
+Toplu iş modunda sorguları çalıştırma:
+
+``` bash
+clickhouse-client --query='SELECT 1'
+echo 'SELECT 1' | clickhouse-client
+clickhouse-client <<< 'SELECT 1'
+```
+
+Belirtilen biçimde bir dosyadan veri ekleme:
+
+``` bash
+clickhouse-client --query='INSERT INTO table VALUES' < data.txt
+clickhouse-client --query='INSERT INTO table FORMAT TabSeparated' < data.tsv
+```
+
+
+
+## Örnek Veri Kümesini İçe Aktar {#import-sample-dataset}
+
+Şimdi ClickHouse sunucumuzu bazı örnek verilerle doldurmanın zamanı geldi. Bu eğitimde, yandex'in anonim verilerini kullanacağız.Metrica, açık kaynak olmadan önce Clickhouse'u üretim yolunda çalıştıran ilk hizmet (daha fazlası [tarih bölümü](../introduction/history.md)). Var [Yandex'i içe aktarmanın birden fazla yolu.Metrica veri kümesi](example_datasets/metrica.md) ve öğretici uğruna, en gerçekçi olanı ile gideceğiz.
+
+### Tablo verilerini indirin ve ayıklayın {#download-and-extract-table-data}
+
+``` bash
+curl https://clickhouse-datasets.s3.yandex.net/hits/tsv/hits_v1.tsv.xz | unxz --threads=`nproc` > hits_v1.tsv
+curl https://clickhouse-datasets.s3.yandex.net/visits/tsv/visits_v1.tsv.xz | unxz --threads=`nproc` > visits_v1.tsv
+```
+
+Çıkarılan dosyalar yaklaşık 10GB boyutundadır.
+
+### Tablo Oluşturma {#create-tables}
+
+Çoğu veritabanı yönetim sisteminde olduğu gibi, ClickHouse tabloları mantıksal olarak gruplar “databases”. Bir `default` veritabanı, ancak adında yeni bir tane oluşturacağız `tutorial`:
+
+``` bash
+clickhouse-client --query "CREATE DATABASE IF NOT EXISTS tutorial"
+```
+
+Tablolar oluşturmak için sözdizimi veritabanlarına kıyasla çok daha karmaşıktır (bkz. [başvurma](../sql_reference/statements/create.md). Genelde `CREATE TABLE` deyimi üç önemli şeyi belirtmek zorundadır:
+
+1. Oluşturulacak tablonun adı.
+2. Table schema, i.e. list of columns and their [veri türleri](../sql_reference/data_types/index.md).
+3. [Masa motoru](../engines/table_engines/index.md) ve bu tabloya yapılan sorguların fiziksel olarak nasıl yürütüleceği ile ilgili tüm ayrıntıları belirleyen ayarları.
+
+Üye.Metrica bir web analitiği hizmetidir ve örnek veri kümesi tam işlevselliğini kapsamaz, bu nedenle oluşturmak için sadece iki tablo vardır:
+
+- `hits` hizmet kapsamındaki tüm web sitelerinde tüm kullanıcılar tarafından yapılan her eylem ile bir tablodur.
+- `visits` bireysel eylemler yerine önceden oluşturulmuş oturumlar içeren bir tablodur.
+
+Bu tablolar için gerçek create table sorgularını görelim ve yürütelim:
+
+``` sql
+CREATE TABLE tutorial.hits_v1
+(
+ `WatchID` UInt64,
+ `JavaEnable` UInt8,
+ `Title` String,
+ `GoodEvent` Int16,
+ `EventTime` DateTime,
+ `EventDate` Date,
+ `CounterID` UInt32,
+ `ClientIP` UInt32,
+ `ClientIP6` FixedString(16),
+ `RegionID` UInt32,
+ `UserID` UInt64,
+ `CounterClass` Int8,
+ `OS` UInt8,
+ `UserAgent` UInt8,
+ `URL` String,
+ `Referer` String,
+ `URLDomain` String,
+ `RefererDomain` String,
+ `Refresh` UInt8,
+ `IsRobot` UInt8,
+ `RefererCategories` Array(UInt16),
+ `URLCategories` Array(UInt16),
+ `URLRegions` Array(UInt32),
+ `RefererRegions` Array(UInt32),
+ `ResolutionWidth` UInt16,
+ `ResolutionHeight` UInt16,
+ `ResolutionDepth` UInt8,
+ `FlashMajor` UInt8,
+ `FlashMinor` UInt8,
+ `FlashMinor2` String,
+ `NetMajor` UInt8,
+ `NetMinor` UInt8,
+ `UserAgentMajor` UInt16,
+ `UserAgentMinor` FixedString(2),
+ `CookieEnable` UInt8,
+ `JavascriptEnable` UInt8,
+ `IsMobile` UInt8,
+ `MobilePhone` UInt8,
+ `MobilePhoneModel` String,
+ `Params` String,
+ `IPNetworkID` UInt32,
+ `TraficSourceID` Int8,
+ `SearchEngineID` UInt16,
+ `SearchPhrase` String,
+ `AdvEngineID` UInt8,
+ `IsArtifical` UInt8,
+ `WindowClientWidth` UInt16,
+ `WindowClientHeight` UInt16,
+ `ClientTimeZone` Int16,
+ `ClientEventTime` DateTime,
+ `SilverlightVersion1` UInt8,
+ `SilverlightVersion2` UInt8,
+ `SilverlightVersion3` UInt32,
+ `SilverlightVersion4` UInt16,
+ `PageCharset` String,
+ `CodeVersion` UInt32,
+ `IsLink` UInt8,
+ `IsDownload` UInt8,
+ `IsNotBounce` UInt8,
+ `FUniqID` UInt64,
+ `HID` UInt32,
+ `IsOldCounter` UInt8,
+ `IsEvent` UInt8,
+ `IsParameter` UInt8,
+ `DontCountHits` UInt8,
+ `WithHash` UInt8,
+ `HitColor` FixedString(1),
+ `UTCEventTime` DateTime,
+ `Age` UInt8,
+ `Sex` UInt8,
+ `Income` UInt8,
+ `Interests` UInt16,
+ `Robotness` UInt8,
+ `GeneralInterests` Array(UInt16),
+ `RemoteIP` UInt32,
+ `RemoteIP6` FixedString(16),
+ `WindowName` Int32,
+ `OpenerName` Int32,
+ `HistoryLength` Int16,
+ `BrowserLanguage` FixedString(2),
+ `BrowserCountry` FixedString(2),
+ `SocialNetwork` String,
+ `SocialAction` String,
+ `HTTPError` UInt16,
+ `SendTiming` Int32,
+ `DNSTiming` Int32,
+ `ConnectTiming` Int32,
+ `ResponseStartTiming` Int32,
+ `ResponseEndTiming` Int32,
+ `FetchTiming` Int32,
+ `RedirectTiming` Int32,
+ `DOMInteractiveTiming` Int32,
+ `DOMContentLoadedTiming` Int32,
+ `DOMCompleteTiming` Int32,
+ `LoadEventStartTiming` Int32,
+ `LoadEventEndTiming` Int32,
+ `NSToDOMContentLoadedTiming` Int32,
+ `FirstPaintTiming` Int32,
+ `RedirectCount` Int8,
+ `SocialSourceNetworkID` UInt8,
+ `SocialSourcePage` String,
+ `ParamPrice` Int64,
+ `ParamOrderID` String,
+ `ParamCurrency` FixedString(3),
+ `ParamCurrencyID` UInt16,
+ `GoalsReached` Array(UInt32),
+ `OpenstatServiceName` String,
+ `OpenstatCampaignID` String,
+ `OpenstatAdID` String,
+ `OpenstatSourceID` String,
+ `UTMSource` String,
+ `UTMMedium` String,
+ `UTMCampaign` String,
+ `UTMContent` String,
+ `UTMTerm` String,
+ `FromTag` String,
+ `HasGCLID` UInt8,
+ `RefererHash` UInt64,
+ `URLHash` UInt64,
+ `CLID` UInt32,
+ `YCLID` UInt64,
+ `ShareService` String,
+ `ShareURL` String,
+ `ShareTitle` String,
+ `ParsedParams` Nested(
+ Key1 String,
+ Key2 String,
+ Key3 String,
+ Key4 String,
+ Key5 String,
+ ValueDouble Float64),
+ `IslandID` FixedString(16),
+ `RequestNum` UInt32,
+ `RequestTry` UInt8
+)
+ENGINE = MergeTree()
+PARTITION BY toYYYYMM(EventDate)
+ORDER BY (CounterID, EventDate, intHash32(UserID))
+SAMPLE BY intHash32(UserID)
+SETTINGS index_granularity = 8192
+```
+
+``` sql
+CREATE TABLE tutorial.visits_v1
+(
+ `CounterID` UInt32,
+ `StartDate` Date,
+ `Sign` Int8,
+ `IsNew` UInt8,
+ `VisitID` UInt64,
+ `UserID` UInt64,
+ `StartTime` DateTime,
+ `Duration` UInt32,
+ `UTCStartTime` DateTime,
+ `PageViews` Int32,
+ `Hits` Int32,
+ `IsBounce` UInt8,
+ `Referer` String,
+ `StartURL` String,
+ `RefererDomain` String,
+ `StartURLDomain` String,
+ `EndURL` String,
+ `LinkURL` String,
+ `IsDownload` UInt8,
+ `TraficSourceID` Int8,
+ `SearchEngineID` UInt16,
+ `SearchPhrase` String,
+ `AdvEngineID` UInt8,
+ `PlaceID` Int32,
+ `RefererCategories` Array(UInt16),
+ `URLCategories` Array(UInt16),
+ `URLRegions` Array(UInt32),
+ `RefererRegions` Array(UInt32),
+ `IsYandex` UInt8,
+ `GoalReachesDepth` Int32,
+ `GoalReachesURL` Int32,
+ `GoalReachesAny` Int32,
+ `SocialSourceNetworkID` UInt8,
+ `SocialSourcePage` String,
+ `MobilePhoneModel` String,
+ `ClientEventTime` DateTime,
+ `RegionID` UInt32,
+ `ClientIP` UInt32,
+ `ClientIP6` FixedString(16),
+ `RemoteIP` UInt32,
+ `RemoteIP6` FixedString(16),
+ `IPNetworkID` UInt32,
+ `SilverlightVersion3` UInt32,
+ `CodeVersion` UInt32,
+ `ResolutionWidth` UInt16,
+ `ResolutionHeight` UInt16,
+ `UserAgentMajor` UInt16,
+ `UserAgentMinor` UInt16,
+ `WindowClientWidth` UInt16,
+ `WindowClientHeight` UInt16,
+ `SilverlightVersion2` UInt8,
+ `SilverlightVersion4` UInt16,
+ `FlashVersion3` UInt16,
+ `FlashVersion4` UInt16,
+ `ClientTimeZone` Int16,
+ `OS` UInt8,
+ `UserAgent` UInt8,
+ `ResolutionDepth` UInt8,
+ `FlashMajor` UInt8,
+ `FlashMinor` UInt8,
+ `NetMajor` UInt8,
+ `NetMinor` UInt8,
+ `MobilePhone` UInt8,
+ `SilverlightVersion1` UInt8,
+ `Age` UInt8,
+ `Sex` UInt8,
+ `Income` UInt8,
+ `JavaEnable` UInt8,
+ `CookieEnable` UInt8,
+ `JavascriptEnable` UInt8,
+ `IsMobile` UInt8,
+ `BrowserLanguage` UInt16,
+ `BrowserCountry` UInt16,
+ `Interests` UInt16,
+ `Robotness` UInt8,
+ `GeneralInterests` Array(UInt16),
+ `Params` Array(String),
+ `Goals` Nested(
+ ID UInt32,
+ Serial UInt32,
+ EventTime DateTime,
+ Price Int64,
+ OrderID String,
+ CurrencyID UInt32),
+ `WatchIDs` Array(UInt64),
+ `ParamSumPrice` Int64,
+ `ParamCurrency` FixedString(3),
+ `ParamCurrencyID` UInt16,
+ `ClickLogID` UInt64,
+ `ClickEventID` Int32,
+ `ClickGoodEvent` Int32,
+ `ClickEventTime` DateTime,
+ `ClickPriorityID` Int32,
+ `ClickPhraseID` Int32,
+ `ClickPageID` Int32,
+ `ClickPlaceID` Int32,
+ `ClickTypeID` Int32,
+ `ClickResourceID` Int32,
+ `ClickCost` UInt32,
+ `ClickClientIP` UInt32,
+ `ClickDomainID` UInt32,
+ `ClickURL` String,
+ `ClickAttempt` UInt8,
+ `ClickOrderID` UInt32,
+ `ClickBannerID` UInt32,
+ `ClickMarketCategoryID` UInt32,
+ `ClickMarketPP` UInt32,
+ `ClickMarketCategoryName` String,
+ `ClickMarketPPName` String,
+ `ClickAWAPSCampaignName` String,
+ `ClickPageName` String,
+ `ClickTargetType` UInt16,
+ `ClickTargetPhraseID` UInt64,
+ `ClickContextType` UInt8,
+ `ClickSelectType` Int8,
+ `ClickOptions` String,
+ `ClickGroupBannerID` Int32,
+ `OpenstatServiceName` String,
+ `OpenstatCampaignID` String,
+ `OpenstatAdID` String,
+ `OpenstatSourceID` String,
+ `UTMSource` String,
+ `UTMMedium` String,
+ `UTMCampaign` String,
+ `UTMContent` String,
+ `UTMTerm` String,
+ `FromTag` String,
+ `HasGCLID` UInt8,
+ `FirstVisit` DateTime,
+ `PredLastVisit` Date,
+ `LastVisit` Date,
+ `TotalVisits` UInt32,
+ `TraficSource` Nested(
+ ID Int8,
+ SearchEngineID UInt16,
+ AdvEngineID UInt8,
+ PlaceID UInt16,
+ SocialSourceNetworkID UInt8,
+ Domain String,
+ SearchPhrase String,
+ SocialSourcePage String),
+ `Attendance` FixedString(16),
+ `CLID` UInt32,
+ `YCLID` UInt64,
+ `NormalizedRefererHash` UInt64,
+ `SearchPhraseHash` UInt64,
+ `RefererDomainHash` UInt64,
+ `NormalizedStartURLHash` UInt64,
+ `StartURLDomainHash` UInt64,
+ `NormalizedEndURLHash` UInt64,
+ `TopLevelDomain` UInt64,
+ `URLScheme` UInt64,
+ `OpenstatServiceNameHash` UInt64,
+ `OpenstatCampaignIDHash` UInt64,
+ `OpenstatAdIDHash` UInt64,
+ `OpenstatSourceIDHash` UInt64,
+ `UTMSourceHash` UInt64,
+ `UTMMediumHash` UInt64,
+ `UTMCampaignHash` UInt64,
+ `UTMContentHash` UInt64,
+ `UTMTermHash` UInt64,
+ `FromHash` UInt64,
+ `WebVisorEnabled` UInt8,
+ `WebVisorActivity` UInt32,
+ `ParsedParams` Nested(
+ Key1 String,
+ Key2 String,
+ Key3 String,
+ Key4 String,
+ Key5 String,
+ ValueDouble Float64),
+ `Market` Nested(
+ Type UInt8,
+ GoalID UInt32,
+ OrderID String,
+ OrderPrice Int64,
+ PP UInt32,
+ DirectPlaceID UInt32,
+ DirectOrderID UInt32,
+ DirectBannerID UInt32,
+ GoodID String,
+ GoodName String,
+ GoodQuantity Int32,
+ GoodPrice Int64),
+ `IslandID` FixedString(16)
+)
+ENGINE = CollapsingMergeTree(Sign)
+PARTITION BY toYYYYMM(StartDate)
+ORDER BY (CounterID, StartDate, intHash32(UserID), VisitID)
+SAMPLE BY intHash32(UserID)
+SETTINGS index_granularity = 8192
+```
+
+Etkileşimli modunu kullanarak bu sorguları yürütebilirsiniz `clickhouse-client` (sadece önceden bir sorgu belirtmeden bir terminalde başlatın) veya bazı deneyin [alternatif arayüz](../interfaces/index.md) Eğer isterseniz.
+
+Gördüğümüz gibi, `hits_v1` kullanır [temel MergeTree motoru](../engines/table_engines/mergetree_family/mergetree.md), WH whileile the `visits_v1` kullanır [Çökme](../engines/table_engines/mergetree_family/collapsingmergetree.md) varyant.
+
+### Verileri İçe Aktar {#import-data}
+
+Clickhouse'a veri aktarımı yapılır [INSERT INTO](../sql_reference/statements/insert_into.md) diğer birçok SQL veritabanlarında olduğu gibi sorgu. Bununla birlikte, veriler genellikle [desteklenen seri hale getirme biçimleri](../interfaces/formats.md) yerine `VALUES` fıkra clausesı (ayrıca desteklenmektedir).
+
+Onları almak için ne kadar daha önce indirdiğimiz dosyaları sekme ayrılmış biçimde, yani burada konsol istemci ile :
+
+``` bash
+clickhouse-client --query "INSERT INTO tutorial.hits_v1 FORMAT TSV" --max_insert_block_size=100000 < hits_v1.tsv
+clickhouse-client --query "INSERT INTO tutorial.visits_v1 FORMAT TSV" --max_insert_block_size=100000 < visits_v1.tsv
+```
+
+ClickHouse bir yeri vardır [ayarlan settingsacak ayarlar](../operations/settings/index.md) ve bunları konsol istemcisinde belirtmenin bir yolu, görebildiğimiz gibi argümanlar aracılığıyla `--max_insert_block_size`. Hangi ayarların mevcut olduğunu, ne anlama geldiğini ve varsayılanların ne olduğunu anlamanın en kolay yolu `system.settings` Tablo:
+
+``` sql
+SELECT name, value, changed, description
+FROM system.settings
+WHERE name LIKE '%max_insert_b%'
+FORMAT TSV
+
+max_insert_block_size 1048576 0 "The maximum block size for insertion, if we control the creation of blocks for insertion."
+```
+
+İsteğe bağlı olarak şunları yapabilirsiniz [OPTIMIZE](../sql_reference/statements/misc.md#misc_operations-optimize) ithalattan sonra tablolar. MergeTree-family'den bir motorla yapılandırılmış tablolar, veri depolamayı en iyi duruma getirmek (veya en azından mantıklı olup olmadığını kontrol etmek) için her zaman arka planda veri parçalarının birleştirilmesini sağlar. Bu sorgular, tablo motorunu bir süre sonra yerine şu anda depolama optimizasyonu yapmaya zorlar:
+
+``` bash
+clickhouse-client --query "OPTIMIZE TABLE tutorial.hits_v1 FINAL"
+clickhouse-client --query "OPTIMIZE TABLE tutorial.visits_v1 FINAL"
+```
+
+Bu sorgular bir G/Ç ve CPU yoğun işlem başlatır, bu nedenle tablo sürekli olarak yeni veriler alırsa, onu yalnız bırakmak ve birleştirmelerin arka planda çalışmasına izin vermek daha iyidir.
+
+Şimdi tablo ithalatının başarılı olup olmadığını kontrol edebiliriz:
+
+``` bash
+clickhouse-client --query "SELECT COUNT(*) FROM tutorial.hits_v1"
+clickhouse-client --query "SELECT COUNT(*) FROM tutorial.visits_v1"
+```
+
+## Örnek Sorgular {#example-queries}
+
+``` sql
+SELECT
+ StartURL AS URL,
+ AVG(Duration) AS AvgDuration
+FROM tutorial.visits_v1
+WHERE StartDate BETWEEN '2014-03-23' AND '2014-03-30'
+GROUP BY URL
+ORDER BY AvgDuration DESC
+LIMIT 10
+```
+
+``` sql
+SELECT
+ sum(Sign) AS visits,
+ sumIf(Sign, has(Goals.ID, 1105530)) AS goal_visits,
+ (100. * goal_visits) / visits AS goal_percent
+FROM tutorial.visits_v1
+WHERE (CounterID = 912887) AND (toYYYYMM(StartDate) = 201403) AND (domain(StartURL) = 'yandex.ru')
+```
+
+## Küme Dağıtımı {#cluster-deployment}
+
+ClickHouse kümesi homojen bir kümedir. Kurulum adımları:
+
+1. Kümenin tüm makinelerine ClickHouse Server'ı yükleyin
+2. Yapılandırma dosyalarında küme yapılandırmalarını ayarlama
+3. Her örnekte yerel tablolar oluşturun
+4. Create a [Dağıtılmış tablo](../engines/table_engines/special/distributed.md)
+
+[Dağıtılmış tablo](../engines/table_engines/special/distributed.md) aslında bir tür “view” ClickHouse kümesinin yerel tablolarına. Dağıtılmış bir tablodan sorgu seçin, tüm kümenin parçalarının kaynaklarını kullanarak yürütür. Birden çok küme için yapılandırmalar belirtebilir ve farklı kümelere görünümler sağlayan birden çok dağıtılmış tablo oluşturabilirsiniz.
+
+Her biri bir kopya olan üç parçalı bir küme için örnek yapılandırma:
+
+``` xml
+
+
+
+
+ example-perftest01j.yandex.ru
+ 9000
+
+
+
+
+ example-perftest02j.yandex.ru
+ 9000
+
+
+
+
+ example-perftest03j.yandex.ru
+ 9000
+
+
+
+
+```
+
+Daha fazla gösteri için, aynı ile yeni bir yerel tablo oluşturalım `CREATE TABLE` için kullandığımız sorgu `hits_v1` ama farklı bir tablo adı:
+
+``` sql
+CREATE TABLE tutorial.hits_local (...) ENGINE = MergeTree() ...
+```
+
+Kümenin yerel tablolarına bir görünüm sağlayan dağıtılmış bir tablo oluşturma:
+
+``` sql
+CREATE TABLE tutorial.hits_all AS tutorial.hits_local
+ENGINE = Distributed(perftest_3shards_1replicas, tutorial, hits_local, rand());
+```
+
+Yaygın bir uygulama, kümenin tüm makinelerinde benzer dağıtılmış tablolar oluşturmaktır. Kümenin herhangi bir makinesinde dağıtılmış sorguları çalıştırmaya izin verir. Ayrıca, belirli bir SELECT sorgusu için geçici dağıtılmış tablo oluşturmak için alternatif bir seçenek vardır [uzak](../sql_reference/table_functions/remote.md) tablo işlevi.
+
+Hadi koşalım [INSERT SELECT](../sql_reference/statements/insert_into.md) tabloyu birden çok sunucuya yaymak için dağıtılmış tabloya.
+
+``` sql
+INSERT INTO tutorial.hits_all SELECT * FROM tutorial.hits_v1;
+```
+
+!!! warning "Bildirim"
+ Bu yaklaşım büyük tabloların parçalanması için uygun değildir. Ayrı bir araç var [clickhouse-fotokopi makinesi](../operations/utilities/clickhouse-copier.md) bu keyfi büyük tabloları yeniden parçalayabilir.
+
+Tahmin edebileceğiniz gibi, hesaplamalı olarak ağır sorgular, bir yerine 3 sunucu kullanıyorsa n kat daha hızlı çalışır.
+
+Bu durumda, 3 parçaya sahip bir küme kullandık ve her biri tek bir kopya içeriyor.
+
+Bir üretim ortamında esneklik sağlamak için, her bir parçanın birden çok kullanılabilirlik bölgesi veya veri merkezleri (veya en azından raflar) arasında yayılmış 2-3 kopya içermesi önerilir. ClickHouse yinelemeler sınırsız sayıda desteklediğini unutmayın.
+
+Üç yineleme içeren bir parça kümesi için örnek yapılandırma:
+
+``` xml
+
+ ...
+
+
+
+ example-perftest01j.yandex.ru
+ 9000
+
+
+ example-perftest02j.yandex.ru
+ 9000
+
+
+ example-perftest03j.yandex.ru
+ 9000
+
+
+
+
+```
+
+Yerel çoğaltmayı etkinleştirmek için [ZooKeeper](http://zookeeper.apache.org/) gereklidir. ClickHouse tüm yinelemeler üzerinde veri tutarlılığı ilgilenir ve otomatik olarak hatadan sonra prosedürü geri çalışır. ZooKeeper kümesinin ayrı sunuculara dağıtılması önerilir(ClickHouse dahil başka hiçbir işlem çalışmaz).
+
+!!! note "Not"
+ ZooKeeper sıkı bir gereklilik değildir: bazı basit durumlarda, verileri uygulama kodunuzdan tüm kopyalara yazarak çoğaltabilirsiniz. Bu yaklaşım **değil** önerilen, bu durumda, ClickHouse tüm yinelemelerde veri tutarlılığını garanti edemez. Böylece başvurunuzun sorumluluğu haline gelir.
+
+Zookeeper konumları yapılandırma dosyasında belirtilir:
+
+``` xml
+
+
+ zoo01.yandex.ru
+ 2181
+
+
+ zoo02.yandex.ru
+ 2181
+
+
+ zoo03.yandex.ru
+ 2181
+
+
+```
+
+Ayrıca, tablo oluşturulmasında kullanılan her bir parça ve kopyayı tanımlamak için makrolar ayarlamamız gerekir:
+
+``` xml
+
+ 01
+ 01
+
+```
+
+Yinelenmiş tablo oluşturma şu anda hiçbir yinelemeler varsa, yeni bir ilk yineleme örneği. Zaten canlı yinelemeler varsa, yeni yineleme varolan verileri klonlar. Önce tüm çoğaltılmış tablolar oluşturmak ve sonra veri eklemek için bir seçeneğiniz vardır. Başka bir seçenek, bazı yinelemeler oluşturmak ve veri ekleme sırasında veya sonrasında diğerlerini eklemektir.
+
+``` sql
+CREATE TABLE tutorial.hits_replica (...)
+ENGINE = ReplcatedMergeTree(
+ '/clickhouse_perftest/tables/{shard}/hits',
+ '{replica}'
+)
+...
+```
+
+Burada kullanıyoruz [ReplicatedMergeTree](../engines/table_engines/mergetree_family/replication.md) masa motoru. Parametrelerde, Shard ve çoğaltma tanımlayıcılarını içeren ZooKeeper yolunu belirtiyoruz.
+
+``` sql
+INSERT INTO tutorial.hits_replica SELECT * FROM tutorial.hits_local;
+```
+
+Çoğaltma çok ana modda çalışır. Veriler herhangi bir kopyaya yüklenebilir ve sistem daha sonra otomatik olarak diğer örneklerle eşitler. Çoğaltma zaman uyumsuz olduğundan, belirli bir anda, tüm yinelemeler son eklenen verileri içerebilir. Veri alımına izin vermek için en az bir kopya olmalıdır. Diğerleri verileri senkronize eder ve tekrar aktif hale geldiklerinde tutarlılığı onarır. Bu yaklaşımın, yakın zamanda eklenen veri kaybı olasılığının düşük olmasına izin verdiğini unutmayın.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/getting_started/tutorial/)
diff --git a/docs/tr/guides/apply_catboost_model.md b/docs/tr/guides/apply_catboost_model.md
new file mode 100644
index 0000000000..92bfac226f
--- /dev/null
+++ b/docs/tr/guides/apply_catboost_model.md
@@ -0,0 +1,239 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 41
+toc_title: CatBoost Modellerini Uygulamak
+---
+
+# Clickhouse'da bir Catboost modeli uygulamak {#applying-catboost-model-in-clickhouse}
+
+[CatBoost](https://catboost.ai) geliştirilen ücretsiz ve açık kaynak kodlu bir GRA anddi libraryent kütüphan aesidir. [Yandex](https://yandex.com/company/) makine öğrenimi için.
+
+Bu Talimatla, Sql'den model çıkarımı çalıştırarak Clickhouse'da önceden eğitilmiş modelleri uygulamayı öğreneceksiniz.
+
+Clickhouse'da bir CatBoost modeli uygulamak için:
+
+1. [Tablo oluşturma](#create-table).
+2. [Verileri tabloya ekleme](#insert-data-to-table).
+3. [Catboost'u Clickhouse'a entegre edin](#integrate-catboost-into-clickhouse) (İsteğe bağlı adım).
+4. [SQL'DEN Model Çıkarımını çalıştırın](#run-model-inference).
+
+Eğitim CatBoost modelleri hakkında daha fazla bilgi için bkz [Eğitim ve uygulama modelleri](https://catboost.ai/docs/features/training.html#training).
+
+## Önkoşullar {#prerequisites}
+
+Eğer yoksa [Docker](https://docs.docker.com/install/) yine de yükleyin.
+
+!!! note "Not"
+ [Docker](https://www.docker.com) sistemin geri kalanından bir CatBoost ve ClickHouse kurulumunu izole eden kaplar oluşturmanıza olanak sağlayan bir yazılım platformudur.
+
+Bir CatBoost modeli uygulamadan önce:
+
+**1.** P pullull the [Docker görüntü](https://hub.docker.com/r/yandex/tutorial-catboost-clickhouse) kayıt defter theinden:
+
+``` bash
+$ docker pull yandex/tutorial-catboost-clickhouse
+```
+
+Kod, çalışma zamanı, kütüphaneler, ortam değişkenleri ve Yapılandırma Dosyaları: bu Docker görüntü catboost ve ClickHouse çalıştırmak için gereken her şeyi içerir.
+
+**2.** Docker görüntüsünün başarıyla çekildiğinden emin olun:
+
+``` bash
+$ docker image ls
+REPOSITORY TAG IMAGE ID CREATED SIZE
+yandex/tutorial-catboost-clickhouse latest 622e4d17945b 22 hours ago 1.37GB
+```
+
+**3.** Bu görüntüye dayalı bir Docker kabı başlatın:
+
+``` bash
+$ docker run -it -p 8888:8888 yandex/tutorial-catboost-clickhouse
+```
+
+## 1. Tablo oluşturma {#create-table}
+
+Eğitim örneği için bir ClickHouse tablosu oluşturmak için:
+
+**1.** Etkileşimli modda ClickHouse konsol istemcisini başlatın:
+
+``` bash
+$ clickhouse client
+```
+
+!!! note "Not"
+ Clickhouse sunucusu Docker kapsayıcısı içinde zaten çalışıyor.
+
+**2.** Komutu kullanarak tablo oluşturun:
+
+``` sql
+:) CREATE TABLE amazon_train
+(
+ date Date MATERIALIZED today(),
+ ACTION UInt8,
+ RESOURCE UInt32,
+ MGR_ID UInt32,
+ ROLE_ROLLUP_1 UInt32,
+ ROLE_ROLLUP_2 UInt32,
+ ROLE_DEPTNAME UInt32,
+ ROLE_TITLE UInt32,
+ ROLE_FAMILY_DESC UInt32,
+ ROLE_FAMILY UInt32,
+ ROLE_CODE UInt32
+)
+ENGINE = MergeTree ORDER BY date
+```
+
+**3.** ClickHouse konsol istemcisinden çıkış:
+
+``` sql
+:) exit
+```
+
+## 2. Verileri tabloya ekleme {#insert-data-to-table}
+
+Verileri eklemek için:
+
+**1.** Aşağıdaki komutu çalıştırın:
+
+``` bash
+$ clickhouse client --host 127.0.0.1 --query 'INSERT INTO amazon_train FORMAT CSVWithNames' < ~/amazon/train.csv
+```
+
+**2.** Etkileşimli modda ClickHouse konsol istemcisini başlatın:
+
+``` bash
+$ clickhouse client
+```
+
+**3.** Verilerin yüklendiğinden emin olun:
+
+``` sql
+:) SELECT count() FROM amazon_train
+
+SELECT count()
+FROM amazon_train
+
++-count()-+
+| 65538 |
++-------+
+```
+
+## 3. Catboost'u Clickhouse'a entegre edin {#integrate-catboost-into-clickhouse}
+
+!!! note "Not"
+ **İsteğe bağlı adım.** Docker görüntü catboost ve ClickHouse çalıştırmak için gereken her şeyi içerir.
+
+Catboost'u Clickhouse'a entegre etmek için:
+
+**1.** Değerlendirme kitaplığı oluşturun.
+
+Bir CatBoost modelini değerlendirmenin en hızlı yolu derlemedir `libcatboostmodel.` kitaplık. Kitaplığın nasıl oluşturulacağı hakkında daha fazla bilgi için bkz. [CatBoost belgeleri](https://catboost.ai/docs/concepts/c-plus-plus-api_dynamic-c-pluplus-wrapper.html).
+
+**2.** Herhangi bir yerde ve herhangi bir adla yeni bir dizin oluşturun, örneğin, `data` ve oluşturulan kütüphaneyi içine koyun. Docker görüntüsü zaten kütüphaneyi içeriyor `data/libcatboostmodel.so`.
+
+**3.** Yapılandırma modeli için herhangi bir yerde ve herhangi bir adla yeni bir dizin oluşturun, örneğin, `models`.
+
+**4.** Örneğin, herhangi bir ada sahip bir model yapılandırma dosyası oluşturun, `models/amazon_model.xml`.
+
+**5.** Model yapılandırmasını açıklayın:
+
+``` xml
+
+
+
+ catboost
+
+ amazon
+
+ /home/catboost/tutorial/catboost_model.bin
+
+ 0
+
+
+```
+
+**6.** Catboost yolunu ve model yapılandırmasını ClickHouse yapılandırmasına ekleyin:
+
+``` xml
+
+/home/catboost/data/libcatboostmodel.so
+/home/catboost/models/*_model.xml
+```
+
+## 4. SQL'DEN Model Çıkarımını çalıştırın {#run-model-inference}
+
+Test modeli için ClickHouse istemcisini çalıştırın `$ clickhouse client`.
+
+Modelin çalıştığından emin olalım:
+
+``` sql
+:) SELECT
+ modelEvaluate('amazon',
+ RESOURCE,
+ MGR_ID,
+ ROLE_ROLLUP_1,
+ ROLE_ROLLUP_2,
+ ROLE_DEPTNAME,
+ ROLE_TITLE,
+ ROLE_FAMILY_DESC,
+ ROLE_FAMILY,
+ ROLE_CODE) > 0 AS prediction,
+ ACTION AS target
+FROM amazon_train
+LIMIT 10
+```
+
+!!! note "Not"
+ İşlev [modelEvaluate](../sql_reference/functions/other_functions.md#function-modelevaluate) multiclass modelleri için sınıf başına ham tahminleri ile tuple döndürür.
+
+Olasılığı tahmin edelim:
+
+``` sql
+:) SELECT
+ modelEvaluate('amazon',
+ RESOURCE,
+ MGR_ID,
+ ROLE_ROLLUP_1,
+ ROLE_ROLLUP_2,
+ ROLE_DEPTNAME,
+ ROLE_TITLE,
+ ROLE_FAMILY_DESC,
+ ROLE_FAMILY,
+ ROLE_CODE) AS prediction,
+ 1. / (1 + exp(-prediction)) AS probability,
+ ACTION AS target
+FROM amazon_train
+LIMIT 10
+```
+
+!!! note "Not"
+ Hakkında daha fazla bilgi [exp()](../sql_reference/functions/math_functions.md) işlev.
+
+Örnek üzerinde LogLoss hesaplayalım:
+
+``` sql
+:) SELECT -avg(tg * log(prob) + (1 - tg) * log(1 - prob)) AS logloss
+FROM
+(
+ SELECT
+ modelEvaluate('amazon',
+ RESOURCE,
+ MGR_ID,
+ ROLE_ROLLUP_1,
+ ROLE_ROLLUP_2,
+ ROLE_DEPTNAME,
+ ROLE_TITLE,
+ ROLE_FAMILY_DESC,
+ ROLE_FAMILY,
+ ROLE_CODE) AS prediction,
+ 1. / (1. + exp(-prediction)) AS prob,
+ ACTION AS tg
+ FROM amazon_train
+)
+```
+
+!!! note "Not"
+ Hakkında daha fazla bilgi [avg()](../sql_reference/aggregate_functions/reference.md#agg_function-avg) ve [günlük()](../sql_reference/functions/math_functions.md) işlevler.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/guides/apply_catboost_model/)
diff --git a/docs/tr/guides/index.md b/docs/tr/guides/index.md
new file mode 100644
index 0000000000..95ad65443b
--- /dev/null
+++ b/docs/tr/guides/index.md
@@ -0,0 +1,16 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_folder_title: "K\u0131lavuzlar"
+toc_priority: 38
+toc_title: "Genel bak\u0131\u015F"
+---
+
+# ClickHouse Kılavuzları {#clickhouse-guides}
+
+ClickHouse kullanarak çeşitli görevleri çözmeye yardımcı olan ayrıntılı adım adım talimatların listesi:
+
+- [Basit küme kurulumu eğitimi](../getting_started/tutorial.md)
+- [Clickhouse'da bir CatBoost modeli uygulamak](apply_catboost_model.md)
+
+[Orijinal makale](https://clickhouse.tech/docs/en/guides/)
diff --git a/docs/tr/images b/docs/tr/images
new file mode 120000
index 0000000000..73937c941e
--- /dev/null
+++ b/docs/tr/images
@@ -0,0 +1 @@
+../en/images
\ No newline at end of file
diff --git a/docs/tr/index.md b/docs/tr/index.md
new file mode 100644
index 0000000000..0ef0f264b8
--- /dev/null
+++ b/docs/tr/index.md
@@ -0,0 +1,139 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 0
+toc_title: "Genel bak\u0131\u015F"
+---
+
+# ClickHouse nedir? {#what-is-clickhouse}
+
+ClickHouse, sorguların çevrimiçi analitik işlenmesi (OLAP) için sütun odaklı bir veritabanı yönetim sistemidir (DBMS).
+
+İn a “normal” satır yönelimli DBMS, veri bu sırayla saklanır:
+
+| Satır | Watchıd | JavaEnable | Başlık | GoodEvent | EventTime |
+|-------|-------------|------------|----------------------|-----------|---------------------|
+| \#0 | 89354350662 | 1 | Yatırımcı İlişkileri | 1 | 2016-05-18 05:19:20 |
+| \#1 | 90329509958 | 0 | Bize ulaşın | 1 | 2016-05-18 08:10:20 |
+| \#2 | 89953706054 | 1 | Görev | 1 | 2016-05-18 07:38:00 |
+| \#N | … | … | … | … | … |
+
+Başka bir deyişle, bir satırla ilgili tüm değerler fiziksel olarak yan yana depolanır.
+
+Satır yönelimli DBMS örnekleri MySQL, Postgres ve MS SQL Server'dır.
+
+Sütun yönelimli bir DBMS'DE, veriler şu şekilde saklanır:
+
+| Satır: | \#0 | \#1 | \#2 | \#N |
+|-------------|----------------------|---------------------|---------------------|-----|
+| Watchıd: | 89354350662 | 90329509958 | 89953706054 | … |
+| JavaEnable: | 1 | 0 | 1 | … |
+| Başlık: | Yatırımcı İlişkileri | Bize ulaşın | Görev | … |
+| GoodEvent: | 1 | 1 | 1 | … |
+| EventTime: | 2016-05-18 05:19:20 | 2016-05-18 08:10:20 | 2016-05-18 07:38:00 | … |
+
+Bu örnekler yalnızca verilerin düzenlendiği sırayı gösterir. Farklı sütunlardaki değerler ayrı olarak depolanır ve aynı sütundaki veriler birlikte depolanır.
+
+Bir sütun odaklı DBMS örnekleri: Vertica, Paraccel (Actian Matrix ve Amazon Redshift), Sybase IQ, Exasol, Infobright, InfiniDB, MonetDB (VectorWise ve Actian vektör), LucidDB, SAP HANA, Google Dremel, Google PowerDrill, Druid ve kdb+.
+
+Different orders for storing data are better suited to different scenarios. The data access scenario refers to what queries are made, how often, and in what proportion; how much data is read for each type of query – rows, columns, and bytes; the relationship between reading and updating data; the working size of the data and how locally it is used; whether transactions are used, and how isolated they are; requirements for data replication and logical integrity; requirements for latency and throughput for each type of query, and so on.
+
+Sistem üzerindeki yük ne kadar yüksek olursa, kullanım senaryosunun gereksinimlerine uyacak şekilde ayarlanmış sistemi özelleştirmek o kadar önemlidir ve bu özelleştirme o kadar ince taneli olur. Önemli ölçüde farklı senaryolara eşit derecede uygun bir sistem yoktur. Bir sistem geniş bir senaryo kümesine uyarlanabilirse, yüksek bir yük altında, sistem tüm senaryoları eşit derecede zayıf bir şekilde ele alır veya olası senaryolardan yalnızca biri veya birkaçı için iyi çalışır.
+
+## OLAP senaryosunun temel özellikleri {#key-properties-of-olap-scenario}
+
+- İsteklerin büyük çoğunluğu okuma erişimi içindir.
+- Veriler, tek satırlarla değil, oldukça büyük gruplar halinde (\> 1000 satır) güncellenir; veya hiç güncellenmez.
+- Veri DB eklenir, ancak değiştirilmez.
+- Okumalar için, dB'den oldukça fazla sayıda satır çıkarılır,ancak yalnızca küçük bir sütun alt kümesi.
+- Tablolar şunlardır “wide,” çok sayıda sütun içerdikleri anlamına gelir.
+- Sorgular nispeten nadirdir (genellikle sunucu başına yüzlerce sorgu veya saniyede daha az).
+- Basit sorgular için, 50 ms civarında gecikmelere izin verilir.
+- Sütun değerleri oldukça küçüktür: sayılar ve kısa dizeler (örneğin, URL başına 60 bayt).
+- Tek bir sorguyu işlerken yüksek verim gerektirir (sunucu başına saniyede milyarlarca satıra kadar).
+- İşlemler gerekli değildir.
+- Veri tutarlılığı için düşük gereksinimler.
+- Sorgu başına bir büyük tablo var. Biri hariç tüm tablolar küçüktür.
+- Bir sorgu sonucu, kaynak veriden önemli ölçüde daha küçüktür. Başka bir deyişle, veriler filtrelenir veya toplanır, böylece sonuç tek bir sunucunun RAM'İNE sığar.
+
+OLAP senaryosunun diğer popüler senaryolardan (OLTP veya anahtar değeri erişimi gibi) çok farklı olduğunu görmek kolaydır. Bu nedenle, iyi bir performans elde etmek istiyorsanız, analitik sorguları işlemek için OLTP veya anahtar değeri DB'Yİ kullanmayı denemek mantıklı değildir. Örneğin, analitik için MongoDB veya Redis kullanmaya çalışırsanız, OLAP veritabanlarına kıyasla çok düşük performans elde edersiniz.
+
+## Sütun yönelimli veritabanları OLAP senaryosunda neden daha iyi çalışır {#why-column-oriented-databases-work-better-in-the-olap-scenario}
+
+Sütun yönelimli veritabanları OLAP senaryolarına daha uygundur: çoğu sorgunun işlenmesinde en az 100 kat daha hızlıdır. Nedenleri aşağıda ayrıntılı olarak açıklanmıştır, ancak gerçek görsel olarak göstermek daha kolaydır:
+
+**Satır yönelimli DBMS**
+
+
+
+**Sütun yönelimli DBMS**
+
+
+
+Farkı görüyor musun?
+
+### Giriş/çıkış {#inputoutput}
+
+1. Analitik bir sorgu için, yalnızca az sayıda tablo sütununun okunması gerekir. Sütun yönelimli bir veritabanında, yalnızca ihtiyacınız olan verileri okuyabilirsiniz. Örneğin, 100 üzerinden 5 sütun gerekiyorsa, g/Ç'de 20 kat azalma bekleyebilirsiniz.
+2. Veri paketler halinde okunduğundan, sıkıştırılması daha kolaydır. Sütunlardaki verilerin sıkıştırılması da daha kolaydır. Bu, G/Ç hacmini daha da azaltır.
+3. Azaltılmış G/Ç nedeniyle, sistem önbelleğine daha fazla veri sığar.
+
+Örneğin, sorgu “count the number of records for each advertising platform” bir okuma gerektirir “advertising platform ID” 1 bayt sıkıştırılmamış kadar alır sütun. Trafiğin çoğu reklam platformlarından değilse, bu sütunun en az 10 kat sıkıştırılmasını bekleyebilirsiniz. Hızlı bir sıkıştırma algoritması kullanırken, saniyede en az birkaç gigabayt sıkıştırılmamış veri hızında veri dekompresyonu mümkündür. Başka bir deyişle, bu sorgu, tek bir sunucuda saniyede yaklaşık birkaç milyar satır hızında işlenebilir. Bu hız aslında pratikte elde edilir.
+
+
+
+Örnek
+
+``` bash
+$ clickhouse-client
+ClickHouse client version 0.0.52053.
+Connecting to localhost:9000.
+Connected to ClickHouse server version 0.0.52053.
+```
+
+``` sql
+SELECT CounterID, count() FROM hits GROUP BY CounterID ORDER BY count() DESC LIMIT 20
+```
+
+``` text
+┌─CounterID─┬──count()─┐
+│ 114208 │ 56057344 │
+│ 115080 │ 51619590 │
+│ 3228 │ 44658301 │
+│ 38230 │ 42045932 │
+│ 145263 │ 42042158 │
+│ 91244 │ 38297270 │
+│ 154139 │ 26647572 │
+│ 150748 │ 24112755 │
+│ 242232 │ 21302571 │
+│ 338158 │ 13507087 │
+│ 62180 │ 12229491 │
+│ 82264 │ 12187441 │
+│ 232261 │ 12148031 │
+│ 146272 │ 11438516 │
+│ 168777 │ 11403636 │
+│ 4120072 │ 11227824 │
+│ 10938808 │ 10519739 │
+│ 74088 │ 9047015 │
+│ 115079 │ 8837972 │
+│ 337234 │ 8205961 │
+└───────────┴──────────┘
+```
+
+
+
+### CPU {#cpu}
+
+Bir sorguyu yürütmek çok sayıda satırı işlemeyi gerektirdiğinden, ayrı satırlar yerine tüm vektörler için tüm işlemlerin gönderilmesine veya sorgu motorunun neredeyse hiç gönderim maliyeti olmaması için uygulanmasına yardımcı olur. Bunu yapmazsanız, yarı iyi bir disk alt sistemi ile, sorgu yorumlayıcısı kaçınılmaz olarak CPU'yu durdurur. Hem verileri sütunlarda depolamak hem de mümkün olduğunda sütunlarla işlemek mantıklıdır.
+
+Bunu yapmanın iki yolu vardır:
+
+1. Bir vektör motoru. Tüm işlemler ayrı değerler yerine vektörler için yazılır. Bu, işlemleri çok sık aramanıza gerek olmadığı ve sevkiyatın maliyetlerinin ihmal edilebilir olduğu anlamına gelir. İşlem kodu optimize edilmiş bir iç döngü içerir.
+
+2. Kod üretimi. Sorgu için oluşturulan kod, içindeki tüm dolaylı çağrılara sahiptir.
+
+Bu yapılmaz “normal” veritabanları, çünkü basit sorguları çalıştırırken mantıklı değil. Ancak, istisnalar vardır. Örneğin, MemSQL SQL sorgularını işlerken gecikmeyi azaltmak için kod oluşturma kullanır. (Karşılaştırma için, analitik Dbms'ler gecikme değil, verim optimizasyonunu gerektirir .)
+
+CPU verimliliği için sorgu dilinin bildirimsel (SQL veya MDX) veya en az bir vektör (J, K) olması gerektiğini unutmayın. Sorgu yalnızca en iyi duruma getirme için izin veren örtük döngüler içermelidir.
+
+{## [Orijinal makale](https://clickhouse.tech/docs/en/) ##}
diff --git a/docs/tr/interfaces/cli.md b/docs/tr/interfaces/cli.md
new file mode 100644
index 0000000000..c526105dfe
--- /dev/null
+++ b/docs/tr/interfaces/cli.md
@@ -0,0 +1,149 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 17
+toc_title: "Komut Sat\u0131r\u0131 \u0130stemcisi"
+---
+
+# Komut satırı istemcisi {#command-line-client}
+
+ClickHouse yerel bir komut satırı istemcisi sağlar: `clickhouse-client`. İstemci komut satırı seçeneklerini ve yapılandırma dosyalarını destekler. Daha fazla bilgi için, bkz. [Yapılandırma](#interfaces_cli_configuration).
+
+[Yüklemek](../getting_started/index.md) ıt from the `clickhouse-client` paketleyin ve komutla çalıştırın `clickhouse-client`.
+
+``` bash
+$ clickhouse-client
+ClickHouse client version 19.17.1.1579 (official build).
+Connecting to localhost:9000 as user default.
+Connected to ClickHouse server version 19.17.1 revision 54428.
+
+:)
+```
+
+Farklı istemci ve sunucu sürümleri birbiriyle uyumludur, ancak bazı özellikler eski istemcilerde kullanılamayabilir. Biz sunucu uygulaması olarak istemci aynı sürümünü kullanmanızı öneririz. Eski sürümün bir istemcisini kullanmaya çalıştığınızda, daha sonra sunucu, `clickhouse-client` mesajı görüntüler:
+
+ ClickHouse client version is older than ClickHouse server. It may lack support for new features.
+
+## Kullanma {#cli_usage}
+
+İstemci etkileşimli ve etkileşimli olmayan (toplu iş) modunda kullanılabilir. Toplu iş modunu kullanmak için ‘query’ parametre veya veri göndermek ‘stdin’ (bunu doğrular ‘stdin’ bir terminal değildir) veya her ikisi de. HTTP arayüzüne benzer, kullanırken ‘query’ parametre ve veri gönderme ‘stdin’, istek bir birleştirme olduğunu ‘query’ parametre, bir satır besleme ve veri ‘stdin’. Bu, büyük ekleme sorguları için uygundur.
+
+Veri eklemek için istemci kullanma örneği:
+
+``` bash
+$ echo -ne "1, 'some text', '2016-08-14 00:00:00'\n2, 'some more text', '2016-08-14 00:00:01'" | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV";
+
+$ cat <<_EOF | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV";
+3, 'some text', '2016-08-14 00:00:00'
+4, 'some more text', '2016-08-14 00:00:01'
+_EOF
+
+$ cat file.csv | clickhouse-client --database=test --query="INSERT INTO test FORMAT CSV";
+```
+
+Toplu iş modunda, varsayılan veri biçimi TabSeparated. Sorgunun biçim yan tümcesinde biçimi ayarlayabilirsiniz.
+
+Varsayılan olarak, yalnızca tek bir sorguyu toplu iş modunda işleyebilirsiniz. Birden çok sorgu yapmak için bir “script,” kullan... `--multiquery` parametre. Bu, INSERT dışındaki tüm sorgular için çalışır. Sorgu sonuçları, ek ayırıcılar olmadan ardışık olarak çıktılanır. Benzer şekilde, çok sayıda sorgu işlemek için, çalıştırabilirsiniz ‘clickhouse-client’ her sorgu için. Başlatmak için onlarca milisaniye sürebilir unutmayın ‘clickhouse-client’ program.
+
+Etkileşimli modda, sorguları girebileceğiniz bir komut satırı alırsınız.
+
+Eğer ‘multiline’ belirtilmemiş (varsayılan): sorguyu çalıştırmak için Enter tuşuna basın. Noktalı virgül, sorgunun sonunda gerekli değildir. Çok satırlı bir sorgu girmek için ters eğik çizgi girin `\` hat beslemeden önce. Enter tuşuna bastıktan sonra, sorgunun sonraki satırını girmeniz istenecektir.
+
+Çok satırlı belirtilirse: bir sorguyu çalıştırmak için, noktalı virgülle sonlandırın ve Enter tuşuna basın. Noktalı virgül, girilen satırın sonunda atlandıysa, sorgunun bir sonraki satırını girmeniz istenecektir.
+
+Yalnızca tek bir sorgu çalıştırılır, bu nedenle noktalı virgülden sonra her şey göz ardı edilir.
+
+Belirtebilirsiniz `\G` noktalı virgül yerine veya sonra. Bu dikey biçimi gösterir. Bu formatta, her değer geniş tablolar için uygun olan ayrı bir satıra yazdırılır. Bu sıradışı özellik MySQL CLI ile uyumluluk için eklendi.
+
+Komut satırı dayanmaktadır ‘replxx’ (benzer ‘readline’). Başka bir deyişle, tanıdık klavye kısayollarını kullanır ve bir geçmişi tutar. Tarih yazılır `~/.clickhouse-client-history`.
+
+Varsayılan olarak, kullanılan biçim PrettyCompact. Sorgunun biçim yan tümcesinde veya belirterek biçimi değiştirebilirsiniz `\G` sorgunun sonunda, `--format` veya `--vertical` komut satırında veya istemci yapılandırma dosyasını kullanarak bağımsız değişken.
+
+İstemciden çıkmak için Ctrl+D (veya Ctrl+C) tuşlarına basın veya bir sorgu yerine aşağıdakilerden birini girin: “exit”, “quit”, “logout”, “exit;”, “quit;”, “logout;”, “q”, “Q”, “:q”
+
+Bir sorguyu işlerken, istemci şunları gösterir:
+
+1. Saniyede en fazla 10 kez güncellenen ilerleme (varsayılan olarak). Hızlı sorgular için ilerleme görüntülenecek zaman olmayabilir.
+2. Hata ayıklama için ayrıştırmadan sonra biçimlendirilmiş sorgu.
+3. Belirtilen biçimde sonuç.
+4. Sonuçtaki satır sayısı, geçen süre ve sorgu işlemenin ortalama hızı.
+
+Ctrl + C tuşlarına basarak uzun bir sorguyu iptal edebilirsiniz. ancak, sunucunun isteği iptal etmesi için biraz beklemeniz gerekir. Belirli aşamalarda bir sorguyu iptal etmek mümkün değildir. Beklemezseniz ve ikinci kez Ctrl + C tuşlarına basarsanız, istemci çıkacaktır.
+
+Komut satırı istemcisi, sorgulamak için dış verileri (dış geçici tablolar) geçirmenize izin verir. Daha fazla bilgi için bölüme bakın “External data for query processing”.
+
+### Parametrelerle sorgular {#cli-queries-with-parameters}
+
+Parametrelerle bir sorgu oluşturabilir ve istemci uygulamasından onlara değerler aktarabilirsiniz. Bu, istemci tarafında belirli dinamik değerlerle biçimlendirme sorgusunu önlemeye izin verir. Mesela:
+
+``` bash
+$ clickhouse-client --param_parName="[1, 2]" -q "SELECT * FROM table WHERE a = {parName:Array(UInt16)}"
+```
+
+#### Sorgu Sözdizimi {#cli-queries-with-parameters-syntax}
+
+Bir sorguyu her zamanki gibi biçimlendirin, ardından uygulama parametrelerinden sorguya geçirmek istediğiniz değerleri parantez içinde aşağıdaki biçimde yerleştirin:
+
+``` sql
+{:}
+```
+
+- `name` — Placeholder identifier. In the console client it should be used in app parameters as `--param_ = value`.
+- `data type` — [Veri türü](../sql_reference/data_types/index.md) app parametre değeri. Örneğin, aşağıdaki gibi bir veri yapısı `(integer, ('string', integer))` olabilir var `Tuple(UInt8, Tuple(String, UInt8))` veri türü (başka birini de kullanabilirsiniz [tamsayı](../sql_reference/data_types/int_uint.md) türler).
+
+#### Örnek {#example}
+
+``` bash
+$ clickhouse-client --param_tuple_in_tuple="(10, ('dt', 10))" -q "SELECT * FROM table WHERE val = {tuple_in_tuple:Tuple(UInt8, Tuple(String, UInt8))}"
+```
+
+## Yapılandırma {#interfaces_cli_configuration}
+
+Parametreleri iletebilirsiniz `clickhouse-client` (tüm parametrelerin varsayılan değeri vardır) :
+
+- Komut satır fromından
+
+ Komut satırı seçenekleri, yapılandırma dosyalarındaki varsayılan değerleri ve ayarları geçersiz kılar.
+
+- Yapılandırma dosyaları.
+
+ Yapılandırma dosyalarındaki ayarlar varsayılan değerleri geçersiz kılar.
+
+### Komut Satırı Seçenekleri {#command-line-options}
+
+- `--host, -h` -– The server name, ‘localhost’ varsayılan olarak. Adı veya IPv4 veya IPv6 adresini kullanabilirsiniz.
+- `--port` – The port to connect to. Default value: 9000. Note that the HTTP interface and the native interface use different ports.
+- `--user, -u` – The username. Default value: default.
+- `--password` – The password. Default value: empty string.
+- `--query, -q` – The query to process when using non-interactive mode.
+- `--database, -d` – Select the current default database. Default value: the current database from the server settings (‘default’ varsayılan) tarafından.
+- `--multiline, -m` – If specified, allow multiline queries (do not send the query on Enter).
+- `--multiquery, -n` – If specified, allow processing multiple queries separated by semicolons.
+- `--format, -f` – Use the specified default format to output the result.
+- `--vertical, -E` – If specified, use the Vertical format by default to output the result. This is the same as ‘–format=Vertical’. Bu biçimde, her bir değer, geniş tabloları görüntülerken yardımcı olan ayrı bir satıra yazdırılır.
+- `--time, -t` – If specified, print the query execution time to ‘stderr’ etkileşimli olmayan modda.
+- `--stacktrace` – If specified, also print the stack trace if an exception occurs.
+- `--config-file` – The name of the configuration file.
+- `--secure` – If specified, will connect to server over secure connection.
+- `--param_` — Value for a [parametrelerle sorgu](#cli-queries-with-parameters).
+
+### Yapılandırma Dosyaları {#configuration_files}
+
+`clickhouse-client` aşağıdaki ilk varolan dosyayı kullanır:
+
+- Tanımlanan `--config-file` parametre.
+- `./clickhouse-client.xml`
+- `~/.clickhouse-client/config.xml`
+- `/etc/clickhouse-client/config.xml`
+
+Bir yapılandırma dosyası örneği:
+
+``` xml
+
+ username
+ password
+ False
+
+```
+
+[Orijinal makale](https://clickhouse.tech/docs/en/interfaces/cli/)
diff --git a/docs/tr/interfaces/cpp.md b/docs/tr/interfaces/cpp.md
new file mode 100644
index 0000000000..9ebf93286f
--- /dev/null
+++ b/docs/tr/interfaces/cpp.md
@@ -0,0 +1,12 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 24
+toc_title: "C++ \u0130stemci Kitapl\u0131\u011F\u0131"
+---
+
+# C++ İstemci Kitaplığı {#c-client-library}
+
+Bkz. ben READİ READOKU [clickhouse-cpp](https://github.com/ClickHouse/clickhouse-cpp) depo.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/interfaces/cpp/)
diff --git a/docs/tr/interfaces/formats.md b/docs/tr/interfaces/formats.md
new file mode 100644
index 0000000000..f522d697aa
--- /dev/null
+++ b/docs/tr/interfaces/formats.md
@@ -0,0 +1,1212 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 21
+toc_title: "Giri\u015F ve \xE7\u0131k\u0131\u015F bi\xE7imleri"
+---
+
+# Giriş ve çıkış verileri için biçimler {#formats}
+
+ClickHouse kabul ve çeşitli biçimlerde veri dönebilirsiniz. Giriş için desteklenen bir biçim, sağlanan verileri ayrıştırmak için kullanılabilir `INSERT`s, gerçekleştirmek için `SELECT`s dosya, URL veya HDFS gibi bir dosya destekli tablodan veya harici bir sözlük okumak için. Çıktı için desteklenen bir biçim düzenlemek için kullanılabilir
+sonuçları bir `SELECT` ve gerçekleştirmek için `INSERT`s dosya destekli bir tabloya.
+
+Desteklenen formatlar şunlardır:
+
+| Biçimli | Girdi | Çıktı |
+|-----------------------------------------------------------------|-------|-------|
+| [TabSeparated](#tabseparated) | ✔ | ✔ |
+| [TabSeparatedRaw](#tabseparatedraw) | ✗ | ✔ |
+| [TabSeparatedWithNames](#tabseparatedwithnames) | ✔ | ✔ |
+| [TabSeparatedWithNamesAndTypes](#tabseparatedwithnamesandtypes) | ✔ | ✔ |
+| [Şablon](#format-template) | ✔ | ✔ |
+| [TemplateİgnoreSpaces](#templateignorespaces) | ✔ | ✗ |
+| [CSV](#csv) | ✔ | ✔ |
+| [CSVWithNames](#csvwithnames) | ✔ | ✔ |
+| [CustomSeparated](#format-customseparated) | ✔ | ✔ |
+| [Değerler](#data-format-values) | ✔ | ✔ |
+| [Dikey](#vertical) | ✗ | ✔ |
+| [VerticalRaw](#verticalraw) | ✗ | ✔ |
+| [JSON](#json) | ✗ | ✔ |
+| [JSONCompact](#jsoncompact) | ✗ | ✔ |
+| [JSONEachRow](#jsoneachrow) | ✔ | ✔ |
+| [TSKV](#tskv) | ✔ | ✔ |
+| [Çok](#pretty) | ✗ | ✔ |
+| [PrettyCompact](#prettycompact) | ✗ | ✔ |
+| [PrettyCompactMonoBlock](#prettycompactmonoblock) | ✗ | ✔ |
+| [PrettyNoEscapes](#prettynoescapes) | ✗ | ✔ |
+| [PrettySpace](#prettyspace) | ✗ | ✔ |
+| [Protobuf](#protobuf) | ✔ | ✔ |
+| [Avro](#data-format-avro) | ✔ | ✔ |
+| [AvroConfluent](#data-format-avro-confluent) | ✔ | ✗ |
+| [Parke](#data-format-parquet) | ✔ | ✔ |
+| [ORC](#data-format-orc) | ✔ | ✗ |
+| [RowBinary](#rowbinary) | ✔ | ✔ |
+| [Rowbinarywithnames ve türleri](#rowbinarywithnamesandtypes) | ✔ | ✔ |
+| [Yerel](#native) | ✔ | ✔ |
+| [Boş](#null) | ✗ | ✔ |
+| [XML](#xml) | ✗ | ✔ |
+| [CapnProto](#capnproto) | ✔ | ✗ |
+
+ClickHouse ayarları ile bazı biçim işleme parametrelerini kontrol edebilirsiniz. Daha fazla bilgi için okuyun [Ayarlar](../operations/settings/settings.md) bölme.
+
+## TabSeparated {#tabseparated}
+
+Sekmede ayrı format, veri satır ile yazılır. Her satır sekmelerle ayrılmış değerler içerir. Her değer, satırdaki son değer dışında bir sekme tarafından takip edilir ve ardından bir satır beslemesi gelir. Kesinlikle Unix hat beslemeleri her yerde kabul edilir. Son satır ayrıca sonunda bir satır beslemesi içermelidir. Değerler metin biçiminde, tırnak işaretleri olmadan yazılır ve özel karakterler kaçtı.
+
+Bu biçim adı altında da kullanılabilir `TSV`.
+
+Bu `TabSeparated` format, özel programlar ve komut dosyaları kullanarak verileri işlemek için uygundur. Varsayılan olarak HTTP arabiriminde ve komut satırı istemcisinin toplu iş modunda kullanılır. Bu format aynı zamanda farklı Dbms'ler arasında veri aktarımı sağlar. Örneğin, Mysql'den bir dökümü alabilir ve Clickhouse'a yükleyebilirsiniz veya tam tersi.
+
+Bu `TabSeparated` biçim, toplam değerleri (TOPLAMLARLA birlikte kullanıldığında) ve aşırı değerleri (ne zaman ‘extremes’ 1 olarak ayarlanır). Bu durumlarda, toplam değerler ve aşırılıklar ana veriden sonra çıkar. Ana sonuç, toplam değerler ve aşırılıklar birbirinden boş bir çizgi ile ayrılır. Örnek:
+
+``` sql
+SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORDER BY EventDate FORMAT TabSeparated``
+```
+
+``` text
+2014-03-17 1406958
+2014-03-18 1383658
+2014-03-19 1405797
+2014-03-20 1353623
+2014-03-21 1245779
+2014-03-22 1031592
+2014-03-23 1046491
+
+0000-00-00 8873898
+
+2014-03-17 1031592
+2014-03-23 1406958
+```
+
+### Veri Biçimlendirme {#data-formatting}
+
+Tamsayı sayılar ondalık biçimde yazılır. Sayılar ekstra içerebilir “+” başlangıçtaki karakter(ayrıştırma sırasında göz ardı edilir ve biçimlendirme sırasında kaydedilmez). Negatif olmayan sayılar negatif işareti içeremez. Okurken, boş bir dizeyi sıfır olarak veya (imzalı türler için) sıfır olarak sadece eksi işaretinden oluşan bir dizeyi ayrıştırmasına izin verilir. Karşılık gelen veri türüne uymayan sayılar, hata iletisi olmadan farklı bir sayı olarak ayrıştırılabilir.
+
+Kayan noktalı sayılar ondalık biçimde yazılır. Nokta ondalık ayırıcı olarak kullanılır. Üstel girişler olduğu gibi desteklenir ‘inf’, ‘+inf’, ‘-inf’, ve ‘nan’. Kayan noktalı sayıların bir girişi, ondalık nokta ile başlayabilir veya sona erebilir.
+Biçimlendirme sırasında kayan noktalı sayılarda doğruluk kaybolabilir.
+Ayrıştırma sırasında, en yakın makine temsil edilebilir numarayı okumak kesinlikle gerekli değildir.
+
+Tarihler YYYY-AA-DD biçiminde yazılır ve aynı biçimde ayrıştırılır, ancak ayırıcı olarak herhangi bir karakterle ayrıştırılır.
+Tarihleri ile saatleri biçiminde yazılır `YYYY-MM-DD hh:mm:ss` ve aynı biçimde ayrıştırılır, ancak ayırıcı olarak herhangi bir karakterle.
+Bu, tüm sistem saat diliminde istemci veya sunucu başlatıldığında (hangi veri biçimleri bağlı olarak) oluşur. Saatli tarihler için gün ışığından yararlanma saati belirtilmedi. Bu nedenle, bir dökümü gün ışığından yararlanma saati sırasında kez varsa, dökümü tümden verileri eşleşmiyor ve ayrıştırma iki kez birini seçecektir.
+Bir okuma işlemi sırasında, yanlış tarih ve Tarih saatleriyle doğal taşma veya null tarih ve saat, hata iletisi olmadan ayrıştırılabilir.
+
+Bir istisna olarak, tam 10 ondalık basamaktan oluşuyorsa, tarihlerin zamanlarla ayrıştırılması Unix zaman damgası biçiminde de desteklenir. Sonuç, saat dilimine bağlı değildir. Yyyy-MM-DD ss:mm:ss ve nnnnnnnnnn biçimleri otomatik olarak ayırt edilir.
+
+Dizeler ters eğik çizgiden kaçan özel karakterlerle çıktılanır. Çıkış için aşağıdaki çıkış dizileri kullanılır: `\b`, `\f`, `\r`, `\n`, `\t`, `\0`, `\'`, `\\`. Ayrıştırma da dizileri destekler `\a`, `\v`, ve `\xHH` (hxex kaçış dizileri) ve herhangi `\c` diz ,iler, nerede `c` herhangi bir karakter (bu diziler dönüştürülür `c`). Böylece, veri okuma, bir satır beslemesinin şu şekilde yazılabileceği formatları destekler `\n` veya `\`, veya bir çizgi besleme olarak. Örneğin, dize `Hello world` boşluk yerine kelimeler arasında bir çizgi beslemesi ile aşağıdaki varyasyonlardan herhangi birinde ayrıştırılabilir:
+
+``` text
+Hello\nworld
+
+Hello\
+world
+```
+
+MySQL, sekmeyle ayrılmış dökümleri yazarken kullandığı için ikinci varyant desteklenir.
+
+Verileri TabSeparated biçiminde geçirirken kaçmanız gereken minimum karakter kümesi: sekme, satır besleme (LF) ve ters eğik çizgi.
+
+Sadece küçük bir sembol seti kaçtı. Terminalinizin çıktıda mahvedeceği bir dize değerine kolayca rastlayabilirsiniz.
+
+Diziler köşeli parantez içinde virgülle ayrılmış değerlerin bir listesi olarak yazılır. Dizideki sayı öğeleri normal olarak biçimlendirilir. `Date` ve `DateTime` türleri tek tırnak yazılır. Diz .eler yukarıdaki gibi aynı kural quoteslarla tek tırnak içinde yazılır.
+
+[NULL](../sql_reference/syntax.md) olarak format islanır `\N`.
+
+Her eleman [İçiçe](../sql_reference/data_types/nested_data_structures/nested.md) yapılar dizi olarak temsil edilir.
+
+Mesela:
+
+``` sql
+CREATE TABLE nestedt
+(
+ `id` UInt8,
+ `aux` Nested(
+ a UInt8,
+ b String
+ )
+)
+ENGINE = TinyLog
+```
+
+``` sql
+INSERT INTO nestedt Values ( 1, [1], ['a'])
+```
+
+``` sql
+SELECT * FROM nestedt FORMAT TSV
+```
+
+``` text
+1 [1] ['a']
+```
+
+## TabSeparatedRaw {#tabseparatedraw}
+
+Farklıdır `TabSeparated` satırların kaçmadan yazıldığını biçimlendirin.
+Bu biçim yalnızca bir sorgu sonucu çıktısı için uygundur, ancak ayrıştırma için değil (bir tabloya eklemek için veri alma).
+
+Bu biçim adı altında da kullanılabilir `TSVRaw`.
+
+## TabSeparatedWithNames {#tabseparatedwithnames}
+
+Bu farklıdır `TabSeparated` sütun adlarının ilk satırda yazıldığını biçimlendirin.
+Ayrıştırma sırasında, ilk satır tamamen göz ardı edilir. Sütun adlarını konumlarını belirlemek veya doğruluğunu kontrol etmek için kullanamazsınız.
+(Başlık satırı ayrıştırma desteği gelecekte eklenebilir .)
+
+Bu biçim adı altında da kullanılabilir `TSVWithNames`.
+
+## TabSeparatedWithNamesAndTypes {#tabseparatedwithnamesandtypes}
+
+Bu farklıdır `TabSeparated` sütun türleri ikinci satırda iken, sütun adlarının ilk satıra yazıldığını biçimlendirin.
+Ayrıştırma sırasında, birinci ve ikinci satırlar tamamen göz ardı edilir.
+
+Bu biçim adı altında da kullanılabilir `TSVWithNamesAndTypes`.
+
+## Şablon {#format-template}
+
+Bu biçim, belirli bir kaçış kuralına sahip değerler için yer tutucularla özel bir biçim dizesinin belirtilmesine izin verir.
+
+Ayarları kullanır `format_template_resultset`, `format_template_row`, `format_template_rows_between_delimiter` and some settings of other formats (e.g. `output_format_json_quote_64bit_integers` kullanırken `JSON` kaçmak, daha fazla görmek)
+
+Ayar `format_template_row` aşağıdaki sözdizimine sahip satırlar için Biçim dizesi içeren dosya yolunu belirtir:
+
+`delimiter_1${column_1:serializeAs_1}delimiter_2${column_2:serializeAs_2} ... delimiter_N`,
+
+nerede `delimiter_i` değerler arasında bir sınırlayıcı mı (`$` sembol olarak kaçabilir `$$`),
+`column_i` değerleri seçilecek veya eklenecek bir sütunun adı veya dizini (boşsa, sütun atlanır),
+`serializeAs_i` sütun değerleri için kaçan bir kuraldır. Aşağıdaki kaçış kuralları desteklenir:
+
+- `CSV`, `JSON`, `XML` (aynı is theimlerin biçim formatslerine benzer şekilde)
+- `Escaped` (aynı şekilde `TSV`)
+- `Quoted` (aynı şekilde `Values`)
+- `Raw` (kaç withoutmadan, benzer şekilde `TSVRaw`)
+- `None` (kaçan kural yok, daha fazla görün)
+
+Kaçan bir kural atlanırsa, o zaman `None` kullanılacaktır. `XML` ve `Raw` sadece çıkış için uygundur.
+
+Yani, aşağıdaki biçim dizesi için:
+
+ `Search phrase: ${SearchPhrase:Quoted}, count: ${c:Escaped}, ad price: $$${price:JSON};`
+
+değerleri `SearchPhrase`, `c` ve `price` olarak kaçır ,ılan sütunlar `Quoted`, `Escaped` ve `JSON` (select için) yazdırılacak veya (ınsert için) arasında beklenecektir `Search phrase:`, `, count:`, `, ad price: $` ve `;` sırasıyla sınırlayıcılar. Mesela:
+
+`Search phrase: 'bathroom interior design', count: 2166, ad price: $3;`
+
+Bu `format_template_rows_between_delimiter` ayar, sonuncusu hariç her satırdan sonra yazdırılan (veya beklenen) satırlar arasındaki sınırlayıcıyı belirtir (`\n` varsayılan olarak)
+
+Ayar `format_template_resultset` resultset için bir biçim dizesi içeren dosya yolunu belirtir. Resultset için Biçim dizesi, satır için bir biçim dizesi ile aynı sözdizimine sahiptir ve bir önek, sonek ve bazı ek bilgileri yazdırmanın bir yolunu belirtmeyi sağlar. Sütun adları yerine aşağıdaki yer tutucuları içerir:
+
+- `data` veri içeren satırlar mı `format_template_row` biçim, ayrılmış `format_template_rows_between_delimiter`. Bu yer tutucu, biçim dizesindeki ilk yer tutucu olmalıdır.
+- `totals` toplam değerleri olan satır `format_template_row` biçim (TOPLAMLARLA birlikte kullanıldığında)
+- `min` satır içinde minimum değerlere sahip mi `format_template_row` biçim (1 olarak ayarlandığında)
+- `max` maksimum değerleri olan satır `format_template_row` biçim (1 olarak ayarlandığında)
+- `rows` çıktı satırlarının toplam sayısıdır
+- `rows_before_limit` minimum satır sayısı sınırı olmadan olurdu. Yalnızca sorgu sınırı içeriyorsa çıktı. Sorgu GROUP BY içeriyorsa, ROWS\_BEFORE\_LİMİT\_AT\_LEAST SINIRSIZDI olurdu satır tam sayısıdır.
+- `time` istek yürütme süresi saniyeler içinde mi
+- `rows_read` satır sayısı okun thedu mu
+- `bytes_read` bayt sayısı (sıkıştırılmamış) okundu mu
+
+Tutucu `data`, `totals`, `min` ve `max` kaç rulema kuralı belirtilm (em (elidir (veya `None` açıkça belirtilen) olmalıdır. Kalan yer tutucuları belirtilen kaçan herhangi bir kural olabilir.
+Eğer... `format_template_resultset` ayar boş bir dizedir, `${data}` varsayılan değer olarak kullanılır.
+Insert sorguları biçimi için önek veya sonek varsa bazı sütunları veya bazı alanları atlamaya izin verir (örneğe bakın).
+
+Örnek seç:
+
+``` sql
+SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase ORDER BY c DESC LIMIT 5 FORMAT Template SETTINGS
+format_template_resultset = '/some/path/resultset.format', format_template_row = '/some/path/row.format', format_template_rows_between_delimiter = '\n '
+```
+
+`/some/path/resultset.format`:
+
+``` text
+
+ Search phrases
+
+
Search phrases
+
Search phrase
Count
+ ${data}
+
+
Max
+ ${max}
+
+ Processed ${rows_read:XML} rows in ${time:XML} sec
+
+
+```
+
+`/some/path/row.format`:
+
+``` text
+
${0:XML}
${1:XML}
+```
+
+Sonuç:
+
+``` html
+
+ Search phrases
+
+
Search phrases
+
Search phrase
Count
+
8267016
+
bathroom interior design
2166
+
yandex
1655
+
spring 2014 fashion
1549
+
freeform photos
1480
+
+
Max
+
8873898
+
+ Processed 3095973 rows in 0.1569913 sec
+
+
+```
+
+Örnek Ekle:
+
+``` text
+Some header
+Page views: 5, User id: 4324182021466249494, Useless field: hello, Duration: 146, Sign: -1
+Page views: 6, User id: 4324182021466249494, Useless field: world, Duration: 185, Sign: 1
+Total rows: 2
+```
+
+``` sql
+INSERT INTO UserActivity FORMAT Template SETTINGS
+format_template_resultset = '/some/path/resultset.format', format_template_row = '/some/path/row.format'
+```
+
+`/some/path/resultset.format`:
+
+``` text
+Some header\n${data}\nTotal rows: ${:CSV}\n
+```
+
+`/some/path/row.format`:
+
+``` text
+Page views: ${PageViews:CSV}, User id: ${UserID:CSV}, Useless field: ${:CSV}, Duration: ${Duration:CSV}, Sign: ${Sign:CSV}
+```
+
+`PageViews`, `UserID`, `Duration` ve `Sign` yer tutucular içinde tablodaki sütun adları vardır. Sonra değerler `Useless field` satır ve sonra `\nTotal rows:` sonek olarak göz ardı edilecektir.
+Giriş verisindeki tüm sınırlayıcılar, belirtilen biçim dizelerindeki sınırlayıcılara kesinlikle eşit olmalıdır.
+
+## TemplateİgnoreSpaces {#templateignorespaces}
+
+Bu format sadece giriş için uygundur.
+Benzer `Template`, ancak giriş akışındaki sınırlayıcılar ve değerler arasındaki boşluk karakterlerini atlar. Ancak, biçim dizeleri boşluk karakterleri içeriyorsa, bu karakterler giriş akışında beklenir. Ayrıca boş yer tutucuları belirtmek için izin verir (`${}` veya `${:None}`) aralarındaki boşlukları görmezden gelmek için bazı sınırlayıcıları ayrı parçalara ayırmak. Bu tür yer tutucular yalnızca boşluk karakterlerini atlamak için kullanılır.
+Okumak mümkün `JSON` bu biçimi kullanarak, sütun değerleri tüm satırlarda aynı sıraya sahipse. Örneğin, aşağıdaki istek çıktı biçim örneğinden veri eklemek için kullanılabilir [JSON](#json):
+
+``` sql
+INSERT INTO table_name FORMAT TemplateIgnoreSpaces SETTINGS
+format_template_resultset = '/some/path/resultset.format', format_template_row = '/some/path/row.format', format_template_rows_between_delimiter = ','
+```
+
+`/some/path/resultset.format`:
+
+``` text
+{${}"meta"${}:${:JSON},${}"data"${}:${}[${data}]${},${}"totals"${}:${:JSON},${}"extremes"${}:${:JSON},${}"rows"${}:${:JSON},${}"rows_before_limit_at_least"${}:${:JSON}${}}
+```
+
+`/some/path/row.format`:
+
+``` text
+{${}"SearchPhrase"${}:${}${phrase:JSON}${},${}"c"${}:${}${cnt:JSON}${}}
+```
+
+## TSKV {#tskv}
+
+TabSeparated benzer, ancak name=value biçiminde bir değer çıkarır. Adlar tabseparated biçiminde olduğu gibi kaçtı ve = simgesi de kaçtı.
+
+``` text
+SearchPhrase= count()=8267016
+SearchPhrase=bathroom interior design count()=2166
+SearchPhrase=yandex count()=1655
+SearchPhrase=2014 spring fashion count()=1549
+SearchPhrase=freeform photos count()=1480
+SearchPhrase=angelina jolie count()=1245
+SearchPhrase=omsk count()=1112
+SearchPhrase=photos of dog breeds count()=1091
+SearchPhrase=curtain designs count()=1064
+SearchPhrase=baku count()=1000
+```
+
+[NULL](../sql_reference/syntax.md) olarak format islanır `\N`.
+
+``` sql
+SELECT * FROM t_null FORMAT TSKV
+```
+
+``` text
+x=1 y=\N
+```
+
+Çok sayıda küçük sütun olduğunda, bu biçim etkisizdir ve genellikle kullanmak için hiçbir neden yoktur. Bununla birlikte, verimlilik açısından Jsoneachrow'dan daha kötü değildir.
+
+Both data output and parsing are supported in this format. For parsing, any order is supported for the values of different columns. It is acceptable for some values to be omitted – they are treated as equal to their default values. In this case, zeros and blank rows are used as default values. Complex values that could be specified in the table are not supported as defaults.
+
+Ayrıştırma, ek alanın varlığına izin verir `tskv` eşit işareti veya bir değer olmadan. Bu alan yoksayılır.
+
+## CSV {#csv}
+
+Virgülle ayrılmış değerler biçimi ([RFC](https://tools.ietf.org/html/rfc4180)).
+
+Biçimlendirme yaparken, satırlar çift tırnak içine alınır. Bir dizenin içindeki çift alıntı, bir satırda iki çift tırnak olarak çıktılanır. Karakterlerden kaçmak için başka kural yoktur. Tarih ve Tarih-Saat çift tırnak içine alınır. Sayılar tırnak işaretleri olmadan çıktı. Değerler, bir sınırlayıcı karakterle ayrılır; `,` varsayılan olarak. Sınırlayıcı karakteri ayarında tanımlanır [format\_csv\_delimiter](../operations/settings/settings.md#settings-format_csv_delimiter). Satırlar Unıx satır besleme (LF) kullanılarak ayrılır. Diziler CSV'DE aşağıdaki gibi serileştirilir: ilk olarak, dizi TabSeparated biçiminde olduğu gibi bir dizeye serileştirilir ve daha sonra ortaya çıkan dize çift tırnak içinde CSV'YE çıkarılır. CSV biçimindeki Tuples ayrı sütunlar olarak serileştirilir(yani, tuple'daki yuvalanmaları kaybolur).
+
+``` bash
+$ clickhouse-client --format_csv_delimiter="|" --query="INSERT INTO test.csv FORMAT CSV" < data.csv
+```
+
+\* Varsayılan olarak, sınırlayıcı `,`. Görmek [format\_csv\_delimiter](../operations/settings/settings.md#settings-format_csv_delimiter) daha fazla bilgi için ayarlama.
+
+Ayrıştırma yaparken, tüm değerler tırnak işaretleri ile veya tırnak işaretleri olmadan ayrıştırılabilir. Hem çift hem de tek tırnak desteklenmektedir. Satırlar tırnak işaretleri olmadan da düzenlenebilir. Bu durumda, sınırlayıcı karaktere veya satır beslemesine (CR veya LF) ayrıştırılır. RFC'Yİ ihlal ederken, satırları tırnak işaretleri olmadan ayrıştırırken, önde gelen ve sondaki boşluklar ve sekmeler göz ardı edilir. Hat beslemesi için Unix (LF), Windows (CR LF) ve Mac OS Classic (CR LF) türleri desteklenir.
+
+Boş unquoted giriş değerleri, ilgili sütunlar için varsayılan değerlerle değiştirilir
+[ınput\_format\_defaults\_for\_omitted\_fields](../operations/settings/settings.md#session_settings-input_format_defaults_for_omitted_fields)
+etkindir.
+
+`NULL` olarak format islanır `\N` veya `NULL` veya boş bir unquoted dize (bkz. ayarlar [ınput\_format\_csv\_unquoted\_null\_literal\_as\_null](../operations/settings/settings.md#settings-input_format_csv_unquoted_null_literal_as_null) ve [ınput\_format\_defaults\_for\_omitted\_fields](../operations/settings/settings.md#session_settings-input_format_defaults_for_omitted_fields)).
+
+CSV biçimi, toplamların ve aşırılıkların çıktısını aynı şekilde destekler `TabSeparated`.
+
+## CSVWithNames {#csvwithnames}
+
+Ayrıca, başlık satırını benzer şekilde yazdırır `TabSeparatedWithNames`.
+
+## CustomSeparated {#format-customseparated}
+
+Benzer [Şablon](#format-template), ancak tüm sütunları yazdırır veya okur ve ayardan kaçan kuralı kullanır `format_custom_escaping_rule` ve ayarlardan sınırlayıcılar `format_custom_field_delimiter`, `format_custom_row_before_delimiter`, `format_custom_row_after_delimiter`, `format_custom_row_between_delimiter`, `format_custom_result_before_delimiter` ve `format_custom_result_after_delimiter`, biçim dizelerinden değil.
+Ayrıca var `CustomSeparatedIgnoreSpaces` biçim, benzer olan `TemplateIgnoreSpaces`.
+
+## JSON {#json}
+
+Verileri json formatında çıkarır. Veri tablolarının yanı sıra, bazı ek bilgilerle birlikte sütun adlarını ve türlerini de çıkarır: çıktı satırlarının toplam sayısı ve bir sınır yoksa çıktı olabilecek satır sayısı. Örnek:
+
+``` sql
+SELECT SearchPhrase, count() AS c FROM test.hits GROUP BY SearchPhrase WITH TOTALS ORDER BY c DESC LIMIT 5 FORMAT JSON
+```
+
+``` json
+{
+ "meta":
+ [
+ {
+ "name": "SearchPhrase",
+ "type": "String"
+ },
+ {
+ "name": "c",
+ "type": "UInt64"
+ }
+ ],
+
+ "data":
+ [
+ {
+ "SearchPhrase": "",
+ "c": "8267016"
+ },
+ {
+ "SearchPhrase": "bathroom interior design",
+ "c": "2166"
+ },
+ {
+ "SearchPhrase": "yandex",
+ "c": "1655"
+ },
+ {
+ "SearchPhrase": "spring 2014 fashion",
+ "c": "1549"
+ },
+ {
+ "SearchPhrase": "freeform photos",
+ "c": "1480"
+ }
+ ],
+
+ "totals":
+ {
+ "SearchPhrase": "",
+ "c": "8873898"
+ },
+
+ "extremes":
+ {
+ "min":
+ {
+ "SearchPhrase": "",
+ "c": "1480"
+ },
+ "max":
+ {
+ "SearchPhrase": "",
+ "c": "8267016"
+ }
+ },
+
+ "rows": 5,
+
+ "rows_before_limit_at_least": 141137
+}
+```
+
+Json JavaScript ile uyumludur. Bunu sağlamak için, bazı karakterler ek olarak kaçar: eğik çizgi `/` olarak kaç İsar `\/`; alternatif Satır sonları `U+2028` ve `U+2029`, hangi bazı tarayıcılar kırmak, olarak kaçtı `\uXXXX`. ASCII denetim karakterleri kaçtı: backspace, form besleme, satır besleme, satır başı ve yatay sekme ile değiştirilir `\b`, `\f`, `\n`, `\r`, `\t` , 00-1f aralığında kalan baytların yanı sıra `\uXXXX` sequences. Invalid UTF-8 sequences are changed to the replacement character � so the output text will consist of valid UTF-8 sequences. For compatibility with JavaScript, Int64 and UInt64 integers are enclosed in double-quotes by default. To remove the quotes, you can set the configuration parameter [output\_format\_json\_quote\_64bit\_integers](../operations/settings/settings.md#session_settings-output_format_json_quote_64bit_integers) 0'a.
+
+`rows` – The total number of output rows.
+
+`rows_before_limit_at_least` Minimum satır sayısı sınırı olmadan olurdu. Yalnızca sorgu sınırı içeriyorsa çıktı.
+Sorgu GROUP BY içeriyorsa, ROWS\_BEFORE\_LİMİT\_AT\_LEAST SINIRSIZDI olurdu satır tam sayısıdır.
+
+`totals` – Total values (when using WITH TOTALS).
+
+`extremes` – Extreme values (when extremes are set to 1).
+
+Bu biçim yalnızca bir sorgu sonucu çıktısı için uygundur, ancak ayrıştırma için değil (bir tabloya eklemek için veri alma).
+
+ClickHouse destekler [NULL](../sql_reference/syntax.md) olarak görüntülenen `null` JSON çıkışında.
+
+Ayrıca bakınız [JSONEachRow](#jsoneachrow) biçimli.
+
+## JSONCompact {#jsoncompact}
+
+Yalnızca veri satırlarında json'dan farklıdır, nesnelerde değil, dizilerde çıktıdır.
+
+Örnek:
+
+``` json
+{
+ "meta":
+ [
+ {
+ "name": "SearchPhrase",
+ "type": "String"
+ },
+ {
+ "name": "c",
+ "type": "UInt64"
+ }
+ ],
+
+ "data":
+ [
+ ["", "8267016"],
+ ["bathroom interior design", "2166"],
+ ["yandex", "1655"],
+ ["fashion trends spring 2014", "1549"],
+ ["freeform photo", "1480"]
+ ],
+
+ "totals": ["","8873898"],
+
+ "extremes":
+ {
+ "min": ["","1480"],
+ "max": ["","8267016"]
+ },
+
+ "rows": 5,
+
+ "rows_before_limit_at_least": 141137
+}
+```
+
+Bu biçim yalnızca bir sorgu sonucu çıktısı için uygundur, ancak ayrıştırma için değil (bir tabloya eklemek için veri alma).
+Ayrıca bakınız `JSONEachRow` biçimli.
+
+## JSONEachRow {#jsoneachrow}
+
+Bu biçimi kullanırken, ClickHouse satırları ayrılmış, yeni satırla ayrılmış JSON nesneleri olarak çıkarır, ancak bir bütün olarak veriler geçerli JSON değildir.
+
+``` json
+{"SearchPhrase":"curtain designs","count()":"1064"}
+{"SearchPhrase":"baku","count()":"1000"}
+{"SearchPhrase":"","count()":"8267016"}
+```
+
+Verileri eklerken, her satır için ayrı bir JSON nesnesi sağlamanız gerekir.
+
+### Veri Ekleme {#inserting-data}
+
+``` sql
+INSERT INTO UserActivity FORMAT JSONEachRow {"PageViews":5, "UserID":"4324182021466249494", "Duration":146,"Sign":-1} {"UserID":"4324182021466249494","PageViews":6,"Duration":185,"Sign":1}
+```
+
+ClickHouse sağlar:
+
+- Nesnedeki herhangi bir anahtar-değer çiftleri sırası.
+- Bazı değerleri atlama.
+
+ClickHouse, nesnelerden sonra öğeler ve virgüller arasındaki boşlukları yok sayar. Tüm nesneleri bir satırda geçirebilirsiniz. Onları Satır sonları ile ayırmak zorunda değilsiniz.
+
+**İhmal edilen değerler işleme**
+
+ClickHouse, karşılık gelen değerler için varsayılan değerlerle atlanmış değerleri değiştirir [veri türleri](../sql_reference/data_types/index.md).
+
+Eğer `DEFAULT expr` belirtilen, ClickHouse bağlı olarak farklı ikame kuralları kullanır [ınput\_format\_defaults\_for\_omitted\_fields](../operations/settings/settings.md#session_settings-input_format_defaults_for_omitted_fields) ayar.
+
+Aşağıdaki tabloyu düşünün:
+
+``` sql
+CREATE TABLE IF NOT EXISTS example_table
+(
+ x UInt32,
+ a DEFAULT x * 2
+) ENGINE = Memory;
+```
+
+- Eğer `input_format_defaults_for_omitted_fields = 0`, sonra varsayılan değer için `x` ve `a` eşitlikler `0` (varsayılan değer olarak `UInt32` veri türü).
+- Eğer `input_format_defaults_for_omitted_fields = 1`, sonra varsayılan değer için `x` eşitlikler `0`, ancak varsayılan değer `a` eşitlikler `x * 2`.
+
+!!! note "Uyarıcı"
+ İle veri ek whenlerken `insert_sample_with_metadata = 1`, ClickHouse, ekleme ile karşılaştırıldığında daha fazla hesaplama kaynağı tüketir `insert_sample_with_metadata = 0`.
+
+### Veri Seçme {#selecting-data}
+
+Düşünün `UserActivity` örnek olarak tablo:
+
+``` text
+┌──────────────UserID─┬─PageViews─┬─Duration─┬─Sign─┐
+│ 4324182021466249494 │ 5 │ 146 │ -1 │
+│ 4324182021466249494 │ 6 │ 185 │ 1 │
+└─────────────────────┴───────────┴──────────┴──────┘
+```
+
+Sorgu `SELECT * FROM UserActivity FORMAT JSONEachRow` dönüşler:
+
+``` text
+{"UserID":"4324182021466249494","PageViews":5,"Duration":146,"Sign":-1}
+{"UserID":"4324182021466249494","PageViews":6,"Duration":185,"Sign":1}
+```
+
+Aksine [JSON](#json) biçimi, geçersiz UTF-8 dizilerinin hiçbir ikame yoktur. Değerleri için olduğu gibi aynı şekilde kaçtı `JSON`.
+
+!!! note "Not"
+ Herhangi bir bayt kümesi dizelerde çıktı olabilir. Kullan... `JSONEachRow` tablodaki verilerin herhangi bir bilgi kaybetmeden JSON olarak biçimlendirilebileceğinden eminseniz biçimlendirin.
+
+### İç içe yapıların kullanımı {#jsoneachrow-nested}
+
+İle bir tablo varsa [İçiçe](../sql_reference/data_types/nested_data_structures/nested.md) veri türü sütunları, aynı yapıya sahip json verilerini ekleyebilirsiniz. İle bu özelliği etkinleştirin [ınput\_format\_ımport\_nested\_json](../operations/settings/settings.md#settings-input_format_import_nested_json) ayar.
+
+Örneğin, aşağıdaki tabloyu göz önünde bulundurun:
+
+``` sql
+CREATE TABLE json_each_row_nested (n Nested (s String, i Int32) ) ENGINE = Memory
+```
+
+Gibi görmek `Nested` veri türü açıklaması, ClickHouse, iç içe geçmiş yapının her bileşenini ayrı bir sütun olarak ele alır (`n.s` ve `n.i` sof )ram )ız için). Verileri aşağıdaki şekilde ekleyebilirsiniz:
+
+``` sql
+INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n.s": ["abc", "def"], "n.i": [1, 23]}
+```
+
+Hiyerarşik bir json nesnesi olarak veri eklemek için [input\_format\_import\_nested\_json = 1](../operations/settings/settings.md#settings-input_format_import_nested_json).
+
+``` json
+{
+ "n": {
+ "s": ["abc", "def"],
+ "i": [1, 23]
+ }
+}
+```
+
+Bu ayar olmadan, ClickHouse bir özel durum atar.
+
+``` sql
+SELECT name, value FROM system.settings WHERE name = 'input_format_import_nested_json'
+```
+
+``` text
+┌─name────────────────────────────┬─value─┐
+│ input_format_import_nested_json │ 0 │
+└─────────────────────────────────┴───────┘
+```
+
+``` sql
+INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n": {"s": ["abc", "def"], "i": [1, 23]}}
+```
+
+``` text
+Code: 117. DB::Exception: Unknown field found while parsing JSONEachRow format: n: (at row 1)
+```
+
+``` sql
+SET input_format_import_nested_json=1
+INSERT INTO json_each_row_nested FORMAT JSONEachRow {"n": {"s": ["abc", "def"], "i": [1, 23]}}
+SELECT * FROM json_each_row_nested
+```
+
+``` text
+┌─n.s───────────┬─n.i────┐
+│ ['abc','def'] │ [1,23] │
+└───────────────┴────────┘
+```
+
+## Yerel {#native}
+
+En verimli biçim. Veriler ikili formatta bloklar tarafından yazılır ve okunur. Her blok için satır sayısı, sütun sayısı, sütun adları ve türleri ve bu bloktaki sütunların parçaları birbiri ardına kaydedilir. Başka bir deyişle, bu format “columnar” – it doesn't convert columns to rows. This is the format used in the native interface for interaction between servers, for using the command-line client, and for C++ clients.
+
+Bu biçimi, yalnızca ClickHouse DBMS tarafından okunabilen dökümleri hızlı bir şekilde oluşturmak için kullanabilirsiniz. Bu formatla kendiniz çalışmak mantıklı değil.
+
+## Boş {#null}
+
+Hiçbir şey çıktı. Ancak, sorgu işlenir ve komut satırı istemcisini kullanırken, veriler istemciye iletilir. Bu, performans testi de dahil olmak üzere testler için kullanılır.
+Açıkçası, bu format yalnızca ayrıştırma için değil, çıktı için uygundur.
+
+## Çok {#pretty}
+
+Verileri Unicode-art tabloları olarak çıkarır, ayrıca TERMİNALDEKİ renkleri ayarlamak için ANSI-escape dizileri kullanır.
+Tablonun tam bir ızgarası çizilir ve her satır terminalde iki satır kaplar.
+Her sonuç bloğu ayrı bir tablo olarak çıktı. Bu, blokların arabelleğe alma sonuçları olmadan çıkabilmesi için gereklidir (tüm değerlerin görünür genişliğini önceden hesaplamak için arabelleğe alma gerekli olacaktır).
+
+[NULL](../sql_reference/syntax.md) olarak çıktı `ᴺᵁᴸᴸ`.
+
+Örnek (gösterilen [PrettyCompact](#prettycompact) biçimli):
+
+``` sql
+SELECT * FROM t_null
+```
+
+``` text
+┌─x─┬────y─┐
+│ 1 │ ᴺᵁᴸᴸ │
+└───┴──────┘
+```
+
+Satırlar güzel\* biçimlerinde kaçmaz. Örnek için gösterilir [PrettyCompact](#prettycompact) biçimli:
+
+``` sql
+SELECT 'String with \'quotes\' and \t character' AS Escaping_test
+```
+
+``` text
+┌─Escaping_test────────────────────────┐
+│ String with 'quotes' and character │
+└──────────────────────────────────────┘
+```
+
+Terminale çok fazla veri boşaltmaktan kaçınmak için yalnızca ilk 10.000 satır yazdırılır. Satır sayısı 10.000'den büyük veya eşitse, ileti “Showed first 10 000” bas .ılmıştır.
+Bu biçim yalnızca bir sorgu sonucu çıktısı için uygundur, ancak ayrıştırma için değil (bir tabloya eklemek için veri alma).
+
+Güzel biçim, toplam değerleri (TOPLAMLARLA birlikte kullanıldığında) ve aşırılıkları (ne zaman ‘extremes’ 1 olarak ayarlanır). Bu durumlarda, toplam değerler ve aşırı değerler ana veriden sonra ayrı tablolarda çıktılanır. Örnek (gösterilen [PrettyCompact](#prettycompact) biçimli):
+
+``` sql
+SELECT EventDate, count() AS c FROM test.hits GROUP BY EventDate WITH TOTALS ORDER BY EventDate FORMAT PrettyCompact
+```
+
+``` text
+┌──EventDate─┬───────c─┐
+│ 2014-03-17 │ 1406958 │
+│ 2014-03-18 │ 1383658 │
+│ 2014-03-19 │ 1405797 │
+│ 2014-03-20 │ 1353623 │
+│ 2014-03-21 │ 1245779 │
+│ 2014-03-22 │ 1031592 │
+│ 2014-03-23 │ 1046491 │
+└────────────┴─────────┘
+
+Totals:
+┌──EventDate─┬───────c─┐
+│ 0000-00-00 │ 8873898 │
+└────────────┴─────────┘
+
+Extremes:
+┌──EventDate─┬───────c─┐
+│ 2014-03-17 │ 1031592 │
+│ 2014-03-23 │ 1406958 │
+└────────────┴─────────┘
+```
+
+## PrettyCompact {#prettycompact}
+
+Farklıdır [Çok](#pretty) bu ızgara satırlar arasında çizilir ve sonuç daha kompakttır.
+Bu biçim, etkileşimli modda komut satırı istemcisinde varsayılan olarak kullanılır.
+
+## PrettyCompactMonoBlock {#prettycompactmonoblock}
+
+Farklıdır [PrettyCompact](#prettycompact) bu kadar 10.000 satır arabelleğe alınır, daha sonra bloklarla değil, tek bir tablo olarak çıktılanır.
+
+## PrettyNoEscapes {#prettynoescapes}
+
+ANSİSİ-ESC .ape diz .ilerinin kullanıl .madığı güzel differsden farklıdır. Bu, bu formatı bir tarayıcıda görüntülemek ve aynı zamanda ‘watch’ komut satırı yardımcı programı.
+
+Örnek:
+
+``` bash
+$ watch -n1 "clickhouse-client --query='SELECT event, value FROM system.events FORMAT PrettyCompactNoEscapes'"
+```
+
+Tarayıcıda görüntülemek için HTTP arayüzünü kullanabilirsiniz.
+
+### PrettyCompactNoEscapes {#prettycompactnoescapes}
+
+Önceki ayar ile aynı.
+
+### PrettySpaceNoEscapes {#prettyspacenoescapes}
+
+Önceki ayar ile aynı.
+
+## PrettySpace {#prettyspace}
+
+Farklıdır [PrettyCompact](#prettycompact) bu boşluk (boşluk karakterleri) ızgara yerine kullanılır.
+
+## RowBinary {#rowbinary}
+
+Biçimleri ve ikili biçimde satır verileri ayrıştırır. Satırlar ve değerler, ayırıcılar olmadan ardışık olarak listelenir.
+Bu biçim, satır tabanlı olduğundan yerel biçimden daha az etkilidir.
+
+Tamsayılar sabit uzunlukta küçük endian temsilini kullanır. Örneğin, uint64 8 bayt kullanır.
+DateTime, Unix zaman damgasını değer olarak içeren Uİnt32 olarak temsil edilir.
+Tarih değeri olarak 1970-01-01 yılından bu yana gün sayısını içeren bir uint16 nesnesi olarak temsil edilir.
+Dize varint uzunluğu (imzasız) olarak temsil edilir [LEB128](https://en.wikipedia.org/wiki/LEB128)), ardından dizenin baytları.
+FixedString sadece bir bayt dizisi olarak temsil edilir.
+
+Dizi varint uzunluğu (imzasız) olarak temsil edilir [LEB128](https://en.wikipedia.org/wiki/LEB128)), ardından dizinin ardışık elemanları.
+
+İçin [NULL](../sql_reference/syntax.md#null-literal) destek, 1 veya 0 içeren ek bir bayt her önce eklenir [Nullable](../sql_reference/data_types/nullable.md) değer. 1 ise, o zaman değer `NULL` ve bu bayt ayrı bir değer olarak yorumlanır. 0 ise, bayttan sonraki değer değil `NULL`.
+
+## Rowbinarywithnames ve türleri {#rowbinarywithnamesandtypes}
+
+Benzer [RowBinary](#rowbinary), ancak eklenen Başlık ile:
+
+- [LEB128](https://en.wikipedia.org/wiki/LEB128)- kodlanmış sütun sayısı (N)
+- N `String`s sütun adlarını belirtme
+- N `String`s sütun türlerini belirleme
+
+## Değerler {#data-format-values}
+
+Her satırı parantez içinde yazdırır. Satırlar virgülle ayrılır. Son satırdan sonra virgül yok. Parantez içindeki değerler de virgülle ayrılır. Sayılar tırnak işaretleri olmadan ondalık biçimde çıktıdır. Diziler köşeli parantez içinde çıktı. Kat tırnak içinde çıkış dizelerle, tarihleri ve tarihleri. Kaçan kurallar ve ayrıştırma benzer [TabSeparated](#tabseparated) biçimli. Biçimlendirme sırasında fazladan boşluk eklenmez, ancak ayrıştırma sırasında izin verilir ve atlanır (izin verilmeyen dizi değerleri içindeki boşluklar hariç). [NULL](../sql_reference/syntax.md) olarak temsil edilir `NULL`.
+
+The minimum set of characters that you need to escape when passing data in Values format: single quotes and backslashes.
+
+Bu, kullanılan formattır `INSERT INTO t VALUES ...`, ancak sorgu sonuçlarını biçimlendirmek için de kullanabilirsiniz.
+
+Ayrıca bakınız: [ınput\_format\_values\_interpret\_expressions](../operations/settings/settings.md#settings-input_format_values_interpret_expressions) ve [ınput\_format\_values\_deduce\_templates\_of\_expressions](../operations/settings/settings.md#settings-input_format_values_deduce_templates_of_expressions) ayarlar.
+
+## Dikey {#vertical}
+
+Her değeri belirtilen sütun adıyla ayrı bir satıra yazdırır. Bu biçim, her satır çok sayıda sütundan oluşuyorsa, yalnızca bir veya birkaç satır yazdırmak için uygundur.
+
+[NULL](../sql_reference/syntax.md) olarak çıktı `ᴺᵁᴸᴸ`.
+
+Örnek:
+
+``` sql
+SELECT * FROM t_null FORMAT Vertical
+```
+
+``` text
+Row 1:
+──────
+x: 1
+y: ᴺᵁᴸᴸ
+```
+
+Satırlar dikey biçimde kaçmadı:
+
+``` sql
+SELECT 'string with \'quotes\' and \t with some special \n characters' AS test FORMAT Vertical
+```
+
+``` text
+Row 1:
+──────
+test: string with 'quotes' and with some special
+ characters
+```
+
+Bu biçim yalnızca bir sorgu sonucu çıktısı için uygundur, ancak ayrıştırma için değil (bir tabloya eklemek için veri alma).
+
+## VerticalRaw {#verticalraw}
+
+Benzer [Dikey](#vertical), ama kaçan engelli ile. Bu biçim, yalnızca ayrıştırma (veri alma ve tabloya ekleme) için değil, sorgu sonuçlarının çıktısı için uygundur.
+
+## XML {#xml}
+
+XML biçimi, ayrıştırma için değil, yalnızca çıktı için uygundur. Örnek:
+
+``` xml
+
+
+
+
+
+ SearchPhrase
+ String
+
+
+ count()
+ UInt64
+
+
+
+
+
+
+ 8267016
+
+
+ bathroom interior design
+ 2166
+
+
+ yandex
+ 1655
+
+
+ 2014 spring fashion
+ 1549
+
+
+ freeform photos
+ 1480
+
+
+ angelina jolie
+ 1245
+
+
+ omsk
+ 1112
+
+
+ photos of dog breeds
+ 1091
+
+
+ curtain designs
+ 1064
+
+
+ baku
+ 1000
+
+
+ 10
+ 141137
+
+```
+
+Sütun adı kabul edilebilir bir biçime sahip değilse, sadece ‘field’ eleman adı olarak kullanılır. Genel olarak, XML yapısı JSON yapısını izler.
+Just as for JSON, invalid UTF-8 sequences are changed to the replacement character � so the output text will consist of valid UTF-8 sequences.
+
+Dize değerlerinde, karakterler `<` ve `&` olarak kaç arear `<` ve `&`.
+
+Diziler olarak çıktı `HelloWorld...`ve tuples olarak `HelloWorld...`.
+
+## CapnProto {#capnproto}
+
+Cap'n Proto, Protokol Tamponlarına ve tasarrufuna benzer, ancak JSON veya MessagePack gibi olmayan bir ikili mesaj biçimidir.
+
+Cap'n Proto mesajları kesinlikle yazılır ve kendi kendini tanımlamaz, yani harici bir şema açıklamasına ihtiyaç duyarlar. Şema anında uygulanır ve her sorgu için önbelleğe alınır.
+
+``` bash
+$ cat capnproto_messages.bin | clickhouse-client --query "INSERT INTO test.hits FORMAT CapnProto SETTINGS format_schema='schema:Message'"
+```
+
+Nerede `schema.capnp` bu gibi görünüyor:
+
+``` capnp
+struct Message {
+ SearchPhrase @0 :Text;
+ c @1 :Uint64;
+}
+```
+
+Serializasyon etkilidir ve genellikle sistem yükünü arttırmaz.
+
+Ayrıca bakınız [Biçim Şeması](#formatschema).
+
+## Protobuf {#protobuf}
+
+Protobuf-bir [Protokol Tamp Buffonları](https://developers.google.com/protocol-buffers/) biçimli.
+
+Bu biçim, bir dış biçim şeması gerektirir. Şema sorgular arasında önbelleğe alınır.
+ClickHouse hem destekler `proto2` ve `proto3` sözdizimiler. Tekrarlanan / isteğe bağlı / gerekli alanlar desteklenir.
+
+Kullanım örnekleri:
+
+``` sql
+SELECT * FROM test.table FORMAT Protobuf SETTINGS format_schema = 'schemafile:MessageType'
+```
+
+``` bash
+cat protobuf_messages.bin | clickhouse-client --query "INSERT INTO test.table FORMAT Protobuf SETTINGS format_schema='schemafile:MessageType'"
+```
+
+dosya nerede `schemafile.proto` bu gibi görünüyor:
+
+``` capnp
+syntax = "proto3";
+
+message MessageType {
+ string name = 1;
+ string surname = 2;
+ uint32 birthDate = 3;
+ repeated string phoneNumbers = 4;
+};
+```
+
+İletişim kuralı arabellekleri' ileti türü Tablo sütunları ve alanları arasındaki yazışmaları bulmak için clickhouse adlarını karşılaştırır.
+Bu karşılaştırma büyük / küçük harf duyarsız ve karakterler `_` (alt çizgi) ve `.` (nokta) eşit olarak kabul edilir.
+Bir sütun türleri ve protokol arabellekleri ileti alanı farklıysa, gerekli dönüştürme uygulanır.
+
+İç içe geçmiş mesajlar desteklenir. Örneğin, alan için `z` aşağıdaki ileti türünde
+
+``` capnp
+message MessageType {
+ message XType {
+ message YType {
+ int32 z;
+ };
+ repeated YType y;
+ };
+ XType x;
+};
+```
+
+ClickHouse adlı bir sütun bulmaya çalışır `x.y.z` (veya `x_y_z` veya `X.y_Z` ve benzeri).
+İç içe mesajlar giriş veya çıkış a için uygundur [iç içe veri yapıları](../sql_reference/data_types/nested_data_structures/nested.md).
+
+Böyle bir protobuf şemasında tanımlanan varsayılan değerler
+
+``` capnp
+syntax = "proto2";
+
+message MessageType {
+ optional int32 result_per_page = 3 [default = 10];
+}
+```
+
+uygulan ;mamaktadır; [tablo varsayılanları](../sql_reference/statements/create.md#create-default-values) bunların yerine kullanılır.
+
+ClickHouse girişleri ve çıkışları protobuf mesajları `length-delimited` biçimli.
+Bu, her mesajın uzunluğunu bir olarak yazmadan önce anlamına gelir [varint](https://developers.google.com/protocol-buffers/docs/encoding#varints).
+Ayrıca bakınız [popüler dillerde uzunlukla ayrılmış protobuf mesajları nasıl okunur / yazılır](https://cwiki.apache.org/confluence/display/GEODE/Delimiting+Protobuf+Messages).
+
+## Avro {#data-format-avro}
+
+[Apache Avro](http://avro.apache.org/) Apache'nin Hadoop projesi kapsamında geliştirilen satır odaklı veri serileştirme çerçevesidir.
+
+ClickHouse Avro biçimi okuma ve yazma destekler [Avro veri dosyaları](http://avro.apache.org/docs/current/spec.html#Object+Container+Files).
+
+### Veri Türleri Eşleştirme {#data_types-matching}
+
+Aşağıdaki tablo, desteklenen veri türlerini ve Clickhouse'la nasıl eşleştiğini gösterir [veri türleri](../sql_reference/data_types/index.md) içinde `INSERT` ve `SELECT` sorgular.
+
+| Avro veri türü `INSERT` | ClickHouse veri türü | Avro veri türü `SELECT` |
+|---------------------------------------------|-------------------------------------------------------------------------------------------------------------------|------------------------------|
+| `boolean`, `int`, `long`, `float`, `double` | [Int(8/16/32)](../sql_reference/data_types/int_uint.md), [Uİnt(8/16/32)](../sql_reference/data_types/int_uint.md) | `int` |
+| `boolean`, `int`, `long`, `float`, `double` | [Int64](../sql_reference/data_types/int_uint.md), [Uİnt64](../sql_reference/data_types/int_uint.md) | `long` |
+| `boolean`, `int`, `long`, `float`, `double` | [Float32](../sql_reference/data_types/float.md) | `float` |
+| `boolean`, `int`, `long`, `float`, `double` | [Float64](../sql_reference/data_types/float.md) | `double` |
+| `bytes`, `string`, `fixed`, `enum` | [Dize](../sql_reference/data_types/string.md) | `bytes` |
+| `bytes`, `string`, `fixed` | [FixedString(N)](../sql_reference/data_types/fixedstring.md) | `fixed(N)` |
+| `enum` | [Enum (8/16)](../sql_reference/data_types/enum.md) | `enum` |
+| `array(T)` | [Dizi(T)](../sql_reference/data_types/array.md) | `array(T)` |
+| `union(null, T)`, `union(T, null)` | [Null (T)](../sql_reference/data_types/date.md) | `union(null, T)` |
+| `null` | [Null (Hiçbir Şey)](../sql_reference/data_types/special_data_types/nothing.md) | `null` |
+| `int (date)` \* | [Tarihli](../sql_reference/data_types/date.md) | `int (date)` \* |
+| `long (timestamp-millis)` \* | [DateTime64 (3)](../sql_reference/data_types/datetime.md) | `long (timestamp-millis)` \* |
+| `long (timestamp-micros)` \* | [DateTime64 (6)](../sql_reference/data_types/datetime.md) | `long (timestamp-micros)` \* |
+
+\* [Avro mantıksal türleri](http://avro.apache.org/docs/current/spec.html#Logical+Types)
+
+Desteklenmeyen Avro veri türleri: `record` (non-root), `map`
+
+Desteklenmeyen Avro mantıksal veri türleri: `uuid`, `time-millis`, `time-micros`, `duration`
+
+### Veri Ekleme {#inserting-data-1}
+
+Bir Avro dosyasından ClickHouse tablosuna veri eklemek için:
+
+``` bash
+$ cat file.avro | clickhouse-client --query="INSERT INTO {some_table} FORMAT Avro"
+```
+
+Giriş Avro dosyasının kök şeması olmalıdır `record` tür.
+
+ClickHouse tablo sütunları ve Avro şema alanları arasındaki yazışmaları bulmak için adlarını karşılaştırır. Bu karşılaştırma büyük / küçük harf duyarlıdır.
+Kullanılmayan alanlar atlanır.
+
+ClickHouse tablo sütunlarının veri türleri, eklenen Avro verilerinin karşılık gelen alanlarından farklı olabilir. Veri eklerken, ClickHouse veri türlerini yukarıdaki tabloya göre yorumlar ve sonra [döküm](../sql_reference/functions/type_conversion_functions.md#type_conversion_function-cast) karşılık gelen sütun türüne veri.
+
+### Veri Seçme {#selecting-data-1}
+
+ClickHouse tablosundan bir Avro dosyasına veri seçmek için:
+
+``` bash
+$ clickhouse-client --query="SELECT * FROM {some_table} FORMAT Avro" > file.avro
+```
+
+Sütun adları gerekir:
+
+- ile başla `[A-Za-z_]`
+- daha sonra sadece içerir `[A-Za-z0-9_]`
+
+Çıkış Avro dosya sıkıştırma ve senkronizasyon aralığı ile yapılandırılabilir [output\_format\_avro\_codec](../operations/settings/settings.md#settings-output_format_avro_codec) ve [output\_format\_avro\_sync\_interval](../operations/settings/settings.md#settings-output_format_avro_sync_interval) sırasıyla.
+
+## AvroConfluent {#data-format-avro-confluent}
+
+AvroConfluent yaygın olarak kullanılan tek nesne Avro mesajları çözme destekler [Kafka](https://kafka.apache.org/) ve [Confluent Şema Kayıt](https://docs.confluent.io/current/schema-registry/index.html).
+
+Her Avro iletisi, şema Kayıt defterinin yardımıyla gerçek şemaya çözülebilen bir şema kimliği gömer.
+
+Şemalar çözüldükten sonra önbelleğe alınır.
+
+Şema kayıt defteri URL'si ile yapılandırılır [format\_avro\_schema\_registry\_url](../operations/settings/settings.md#settings-format_avro_schema_registry_url)
+
+### Veri Türleri Eşleştirme {#data_types-matching-1}
+
+Aynı olarak [Avro](#data-format-avro)
+
+### Kullanma {#usage}
+
+Şema çözünürlüğünü hızlı bir şekilde doğrulamak için şunları kullanabilirsiniz [kafkasat](https://github.com/edenhill/kafkacat) ile [clickhouse-yerel](../operations/utilities/clickhouse-local.md):
+
+``` bash
+$ kafkacat -b kafka-broker -C -t topic1 -o beginning -f '%s' -c 3 | clickhouse-local --input-format AvroConfluent --format_avro_schema_registry_url 'http://schema-registry' -S "field1 Int64, field2 String" -q 'select * from table'
+1 a
+2 b
+3 c
+```
+
+Kullanmak `AvroConfluent` ile [Kafka](../engines/table_engines/integrations/kafka.md):
+
+``` sql
+CREATE TABLE topic1_stream
+(
+ field1 String,
+ field2 String
+)
+ENGINE = Kafka()
+SETTINGS
+kafka_broker_list = 'kafka-broker',
+kafka_topic_list = 'topic1',
+kafka_group_name = 'group1',
+kafka_format = 'AvroConfluent';
+
+SET format_avro_schema_registry_url = 'http://schema-registry';
+
+SELECT * FROM topic1_stream;
+```
+
+!!! note "Uyarıcı"
+ Ayar `format_avro_schema_registry_url` yapılandırılmış olması gerekiyor `users.xml` yeniden başlattıktan sonra değerini korumak için.
+
+## Parke {#data-format-parquet}
+
+[Apache Parke](http://parquet.apache.org/) hadoop ekosisteminde yaygın bir sütunlu depolama biçimidir. ClickHouse, bu format için okuma ve yazma işlemlerini destekler.
+
+### Veri Türleri Eşleştirme {#data_types-matching-2}
+
+Aşağıdaki tablo, desteklenen veri türlerini ve Clickhouse'la nasıl eşleştiğini gösterir [veri türleri](../sql_reference/data_types/index.md) içinde `INSERT` ve `SELECT` sorgular.
+
+| Parke veri türü (`INSERT`) | ClickHouse veri türü | Parke veri türü (`SELECT`) |
+|----------------------------|-----------------------------------------------------------|----------------------------|
+| `UINT8`, `BOOL` | [Uİnt8](../sql_reference/data_types/int_uint.md) | `UINT8` |
+| `INT8` | [Int8](../sql_reference/data_types/int_uint.md) | `INT8` |
+| `UINT16` | [Uınt16](../sql_reference/data_types/int_uint.md) | `UINT16` |
+| `INT16` | [Int16](../sql_reference/data_types/int_uint.md) | `INT16` |
+| `UINT32` | [Uİnt32](../sql_reference/data_types/int_uint.md) | `UINT32` |
+| `INT32` | [Int32](../sql_reference/data_types/int_uint.md) | `INT32` |
+| `UINT64` | [Uİnt64](../sql_reference/data_types/int_uint.md) | `UINT64` |
+| `INT64` | [Int64](../sql_reference/data_types/int_uint.md) | `INT64` |
+| `FLOAT`, `HALF_FLOAT` | [Float32](../sql_reference/data_types/float.md) | `FLOAT` |
+| `DOUBLE` | [Float64](../sql_reference/data_types/float.md) | `DOUBLE` |
+| `DATE32` | [Tarihli](../sql_reference/data_types/date.md) | `UINT16` |
+| `DATE64`, `TIMESTAMP` | [DateTime](../sql_reference/data_types/datetime.md) | `UINT32` |
+| `STRING`, `BINARY` | [Dize](../sql_reference/data_types/string.md) | `STRING` |
+| — | [FixedString](../sql_reference/data_types/fixedstring.md) | `STRING` |
+| `DECIMAL` | [Ondalık](../sql_reference/data_types/decimal.md) | `DECIMAL` |
+
+ClickHouse yapılandırılabilir hassas destekler `Decimal` tür. Bu `INSERT` sorgu parke davranır `DECIMAL` ClickHouse olarak yazın `Decimal128` tür.
+
+Desteklen datameyen veri türleri: `DATE32`, `TIME32`, `FIXED_SIZE_BINARY`, `JSON`, `UUID`, `ENUM`.
+
+ClickHouse tablo sütunlarının veri türleri, eklenen parke verilerinin ilgili alanlarından farklı olabilir. Veri eklerken, ClickHouse veri türlerini yukarıdaki tabloya göre yorumlar ve sonra [döküm](../query_language/functions/type_conversion_functions/#type_conversion_function-cast) ClickHouse tablo sütunu için ayarlanmış olan bu veri türüne ait veriler.
+
+### Veri ekleme ve seçme {#inserting-and-selecting-data}
+
+Bir dosyadan parke verilerini ClickHouse tablosuna aşağıdaki komutla ekleyebilirsiniz:
+
+``` bash
+$ cat {filename} | clickhouse-client --query="INSERT INTO {some_table} FORMAT Parquet"
+```
+
+Bir ClickHouse tablosundan veri seçin ve aşağıdaki komutla parke formatında bazı dosyaya kaydedebilirsiniz:
+
+``` bash
+$ clickhouse-client --query="SELECT * FROM {some_table} FORMAT Parquet" > {some_file.pq}
+```
+
+Hadoop ile veri alışverişi yapmak için şunları kullanabilirsiniz [HDFS tablo motoru](../engines/table_engines/integrations/hdfs.md).
+
+## ORC {#data-format-orc}
+
+[Apache ORCC](https://orc.apache.org/) hadoop ekosisteminde yaygın bir sütunlu depolama biçimidir. Bu formatta yalnızca Clickhouse'a veri ekleyebilirsiniz.
+
+### Veri Türleri Eşleştirme {#data_types-matching-3}
+
+Aşağıdaki tablo, desteklenen veri türlerini ve Clickhouse'la nasıl eşleştiğini gösterir [veri türleri](../sql_reference/data_types/index.md) içinde `INSERT` sorgular.
+
+| Orc veri türü (`INSERT`) | ClickHouse veri türü |
+|--------------------------|-----------------------------------------------------|
+| `UINT8`, `BOOL` | [Uİnt8](../sql_reference/data_types/int_uint.md) |
+| `INT8` | [Int8](../sql_reference/data_types/int_uint.md) |
+| `UINT16` | [Uınt16](../sql_reference/data_types/int_uint.md) |
+| `INT16` | [Int16](../sql_reference/data_types/int_uint.md) |
+| `UINT32` | [Uİnt32](../sql_reference/data_types/int_uint.md) |
+| `INT32` | [Int32](../sql_reference/data_types/int_uint.md) |
+| `UINT64` | [Uİnt64](../sql_reference/data_types/int_uint.md) |
+| `INT64` | [Int64](../sql_reference/data_types/int_uint.md) |
+| `FLOAT`, `HALF_FLOAT` | [Float32](../sql_reference/data_types/float.md) |
+| `DOUBLE` | [Float64](../sql_reference/data_types/float.md) |
+| `DATE32` | [Tarihli](../sql_reference/data_types/date.md) |
+| `DATE64`, `TIMESTAMP` | [DateTime](../sql_reference/data_types/datetime.md) |
+| `STRING`, `BINARY` | [Dize](../sql_reference/data_types/string.md) |
+| `DECIMAL` | [Ondalık](../sql_reference/data_types/decimal.md) |
+
+ClickHouse yapılandırılabilir hassas destekler `Decimal` tür. Bu `INSERT` sorgu Orc davranır `DECIMAL` ClickHouse olarak yazın `Decimal128` tür.
+
+Desteklenmeyen Orc veri türleri: `DATE32`, `TIME32`, `FIXED_SIZE_BINARY`, `JSON`, `UUID`, `ENUM`.
+
+ClickHouse tablo sütunlarının veri türlerinin karşılık gelen ORC veri alanları ile eşleşmesi gerekmez. Veri eklerken, ClickHouse veri türlerini yukarıdaki tabloya göre yorumlar ve sonra [döküm](../sql_reference/functions/type_conversion_functions.md#type_conversion_function-cast) veri türü için veri kümesi ClickHouse tablo sütun.
+
+### Veri Ekleme {#inserting-data-2}
+
+Bir dosyadan Orc verilerini ClickHouse tablosuna aşağıdaki komutla ekleyebilirsiniz:
+
+``` bash
+$ cat filename.orc | clickhouse-client --query="INSERT INTO some_table FORMAT ORC"
+```
+
+Hadoop ile veri alışverişi yapmak için şunları kullanabilirsiniz [HDFS tablo motoru](../engines/table_engines/integrations/hdfs.md).
+
+## Biçim Şeması {#formatschema}
+
+Biçim şemasını içeren dosya adı, ayar tarafından ayarlanır `format_schema`.
+Biçim onelerinden biri kullanıldığında bu ayarı ayarlamak gerekir `Cap'n Proto` ve `Protobuf`.
+Biçim şeması, bir dosya adının ve bu dosyadaki bir ileti türünün adının birleşimidir ve iki nokta üst üste ile sınırlandırılmıştır,
+e.g. `schemafile.proto:MessageType`.
+Dosya, format için standart uzantıya sahipse (örneğin, `.proto` için `Protobuf`),
+ihmal edilebilir ve bu durumda, biçim şeması şöyle görünür `schemafile:MessageType`.
+
+Eğer giriş veya çıkış veri üzerinden [müşteri](../interfaces/cli.md) in the [interaktif mod](../interfaces/cli.md#cli_usage) biçim şe themasında belirtilen dosya adı
+mutlak bir yol veya istemci üzerinde geçerli dizine göre bir yol içerebilir.
+Eğer istemci kullanıyorsanız [Toplu Modu](../interfaces/cli.md#cli_usage), şemanın yolu güvenlik nedeniyle göreceli olmalıdır.
+
+Eğer giriş veya çıkış veri üzerinden [HTTP arayüzü](../interfaces/http.md) biçim şemasında belirtilen dosya adı
+belirtilen dizinde bulunmalıdır [format\_schema\_path](../operations/server_configuration_parameters/settings.md#server_configuration_parameters-format_schema_path)
+sunucu yapılandırmasında.
+
+## Atlama Hataları {#skippingerrors}
+
+Gibi bazı format suchlar `CSV`, `TabSeparated`, `TSKV`, `JSONEachRow`, `Template`, `CustomSeparated` ve `Protobuf` ayrıştırma hatası oluşursa kırık satırı atlayabilir ve bir sonraki satırın başından ayrıştırmaya devam edebilir. Görmek [ınput\_format\_allow\_errors\_num](../operations/settings/settings.md#settings-input_format_allow_errors_num) ve
+[ınput\_format\_allow\_errors\_ratio](../operations/settings/settings.md#settings-input_format_allow_errors_ratio) ayarlar.
+Sınırlamalar:
+- Ayrıştırma hatası durumunda `JSONEachRow` yeni satıra (veya EOF) kadar tüm verileri atlar, bu nedenle satırlar AŞAĞIDAKİLERLE sınırlandırılmalıdır `\n` hataları doğru saymak için.
+- `Template` ve `CustomSeparated` bir sonraki satırın başlangıcını bulmak için son sütundan sonra sınırlayıcı ve satırlar arasındaki sınırlayıcıyı kullanın, Bu nedenle hataları atlamak yalnızca en az biri boş değilse çalışır.
+
+[Orijinal makale](https://clickhouse.tech/docs/en/interfaces/formats/)
diff --git a/docs/tr/interfaces/http.md b/docs/tr/interfaces/http.md
new file mode 100644
index 0000000000..a30e05418c
--- /dev/null
+++ b/docs/tr/interfaces/http.md
@@ -0,0 +1,511 @@
+---
+machine_translated: true
+machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
+toc_priority: 19
+toc_title: "HTTP aray\xFCz\xFC"
+---
+
+# HTTP arayüzü {#http-interface}
+
+HTTP arayüzü, herhangi bir programlama dilinden herhangi bir platformda Clickhouse'u kullanmanızı sağlar. Java ve Perl'den ve kabuk komut dosyalarından çalışmak için kullanıyoruz. Diğer bölümlerde, HTTP arayüzü Perl, Python ve Go'dan kullanılır. HTTP arabirimi yerel arabirimden daha sınırlıdır, ancak daha iyi uyumluluğa sahiptir.
+
+Varsayılan olarak, clickhouse-server, 8123 numaralı bağlantı noktasında HTTP dinler (bu, yapılandırmada değiştirilebilir).
+
+Parametreler olmadan bir GET / request yaparsanız, 200 yanıt kodunu ve tanımlanan dizeyi döndürür [http\_server\_default\_response](../operations/server_configuration_parameters/settings.md#server_configuration_parameters-http_server_default_response) varsayılan değer “Ok.” (sonunda bir çizgi besleme ile)
+
+``` bash
+$ curl 'http://localhost:8123/'
+Ok.
+```
+
+Sağlık kontrol komut GET / ping isteği kullanın. Bu işleyici her zaman döner “Ok.” (sonunda bir çizgi besleme ile). 18.12.13 sürümünden edinilebilir.
+
+``` bash
+$ curl 'http://localhost:8123/ping'
+Ok.
+```
+
+İsteği URL olarak gönder ‘query’ parametre veya bir POST olarak. Veya sorgunun başlangıcını gönder ‘query’ parametre ve postadaki geri kalanı (bunun neden gerekli olduğunu daha sonra açıklayacağız). URL'nin boyutu 16 KB ile sınırlıdır, bu nedenle büyük sorgular gönderirken bunu aklınızda bulundurun.
+
+Başarılı olursa, 200 yanıt Kodu ve yanıt gövdesinde sonucu alırsınız.
+Bir hata oluşursa, 500 yanıt Kodu ve yanıt gövdesinde bir hata açıklaması metni alırsınız.
+
+GET yöntemini kullanırken, ‘readonly’ ayar .lanmıştır. Başka bir deyişle, verileri değiştiren sorgular için yalnızca POST yöntemini kullanabilirsiniz. Sorgunun kendisini POST gövdesinde veya URL parametresinde gönderebilirsiniz.
+
+Örnekler:
+
+``` bash
+$ curl 'http://localhost:8123/?query=SELECT%201'
+1
+
+$ wget -O- -q 'http://localhost:8123/?query=SELECT 1'
+1
+
+$ echo -ne 'GET /?query=SELECT%201 HTTP/1.0\r\n\r\n' | nc localhost 8123
+HTTP/1.0 200 OK
+Date: Wed, 27 Nov 2019 10:30:18 GMT
+Connection: Close
+Content-Type: text/tab-separated-values; charset=UTF-8
+X-ClickHouse-Server-Display-Name: clickhouse.ru-central1.internal
+X-ClickHouse-Query-Id: 5abe861c-239c-467f-b955-8a201abb8b7f
+X-ClickHouse-Summary: {"read_rows":"0","read_bytes":"0","written_rows":"0","written_bytes":"0","total_rows_to_read":"0"}
+
+1
+```
+
+Gördüğünüz gibi, curl, boşlukların URL'den kaçması gerektiği konusunda biraz rahatsız edici.
+Her ne kadar wget her şeyden kaçsa da, onu kullanmanızı önermiyoruz çünkü keep-alive ve Transfer-Encoding: chunked kullanırken HTTP 1.1 üzerinde iyi çalışmıyor.
+
+``` bash
+$ echo 'SELECT 1' | curl 'http://localhost:8123/' --data-binary @-
+1
+
+$ echo 'SELECT 1' | curl 'http://localhost:8123/?query=' --data-binary @-
+1
+
+$ echo '1' | curl 'http://localhost:8123/?query=SELECT' --data-binary @-
+1
+```
+
+Sorgunun bir parçası parametrede gönderilirse ve gönderinin bir parçası ise, bu iki veri parçası arasına bir satır akışı eklenir.
+Örnek (bu işe yaramaz):
+
+``` bash
+$ echo 'ECT 1' | curl 'http://localhost:8123/?query=SEL' --data-binary @-
+Code: 59, e.displayText() = DB::Exception: Syntax error: failed at position 0: SEL
+ECT 1
+, expected One of: SHOW TABLES, SHOW DATABASES, SELECT, INSERT, CREATE, ATTACH, RENAME, DROP, DETACH, USE, SET, OPTIMIZE., e.what() = DB::Exception
+```
+
+Varsayılan olarak, veri TabSeparated biçiminde döndürülür (daha fazla bilgi için bkz: “Formats” bölme).
+Başka bir biçim istemek için sorgunun biçim yan tümcesi kullanın.
+
+``` bash
+$ echo 'SELECT 1 FORMAT Pretty' | curl 'http://localhost:8123/?' --data-binary @-
+┏━━━┓
+┃ 1 ┃
+┡━━━┩
+│ 1 │
+└───┘
+```
+
+Ekleme sorguları için veri iletmenin POST yöntemi gereklidir. Bu durumda, URL parametresinde sorgunun başlangıcını yazabilir ve eklemek için verileri iletmek için POST'u kullanabilirsiniz. Eklenecek veriler, örneğin Mysql'den sekmeyle ayrılmış bir döküm olabilir. Bu şekilde, INSERT sorgusu MYSQL'DEN load DATA LOCAL INFİLE'IN yerini alır.
+
+Örnekler: tablo oluşturma:
+
+``` bash
+$ echo 'CREATE TABLE t (a UInt8) ENGINE = Memory' | curl 'http://localhost:8123/' --data-binary @-
+```
+
+Veri ekleme için tanıdık ekleme sorgusunu kullanma:
+
+``` bash
+$ echo 'INSERT INTO t VALUES (1),(2),(3)' | curl 'http://localhost:8123/' --data-binary @-
+```
+
+Veriler sorgudan ayrı olarak gönderilebilir:
+
+``` bash
+$ echo '(4),(5),(6)' | curl 'http://localhost:8123/?query=INSERT%20INTO%20t%20VALUES' --data-binary @-
+```
+
+Herhangi bir veri biçimini belirtebilirsiniz. Bu ‘Values’ biçim, T değerlerine INSERT yazarken kullanılanla aynıdır:
+
+``` bash
+$ echo '(7),(8),(9)' | curl 'http://localhost:8123/?query=INSERT%20INTO%20t%20FORMAT%20Values' --data-binary @-
+```
+
+Sekmeyle ayrılmış bir dökümden veri eklemek için ilgili biçimi belirtin:
+
+``` bash
+$ echo -ne '10\n11\n12\n' | curl 'http://localhost:8123/?query=INSERT%20INTO%20t%20FORMAT%20TabSeparated' --data-binary @-
+```
+
+Tablo içeriğini okuma. Paralel sorgu işleme nedeniyle veriler rastgele sırayla çıktılanır:
+
+``` bash
+$ curl 'http://localhost:8123/?query=SELECT%20a%20FROM%20t'
+7
+8
+9
+10
+11
+12
+1
+2
+3
+4
+5
+6
+```
+
+Tabloyu silme.
+
+``` bash
+$ echo 'DROP TABLE t' | curl 'http://localhost:8123/' --data-binary @-
+```
+
+Veri tablosu döndürmeyen başarılı istekler için boş bir yanıt gövdesi döndürülür.
+
+Veri iletirken dahili ClickHouse sıkıştırma formatını kullanabilirsiniz. Sıkıştırılmış veriler standart olmayan bir biçime sahiptir ve özel `clickhouse-compressor` onunla çalışmak için program (bu ile yüklü `clickhouse-client` paket). Veri ekleme verimliliğini artırmak için, sunucu tarafı sağlama toplamı doğrulamasını kullanarak devre dışı bırakabilirsiniz. [http\_native\_compression\_disable\_checksumming\_on\_decompress](../operations/settings/settings.md#settings-http_native_compression_disable_checksumming_on_decompress) ayar.
+
+Belirt ift ifiyseniz `compress=1` URL'de, sunucu size gönderdiği verileri sıkıştırır.
+Belirt ift ifiyseniz `decompress=1` URL'de, sunucu içinde geçirdiğiniz aynı verileri açar. `POST` yöntem.
+
+Ayrıca kullanmayı seçebilirsiniz [HTTP sıkıştırma](https://en.wikipedia.org/wiki/HTTP_compression). Sıkıştırılmış bir göndermek için `POST` istek, istek başlığını Ekle `Content-Encoding: compression_method`. Clickhouse'un yanıtı sıkıştırması için şunları eklemelisiniz `Accept-Encoding: compression_method`. ClickHouse destekler `gzip`, `br`, ve `deflate` [sıkıştırma yöntemleri](https://en.wikipedia.org/wiki/HTTP_compression#Content-Encoding_tokens). HTTP sıkıştırmasını etkinleştirmek için Clickhouse'u kullanmanız gerekir [enable\_http\_compression](../operations/settings/settings.md#settings-enable_http_compression) ayar. Veri sıkıştırma düzeyini [http\_zlib\_compression\_level](#settings-http_zlib_compression_level) tüm sıkıştırma yöntemleri için ayarlama.
+
+Bunu, büyük miktarda veri iletirken ağ trafiğini azaltmak veya hemen sıkıştırılmış dökümler oluşturmak için kullanabilirsiniz.
+
+Sıkıştırma ile veri gönderme örnekleri:
+
+``` bash
+#Sending data to the server:
+$ curl -vsS "http://localhost:8123/?enable_http_compression=1" -d 'SELECT number FROM system.numbers LIMIT 10' -H 'Accept-Encoding: gzip'
+
+#Sending data to the client:
+$ echo "SELECT 1" | gzip -c | curl -sS --data-binary @- -H 'Content-Encoding: gzip' 'http://localhost:8123/'
+```
+
+!!! note "Not"
+ Bazı HTTP istemcileri varsayılan olarak sunucudan verileri açabilir ( `gzip` ve `deflate`) ve sıkıştırma ayarlarını doğru kullansanız bile sıkıştırılmış veriler alabilirsiniz.
+
+Kullanabilirsiniz ‘database’ Varsayılan veritabanını belirtmek için URL parametresi.
+
+``` bash
+$ echo 'SELECT number FROM numbers LIMIT 10' | curl 'http://localhost:8123/?database=system' --data-binary @-
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+```
+
+Varsayılan olarak, sunucu ayarlarında kayıtlı veritabanı varsayılan veritabanı olarak kullanılır. Varsayılan olarak, bu veritabanı denir ‘default’. Alternatif olarak, her zaman tablo adından önce bir nokta kullanarak veritabanını belirtebilirsiniz.
+
+Kullanıcı adı ve şifre üç yoldan biriyle belirtilebilir:
+
+1. HTTP temel kimlik doğrulamasını kullanma. Örnek:
+
+
+
+``` bash
+$ echo 'SELECT 1' | curl 'http://user:password@localhost:8123/' -d @-
+```
+
+1. İn the ‘user’ ve ‘password’ URL parametreleri. Örnek:
+
+
+
+``` bash
+$ echo 'SELECT 1' | curl 'http://localhost:8123/?user=user&password=password' -d @-
+```
+
+1. Kullanım ‘X-ClickHouse-User’ ve ‘X-ClickHouse-Key’ üstbilgi. Örnek:
+
+
+
+``` bash
+$ echo 'SELECT 1' | curl -H 'X-ClickHouse-User: user' -H 'X-ClickHouse-Key: password' 'http://localhost:8123/' -d @-
+```
+
+Kullanıcı adı belirtilmemişse, `default` adı kullanılır. Parola belirtilmezse, boş parola kullanılır.
+Tek bir sorguyu veya ayarların tüm profillerini işlemek için herhangi bir ayar belirtmek için URL parametrelerini de kullanabilirsiniz. Örnek: http: / / localhost: 8123/?profil = web & max\_rows\_to\_read = 1000000000 & query = seç + 1
+
+Daha fazla bilgi için, bkz: [Ayarlar](../operations/settings/index.md) bölme.
+
+``` bash
+$ echo 'SELECT number FROM system.numbers LIMIT 10' | curl 'http://localhost:8123/?' --data-binary @-
+0
+1
+2
+3
+4
+5
+6
+7
+8
+9
+```
+
+Diğer parametreler hakkında bilgi için bölüme bakın “SET”.
+
+Benzer şekilde, http protokolünde ClickHouse oturumlarını kullanabilirsiniz. Bunu yapmak için şunları eklemeniz gerekir: `session_id` İsteğe parametre alın. Oturum kimliği olarak herhangi bir dize kullanabilirsiniz. Varsayılan olarak, oturum 60 saniye hareketsizlik sonra sonlandırılır. Bu zaman aşımını değiştirmek için, `default_session_timeout` sunucu yapılandırmasında ayarlama veya `session_timeout` İsteğe parametre alın. Oturum durumunu kontrol etmek için `session_check=1` parametre. Bir kerede yalnızca bir sorgu, tek bir oturum içinde çalıştırılabilir.
+
+Bir sorgunun ilerleme durumu hakkında bilgi alabilirsiniz `X-ClickHouse-Progress` yanıt başlıkları. Bunu yapmak için etkinleştir [send\_progress\_in\_http\_headers](../operations/settings/settings.md#settings-send_progress_in_http_headers). Başlık dizisi örneği:
+
+``` text
+X-ClickHouse-Progress: {"read_rows":"2752512","read_bytes":"240570816","total_rows_to_read":"8880128"}
+X-ClickHouse-Progress: {"read_rows":"5439488","read_bytes":"482285394","total_rows_to_read":"8880128"}
+X-ClickHouse-Progress: {"read_rows":"8783786","read_bytes":"819092887","total_rows_to_read":"8880128"}
+```
+
+Olası başlık alanları:
+
+- `read_rows` — Number of rows read.
+- `read_bytes` — Volume of data read in bytes.
+- `total_rows_to_read` — Total number of rows to be read.
+- `written_rows` — Number of rows written.
+- `written_bytes` — Volume of data written in bytes.
+
+Http bağlantısı kaybolursa çalışan istekler otomatik olarak durmaz. Ayrıştırma ve veri biçimlendirme sunucu tarafında gerçekleştirilir ve ağ kullanarak etkisiz olabilir.
+Opsiyonel ‘query\_id’ parametre sorgu kimliği (herhangi bir dize) geçirilebilir. Daha fazla bilgi için bölüme bakın “Settings, replace\_running\_query”.
+
+Opsiyonel ‘quota\_key’ parametre kota anahtarı (herhangi bir dize) olarak geçirilebilir. Daha fazla bilgi için bölüme bakın “Quotas”.
+
+HTTP arabirimi, sorgulamak için dış verileri (dış geçici tablolar) geçirmenize izin verir. Daha fazla bilgi için bölüme bakın “External data for query processing”.
+
+## Yanıt Tamponlama {#response-buffering}
+
+Sunucu tarafında yanıt arabelleği etkinleştirebilirsiniz. Bu `buffer_size` ve `wait_end_of_query` Bu amaçla URL parametreleri sağlanmıştır.
+
+`buffer_size` sunucu belleğinde arabellek sonucu bayt sayısını belirler. Sonuç gövdesi bu eşikten büyükse, arabellek HTTP kanalına yazılır ve kalan veriler doğrudan HTTP kanalına gönderilir.
+
+Tüm yanıtın arabelleğe alındığından emin olmak için `wait_end_of_query=1`. Bu durumda, bellekte depolanan veriler geçici bir sunucu dosyasında arabelleğe alınır.
+
+Örnek:
+
+``` bash
+$ curl -sS 'http://localhost:8123/?max_result_bytes=4000000&buffer_size=3000000&wait_end_of_query=1' -d 'SELECT toUInt8(number) FROM system.numbers LIMIT 9000000 FORMAT RowBinary'
+```
+
+Yanıt Kodu ve HTTP üstbilgileri istemciye gönderildikten sonra bir sorgu işleme hatası oluştu durumları önlemek için arabelleğe alma kullanın. Bu durumda, yanıt gövdesinin sonunda bir hata iletisi yazılır ve istemci tarafında hata yalnızca ayrıştırma aşamasında algılanabilir.
+
+### Parametrelerle sorgular {#cli-queries-with-parameters}
+
+Parametrelerle bir sorgu oluşturabilir ve karşılık gelen HTTP istek parametrelerinden onlar için değerler geçirebilirsiniz. Daha fazla bilgi için, bkz. [CLI için parametrelerle sorgular](cli.md#cli-queries-with-parameters).
+
+### Örnek {#example}
+
+``` bash
+$ curl -sS "?param_id=2¶m_phrase=test" -d "SELECT * FROM table WHERE int_column = {id:UInt8} and string_column = {phrase:String}"
+```
+
+## Önceden tanımlanmış HTTP arabirimi {#predefined_http_interface}
+
+ClickHouse HTTP arabirimi üzerinden belirli sorguları destekler. Örneğin, bir tabloya aşağıdaki gibi veri yazabilirsiniz:
+
+``` bash
+$ echo '(4),(5),(6)' | curl 'http://localhost:8123/?query=INSERT%20INTO%20t%20VALUES' --data-binary @-
+```
+
+ClickHouse ayrıca gibi üçüncü parti araçları ile daha kolay entegrasyon yardımcı olabilir önceden tanımlanmış HTTP arayüzünü destekler [PROMETHEUS ihracatçı](https://github.com/percona-lab/clickhouse_exporter).
+
+Örnek:
+
+- Her şeyden önce, bu bölümü sunucu yapılandırma dosyasına ekleyin:
+
+
+
+``` xml
+
+
+ /metrics
+ GET
+
+ SELECT * FROM system.metrics LIMIT 5 FORMAT Template SETTINGS format_template_resultset = 'prometheus_template_output_format_resultset', format_template_row = 'prometheus_template_output_format_row', format_template_rows_between_delimiter = '\n'
+
+
+
+```
+
+- Artık PROMETHEUS formatında veriler için doğrudan url talep edebilirsiniz:
+
+
+
+``` bash
+curl -vvv 'http://localhost:8123/metrics'
+* Trying ::1...
+* Connected to localhost (::1) port 8123 (#0)
+> GET /metrics HTTP/1.1
+> Host: localhost:8123
+> User-Agent: curl/7.47.0
+> Accept: */*
+>
+< HTTP/1.1 200 OK
+< Date: Wed, 27 Nov 2019 08:54:25 GMT
+< Connection: Keep-Alive
+< Content-Type: text/plain; charset=UTF-8
+< X-ClickHouse-Server-Display-Name: i-tl62qd0o
+< Transfer-Encoding: chunked
+< X-ClickHouse-Query-Id: f39235f6-6ed7-488c-ae07-c7ceafb960f6
+< Keep-Alive: timeout=3
+< X-ClickHouse-Summary: {"read_rows":"0","read_bytes":"0","written_rows":"0","written_bytes":"0","total_rows_to_read":"0"}
+<
+# HELP "Query" "Number of executing queries"
+# TYPE "Query" counter
+"Query" 1
+
+# HELP "Merge" "Number of executing background merges"
+# TYPE "Merge" counter
+"Merge" 0
+
+# HELP "PartMutation" "Number of mutations (ALTER DELETE/UPDATE)"
+# TYPE "PartMutation" counter
+"PartMutation" 0
+
+# HELP "ReplicatedFetch" "Number of data parts being fetched from replica"
+# TYPE "ReplicatedFetch" counter
+"ReplicatedFetch" 0
+
+# HELP "ReplicatedSend" "Number of data parts being sent to replicas"
+# TYPE "ReplicatedSend" counter
+"ReplicatedSend" 0
+
+* Connection #0 to host localhost left intact
+```
+
+Örnekten görebileceğiniz gibi, Eğer `` yapılandırmada yapılandırılır.XML dosyası, ClickHouse önceden tanımlanmış türüne alınan HTTP istekleri eşleşecek `` Maç başarılı olursa, ClickHouse ilgili önceden tanımlanmış sorgu yürütecektir.
+
+Şimdi `` Yapılandır configureılabilir ``, ``, ``, `` ve `` .
+
+## root\_handler {#root_handler}
+
+`` kök yolu isteği için belirtilen içeriği döndürür. Belirli dönüş içeriği tarafından yapılandırılır `http_server_default_response` config.xml. belirtilmemişse, iade **Tamam.**
+
+`http_server_default_response` tanımlanmadı ve Clickhouse'a bir HTTP isteği gönderildi. Sonuç aşağıdaki gibidir:
+
+``` xml
+
+
+
+```
+
+ $ curl 'http://localhost:8123'
+ Ok.
+
+`http_server_default_response` tanımlanır ve Clickhouse'a bir HTTP isteği gönderilir. Sonuç aşağıdaki gibidir:
+
+``` xml
+