Ana içeriğe atla

Snowflake’te INSERT INTO: Baştan Sona Başlangıç Kılavuzu

INSERT INTO ifadesini kullanarak Snowflake tablolarına verileri verimli biçimde eklemeyi öğrenin. Bu kılavuz; sözdizimi, kullanım alanları, en iyi uygulamalar ve sorun giderme tekniklerini kapsar.
Güncel 3 Eki 2026  · 6 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Snowflake ile çalışırken gerçekleştireceğiniz temel işlemlerden biri, tablolara veri eklemektir. INSERT INTO ifadesi; değerleri elle girerek, birden çok satır ekleyerek veya veriyi diğer tablolardan çekerek tabloya yeni kayıtlar eklemenizi sağlar.

Bu kılavuzda, Snowflake’te INSERT INTO’yu etkili biçimde kullanmak için sözdizimini, çeşitli kullanım senaryolarını, en iyi uygulamaları ve yaygın sorun giderme adımlarını adım adım anlatacağım.

Snowflake’te INSERT INTO Komutu Nedir?

Sözdizimine geçmeden önce, Snowflake’te INSERT INTO’nun amacını ve farklı kullanım alanlarını anlamamız gerekir. 

Bir veritabanına veri eklemek, veritabanı yönetiminin kritik bir parçasıdır. Snowflake’te INSERT INTO ifadesi bir tabloya yeni veri satırları eklemek için kullanılır. Tek satır, birden çok satır ya da başka bir tablodan toplu veri ekleyebilir. Veriyi belirli bir satır veya satır grubu için her değeri elle yazarak ekleyebilir ya da diğer veri kaynaklarından toplu yükleme yapmak üzere bir SQL ifadesi kullanabilirsiniz.

> INSERT INTO temel bir komut olsa da, Snowflake’i ve mimarisini anlamak harika bir başlangıç noktasıdır. Temelleri tazelemek için bu Snowflake eğitimine göz atın!

INSERT INTO için kullanım alanları

İşte INSERT INTO ifadesinin yaygın kullanım alanlarından bazıları. 

  • Bir tabloya kayıtları elle eklemek.
  • Tek bir sorguda çok sayıda satırı toplu olarak eklemek.
  • Veriyi bir tablodan diğerine taşımak.
  • Mevcut bir veri kümesine yeni veriler eklemek.
  • SELECT sorgusunun sonuçlarından bir tabloyu doldurmak.

> Bu ifadeyi öğrenmek, Snowflake mülakatları için de harikadır!

Snowflake’te INSERT INTO Sözdizimi

Şimdi gerçek sözdizimine geçiyoruz. Önce INSERT INTO’nun en basit kullanımını ele alalım: değerleri elle girerek bir satıra veri eklemek.

INSERT INTO için temel sözdizimi şöyledir:

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);

INSERT INTO ifadesini, veriyi ekleyeceğimiz table_name ile birlikte yazarsınız. Veri sırası konusunda net olmak için, parantez içinde (column1, column2, column3) şeklinde sütun adlarını belirtebiliriz. Son kısım ise ilgili sütunlara eklenecek VALUES (value1, value2, value3) değerlerini yazmaktır.

Sütun adlarını belirtmeden veri ekleme

Sütun adlarını atladığınızda, Snowflake değerlerin tablonun şemasındaki sırayla sağlandığını varsayar. Yani, ilk değer tablodaki ilk sütun için kabul edilir ve bu şekilde devam eder.

INSERT INTO table_name
VALUES (value1, value2, value3);

Bu yaklaşımla, değerlerin sütunlarla aynı sırada olduğundan emin olmalısınız; aksi halde veri türleri veya veri tutarlılığıyla ilgili sorunlar yaşayabilirsiniz.

Snowflake’te INSERT INTO’nun İleri Düzey Kullanımı

INSERT INTO’nun daha ileri düzey kullanımları arasında farklı bir tablodan tek satır eklemek, birden çok satır eklemek veya koşullu veri eklemek yer alır. Bu, bir tabloya veri eklemek ya da veriyi ayrı bir tabloda arşivlemek için kullanışlıdır.

INSERT INTO’yu birden çok satırla kullanma

Tek tek satır eklemek yerine, tek bir ifadeyle birden çok satır ekleyebilirsiniz:

INSERT INTO employees (id, name, department)
VALUES
    (1, 'Alice', 'HR'),
    (2, 'Bob', 'Finance'),
    (3, 'Charlie', 'IT');

Bu yaklaşım sorgu çalıştırma yükünü azaltır ve performansı artırır. Dikkat edilmesi gereken nokta, her satırın bir parantez çiftiyle tamamen çevrili olması ve araya virgül gelmesidir. Bunu yapmamak hatalara yol açabilir. 

Başka bir tablodan veri ekleme

Veriyi bir tablodan diğerine kopyalamak için, SELECT ifadesiyle birlikte INSERT INTO kullanın:

INSERT INTO target_table (column1, column2)

SELECT
column1, 
column2 
FROM source_table ;

Bu, veriyi arşivlemek, eklemeden önce dönüştürmek veya filtrelenmiş kayıtları eklemek için kullanışlıdır. Kaynak verinin sütun sırası hedefle aynıysa, target_table yanındaki sütun adlarını belirtmeyi atlayabilirsiniz.

Koşullu eklemeler

SELECT ifadenizde bir koşula bağlı olarak veri ekleyebilirsiniz; böylece tüm tabloyu kopyalamazsınız.

INSERT INTO high_salary_employees (id, name, salary)

SELECT 
id, 
name, 
salary
FROM employees 
WHERE salary > 100000;

Bu sayede yalnızca koşulu sağlayan çalışanlar yeni tabloya eklenir. Böyle yapmak veri bütünlüğünü korur ve depolama ile hesaplama yükünü azaltır.

Snowflake’te INSERT INTO Kullanımı için En İyi Uygulamalar

Snowflake’te INSERT INTO kullanırken bazı en iyi uygulamalar şunlardır. Buna MERGE gibi daha verimli ifadeleri kullanmak ve veriyi eklemeden önce doğrulamak dahildir.

Upsert işlemleri için INSERT INTO yerine MERGE kullanma

Hem yeni kayıtları eklemeniz hem de mevcutları güncellemeniz gerekiyorsa, MERGE daha iyi bir seçenektir çünkü mevcut veriyi eşleştirebilir. 

Mevcut satırların belirli bir ölçütü karşılayıp karşılamadığını (örneğin, mevcut bir çalışan kimliği) kontrol eder ve kaynak tabloyu kullanarak hedef tablodaki belirli değerleri güncelleyebilir. Eşleşme olmadığında ise yeni veriyi ekler. Bu, “upsert” (update ve insert) olarak bilinen bir kavramdır. 

MERGE kullanımına bir örnek için aşağıya bakın:

MERGE INTO target_table AS t
USING source_table AS s
ON t.id = s.id
WHEN MATCHED THEN
    UPDATE SET t.salary = s.salary
WHEN NOT MATCHED THEN
    INSERT (id, name, salary) VALUES (s.id, s.name, s.salary);

> MERGE ifadesi hızla standart prosedür hâline geliyor ve Snowflake sertifikalarının kilit bir parçasıdır.

Toplu eklemeler ve performans

Geniş veri kümeleri eklerken performansı artırmak için toplu eklemelere odaklanmaya çalışın. Bu, her yüklemede yeni bağlantı açma gereksinimini azaltarak genel performansı iyileştirir. Toplu ekleme için bazı ipuçları:

  • Satır satır eklemek yerine toplu eklemeleri kullanın.
  • COPY INTO’yu harici kaynaklardan büyük veri yüklerken kullanın. Bu, örneğin S3 gibi bir kaynağa bağlanırken kullanışlıdır.
  • Betiklerde döngüler içinde veri eklemekten kaçının; toplu işleme daha verimlidir. Yani döngüyü bitirin, veriyi tek bir veri kaynağı olarak saklayın ve ardından bu tüm veri kaynağını tek seferde yükleyin.

Eklemeden önce veri doğrulama

Veriyi eklemeden önce doğrulayın. Veriniz doğrulanmamışsa birçok soruna veya doğrudan hataya neden olabilir. Verinin aşağı akışta nasıl kullanılabileceğini ve eklenen verinizin nasıl görünmesi gerektiğini düşünün. Dikkat edilmesi gereken bazı başlıca noktalar:

  • Veri türleri sütun tanımlarıyla eşleşmeli.
  • Zorunlu alanlar null olmamalı.
  • Yinelenen birincil anahtarlar veya benzersizlik kısıtı ihlalleri olmamalı.

Snowflake’te INSERT INTO ile Hata Yönetimi

Belirtildiği gibi, veri eklerken ara sıra hatalar olabilir. Yaygın hatalarla nasıl başa çıkılacağına dair bazı öneriler aşağıdadır. 

Yinelenen anahtarlarla başa çıkma

Snowflake kendisi benzersizlik kısıtlarını zorunlu kılmaz; bu da yinelenen verilerin eklenebilmesi anlamına gelir. 

Yinelenen anahtarlardan endişe duyuyorsanız, bunu MERGE ile ya da ON CONFLICT (destekleniyorsa) kullanarak ele almanız daha iyi olabilir. Sonuçta, hedef tabloda zaten bulunanları hariç tutmak için eklemenize WHERE koşulu da ekleyebilirsiniz.

INSERT INTO employees (id, name)
SELECT id, name FROM new_employees
WHERE id NOT IN (SELECT id FROM employees);

NULL değerleri yönetme

Null olabilir sütunların NULL değerlere izin verdiğinden emin olun veya varsayılan değer sağlayın. Snowflake, herhangi bir NOT NULL sütun kısıtını uygular; dolayısıyla bu kısıta sahip bir sütunda NULL veri varsa eklemeniz başarısız olur. Buradaki en önemli nokta verinizi anlamaktır: NULL’ların nerede bulunmasına izin verildiği ve nerede verilmediği.

INSERT INTO ile Yaygın Sorunları Giderme

Diğer bazı sorunlar veri türlerine veya yetkilere dayanabilir. Bu sorunların nasıl ele alınacağını kısaca tartışacağız.

Veri türü uyuşmazlıkları

Yanlış veri türünde bir değer eklerken hatalar oluşur. Bazen veri türü dönüştürmesi yaparak bununla başa çıkabilirsiniz; ancak bu NULL’lara yol açabilir. Eklediğiniz verinin hedefle aynı olduğundan emin olmak için, (izinlerinizin olduğu yerlerde) information_schema’ya bakabilir ve şemanızı bu şekilde değerlendirebilirsiniz:

SELECT column_name, 
data_type
 FROM information_schema.columns 
WHERE table_name = 'employees';

Yetki sorunları

Bir yetki hatası alırsanız, kullanıcı rolleri ve ayrıcalıkları kontrol edin:

SHOW GRANTS TO USER current_user;

INSERT kullanma izniniz yoksa yöneticinizle, BT biriminizle ya da veri kümesinin sahibiyle görüşün. Kendinize izin verebiliyorsanız, aşağıdaki kodu kullanın:

GRANT INSERT ON TABLE employees TO user_name;

Sonuç

Snowflake’te INSERT INTO komutu, tablolara verileri verimli biçimde eklemek için güçlü bir araçtır. Tek satır, toplu veri ya da başka bir tablodan kopyalama fark etmeksizin, sözdizimini ve en iyi uygulamaları anlamak veri bütünlüğünü ve performansı güvence altına alır. Hataları yöneterek, veriyi doğrulayarak ve eklemeleri optimize ederek sağlam ve verimli bir Snowflake veritabanı sürdürebilirsiniz. 

Snowflake hakkında daha fazla bilgi edinmek için, şu kurslara göz atmanızı öneririm:

FAQs

Snowflake’te INSERT INTO ile COPY INTO arasındaki fark nedir?

INSERT INTO, belirli veri satırlarını eklemek için kullanılır; COPY INTO ise AWS S3 veya Azure Blob Storage gibi harici kaynaklardan büyük veri kümelerini toplu yükleme için optimize edilmiştir.

INSERT INTO, Snowflake’te işlemleri (transactions) destekler mi?

Evet, Snowflake işlemleri destekler; bu nedenle veri eklerken veri bütünlüğünü sağlamak için BEGIN, COMMIT ve ROLLBACK kullanabilirsiniz.

Büyük miktarda veri eklerken performans için en iyi uygulamalar nelerdir?

Satır satır eklemek yerine toplu eklemeleri kullanın, toplu yüklemeler için COPY INTO’dan yararlanın ve ekleme performansını yavaşlatabilecek gereksiz indekslerden kaçının.

Snowflake’te güvenli bir görünüme (secure view) INSERT INTO yapabilir miyim?

Hayır. Güvenli görünümler de dahil olmak üzere görünümler sanal tablolardır ve doğrudan yazılamaz. Alttaki temel tabloya ekleme yapmanız veya geçici bir hazırlık tablosu kullanıp ardından görünümü yeniden oluşturmanız/yenilemeniz gerekir.

JSON verisini VARIANT sütununa nasıl eklerim?

JSON’u tek tırnak içine alın ve VARIANT’a dönüştürün; örn. INSERT INTO t (payload) VALUES (PARSE_JSON('{\"key\":\"value\"}'));. Snowflake, yarı yapılandırılmış biçimi daha sonra sorgulamak üzere otomatik olarak korur.

Yanlışlıkla yapılan bir INSERT INTO’yu geri almanın en hızlı yolu nedir?

Tabloyu ekleme öncesindeki bir zamana geri yüklemek için Time Travel’dan yararlanın: CREATE OR REPLACE TABLE my_table AS SELECT * FROM my_table AT (TIMESTAMP => '2025-06-17 09:00:00');. Bu, elle DELETE ifadelerinden kaçınmanızı sağlar ve kümelemeyi korur.

INSERT INTO otomatik olarak mikro-bölümler oluşturur mu?

Evet. Her DML işlemi (eklemeler dâhil) Snowflake’in mikro-bölümlendirme motorunu tetikler; bu motor, veriyi budama ve sıkıştırma için düzenler. Bölümleri manuel olarak yönetmeniz gerekmez.

Kümeleme, INSERT performansını nasıl etkiler?

Kümeleme anahtarları sorgu hızına yardımcı olur ancak yazma işlemlerine ek yük getirir. Sık ekleme yapılan, yoğun şekilde kümelenmiş bir tabloda eklemeler yavaş olabilir; bu nedenle kümeleme anahtarlarını dikkatle seçin ve mümkünse yeniden kümelemeyi yoğun olmayan saatlerde yapın.

INSERT INTO’yu Snowpipe ile kullanabilir miyim?

Dolaylı olarak. Snowpipe dosyaları bir hazırlık tablosuna alır; ardından dönüşümlerin ardından analitik tablolara INSERT INTO yapabilirsiniz. Sürekli yükleme için manuel eklemeler yerine Snowpipe’ı akışlar ve görevlerle birleştirin.

Tek bir ifadeyle ne kadar veri ekleyebilirim?

Snowflake, işi mikro partilere böldüğü için uygulamada çok terabaytlık boyutlarda dahi çok büyük INSERT INTO … SELECT işlemleri destekler. Başlıca sınırlayıcı, ambar boyutu ve zaman aşımı ayarlarıdır.

Paylaşılan veritabanlarına INSERT INTO yapmak için hangi rol ayrıcalıkları gerekir?

Rolün, tüketici hesabı içindeki hedef tablo üzerinde INSERT ayrıcalığına sahip olması gerekir. Veri paylaşımları varsayılan olarak salt okunurdur; bu yüzden genellikle önce veriyi yazılabilir kendi veritabanınıza kopyalarsınız.

INSERT INTO’nun yürütme süresi ve maliyetini nasıl izlerim?

Yürütme istatistikleri, ambar boyutu ve tüketilen krediler için QUERY_HISTORY görünümünü sorgulayın. Uzun vadeli eğilim analizi ve maliyet optimizasyonu için ACCOUNT_USAGE.QUERY_HISTORY ile birlikte kullanın.


Tim Lu's photo
Author
Tim Lu
LinkedIn

Mekânsal analiz, makine öğrenimi ve veri hatları konusunda deneyime sahip bir veri bilimciyim. GCP, Hadoop, Hive, Snowflake, Airflow ve diğer veri bilimi/mühendisliği süreçleriyle çalıştım.

Konular
Snowflake
Cloud

Bu kurslarla Snowflake hakkında daha fazlasını öğrenin!

Kurs

Snowflake'e Giriş

2 sa
49.1K
Snowflake, önde gelen bir veri ambarı platformudur. Snowsight ile veriye erişim ve keşif için kullanıcı dostu SQL arayüzünü nasıl kullandıklarını öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Devamını GörDevamını Gör