CSV Dosyasını SQL Server'a Aktarmanın 2 Kolay Yolu
Günümüzde CSV'yi SQL Server'a aktarmanın daha kolay yolları var. Daha az kod yazabilir veya grafiksel araçlar kullanabilirsiniz. CSV'yi bulut depolama alanından şirket içi SQL Server'ınıza bile alabilirsiniz. Bu gönderi bunu 3 kolay yolla nasıl yapabileceğinize odaklanacaktır.
İçindekiler
- CSV'yi SQL Server'a Neden Aktarmalısınız?
- SQL Server'a CSV Dosyası Nasıl İçe Aktarılır (3 Kolay Yol)
- TOPLU EKLEME
- SQL Server Management Studio CSV Araçlarını İçe Aktarma
CSV'yi SQL Server'a Neden Aktarmalısınız?
Vikipedi'de virgülle ayrılmış değerler veya CSV hakkında okudum . CSV'nin 1972'de desteklendiğine inanabiliyor musunuz? Hangi sebepten dolayı?
Farklı platform ve mimarilere sahip 2 veya daha fazla sistem arasında veri alışverişi yapmak. Bugün, sebep hala aynı. 2 tescilli sisteminiz olduğunu düşünün. Biri PayPal'ınki gibi tescilli bir NoSQL veritabanı kullanıyor . Diğeri ise SQL Server kullanıyor. Bu, bir Japon'un bir Estonyalı ile konuşması gibi. Anlamak neredeyse imkansız. Çözüm nedir diye soracaksınız?
NoSQL veritabanından bir CSV dosyası dışa aktarın. Ardından, CSV dosyasını SQL Server'a içe aktarın. Yeni bir yazılım icat etmek yerine, olgun ve yaygın bir dosya biçimini değiştirin. Bu daha kolay ve daha az zaman alıcı olacaktır.
CSV'nin yararlı olabileceği yaygın senaryolar şunlardır:
- Müşteriler bir banka aracılığıyla bir hizmet şirketine ödeme yapar. Daha sonra banka, ödeme kayıtlarını bir CSV dosyası kullanarak hizmet şirketine sağlar.
- İşletme bünyesinde oluşturulan operasyonel sistemin bir ERP sistemine entegre edilmesi gerekmektedir.
- Veri analizi için çeşitli SharePoint listelerinin bir SQL Server veritabanıyla senkronize edilmesi gerekir.
- Katılım amaçlı bir biyometrik sistemin insan kaynakları sistemine entegre edilmesi gerekmektedir.
Bu JSON veya XML kullanılarak yapılabilse de, CSV kaynaktan üretilmesi daha basittir. Veri gereksinimi hiyerarşik değilse, CSV iyi bir uyum sağlayabilir. SQL Server kullanan hedef sistem ne olacak? Gartner Peer Insights'ta 5 üzerinden 4,5 olarak derecelendirilmiştir . Buluttaki SQL Server veya Azure SQL de 2020'nin en iyi 3 DBMS'sinden biridir . Bu nedenle, CSV'yi SQL Server'a aktarmayı öğrenmek çabaya değer. Bunu nasıl yapacağınızı soracaksınız. Cevap aşağıda ayrıntılı olarak açıklanmıştır.
SQL Server'a CSV Dosyası Nasıl İçe Aktarılır (3 Kolay Yol)
Başlamadan önce, SQL Server'da bir örnek CSV ve hedef tabloya ihtiyacımız var. Aşağıdaki ekran görüntüsünde kontrol edin.
Bu, CSV'yi içe aktarmak için 3 farklı yoldan birini kullanarak SQL Server'a yüklemek için kullanılacaktır. Bu nedenle, actor.csv dosyasının bir kopyasını buradan indirin . Nereye kaydettiğinizi unutmayın. Bu eğitimde daha sonra buna ihtiyacınız olacak.
Bu arada hedef tablo SQL Server'da da aynı şekilde yapılandırılmıştır.
Bu eğitimde, sunucu adı olarak MS-SQLSERVER'ı kullanıyorum. Ve veritabanı adı olarak CSV-MSSQL-TEST'i kullanıyorum.
BULK INSERT'i kullanma
BULK INSERT, SQL Server'da veri dosyalarını bir veritabanı tablosuna aktarmak için kullanılan bir komuttur. CSV dahil olmak üzere çeşitli dosya biçimlerini yüklemek için kullanılabilir. Biraz kodlamayı seviyorsanız, bu doğru yoldur. İşte CSV'yi SQL Server'a toplu olarak eklemenin kodu:
truncate the table first
TRUNCATE TABLE dbo.Actors;
GO
import the file
BULK INSERT dbo.Actors
FROM 'C:DocumentsSkyviacsv-to-mssqlactor.csv'
WITH
(
FORMAT='CSV',
FIRSTROW=2
)
GO
İlk komut hedef tablodaki tüm kayıtları siler. Ardından, BULK INSERT komutu hedef tabloyu ve CSV dosyasını ekler. CSV'nin konumu Evrensel Adlandırma Kuralı'nın (UNC) kurallarına uymalıdır. Ayrıca SQL Server'a hangi dosyayla ilgilendiğini söylemelisiniz. Bu durumda, dosya CSV biçiminde olduğundan FORMAT=CSV. Son olarak, verilerin hangi satırda başladığını belirtin. FIRSTROW = 2 çünkü ilk satır sütun adlarını içerir.
SQL Server Management Studio'dan veya herhangi bir SQL Server aracından BULK INSERT komutunu verebilirsiniz. Bunu yapmanın bir diğer yolu da PowerShell'dir.
TOPLU EK KULLANIMININ ARTILARI VE EKSİLERİ
Artıları:
- Sözdizimini biliyorsanız, yazmak GUI arayüzünü kullanmaktan daha hızlı olabilir;
- Verileri ayrıştırmaya gerek yok. BULK INSERT sizin için yapar. Hedef sütun, veriler için çok küçük bir veri türü kullanıyorsa, bir hata oluşur;
- SQL Server Agent'ta yürütmenin zamanlanması mümkün;
- Ayrıca tek seferlik bir ithalat işi için de harika.
Eksileri:
- Google Drive veya OneDrive gibi bulut depolama alanlarından CSV belirtemezsiniz;
- Hedef veritabanı olarak yalnızca SQL Server'a izin verir;
- Kodlama, çalıştırma ve izleme için teknik bir kişiye ihtiyaç vardır.
SQL Server Management Studio'yu Kullanma CSV Araçlarını İçe Aktarma
Kodlamayı tercih etmiyorsanız, bir diğer yararlı araç SQL Server Management Studio'dan Veri Aktarma (SSMS)'dir. İşte SSMS kullanarak CSV'yi MSSQL tablosuna aktarma yöntemi .
Adım 1. Nesne Gezgini'nden Veritabanları Klasörünü Genişletin
Öncelikle Object Explorer'a gitmeniz ve hedef veritabanını seçmeniz gerekir. Databases klasörünü genişletin. Aşağıdan kontrol edin.
Adım 2. Hedef Veritabanını Seçin
Bu örnekte hedef veritabanı CSV-MSSQL-TEST'tir. Bu veritabanına sağ tıklayın ve ardından Görevler'i seçin . Ardından Verileri İçe Aktar'a tıklayın .
SQL Server Import and Export Wizard penceresi bir karşılama ekranıyla birlikte görünecektir. Buradan Next'e tıklayın .
Adım 3. Düz Dosya Kaynağı Seçin
Bu kısım veri kaynağını seçmenize izin verecektir. Bunun için açılır listeye tıklayın ve Flat File Source'u seçin . Ardından Next'e tıklayın .
Adım 4. CSV Dosyasını Belirleyin
Şimdi dosyayı belirtmeniz gerekiyor. Gözat'a tıklayın ve ekran görüntüsünde gösterildiği gibi CSV dosyasının yolunu belirtin. İndirdiyseniz, indirme konumunu belirtin. Ardından, dosya türünde CSV dosyalarını (*.csv) seçin . Ve sonrasında – actor.csv . Aç'a tıklayarak devam edin .
Adım 5. Sütunları Yapılandırın
SSMS her sütun için doğru veri türlerini algılayamaz mı? Örnek verilerimizde doğru türlerin ve boyutların algılanması kapalı. Bu yüzden bunu kendimiz ayarlamamız gerekiyor.
Profesyonel ipucu: Bir platformdan diğerine veri aktardığınızda, doğru türleri ve boyutları eşleştirmek en iyisidir. Neden mi? Hataları ve baş ağrılarını önlemek için.
Advanced'e tıklayarak başlayalım . Sonra, sütunların bir listesini göreceksiniz. Her birine tıklayın ve türünü ve boyutunu ayarlayın.
Veri türlerine ve boyutlarına bağlı olarak, her sütun için ne ayarlayacağınız konusunda aşağıdaki tabloya bakın.
Sütun Adı | Veri Türü | ÇıktıSütunGenişliği |
İD | dört baytlık işaretli tamsayı [DT_I4] |
Yok |
soy isim | dize [DT_STR] | 20 |
ilk adı | dize [DT_STR] | 20 |
ikinci ad | dize [DT_STR] | 20 |
ek | dize [DT_STR] | 3 |
Adım 6. Hedefi Seçin (SQL Server)
Şimdi, SQL Server'ı içe aktarma işleminin hedefi olarak belirtmeniz gerekir. Bunu yapmak için, Microsoft OLE DB Provider for SQL Server'ı seçin . Ardından, SQL Server adını seçin ve gerekli kimlik bilgilerini girin. Veritabanı adını seçin ve İleri'ye tıklayın .
Adım 7. Veritabanı Tablosunu Belirleyin ve Sütun Eşlemelerini Kontrol Edin
Veritabanını seçtikten sonra, tabloyu da belirtmeniz gerekir. Actors tablosunu seçin.
Daha sonra kaynaktaki sütunların hedefle eşleşip eşleşmediğini görmek için Eşlemeleri Düzenle'yi seçin .
Column Mappings penceresi göründüğünde, kaynak ve hedef sütunların eşleşip eşleşmediğini kontrol edin. Hedef tabloda satırları sil'i veya satırları ekle'yi seçebilirsiniz. Bizim durumumuzda, temizlemeye başlamak istiyoruz. Daha önce BULK INSERT kullanarak içe aktarmayı denediyseniz, hedef tabloda veri mevcuttur. Ve böylece bir hata oluşacaktır. Bunu önlemek için, Hedef tabloda satırları sil'i seçin . Ve sonra, Tamam'a tıklayın .
Son olarak hedef tablo için kurulumumuzu sonlandırmak için İleri'ye tıklayın .
Adım 8. İsteğe bağlı olarak bir SSIS Paketine Kaydedin veya Hemen Çalıştırın
Tüm içe aktarma yapılandırmasını bir SSIS paketine kaydedebilirsiniz. Bunu seçerseniz, paketi düzenli aralıklarla çalışacak şekilde planlayabilirsiniz. Bizim durumumuzda, paketi hemen çalıştıracağız. Daha iyi anlamak için bir sonraki ekran görüntüsüne bakın.
Ardından, seçtiğiniz ayarların özetini görmek için İleri'yi seçin. Veya içe aktarma işlemini çalıştırmak için Son'u tıklayın. Son'u tıklarsanız bir sonraki pencerede ilerlemeyi göreceksiniz .
SSMS'de Import Data kullanarak CSV'yi SQL Server'a aktarmak için hepsi bu kadar . Ayrıca Import Flat File'ı da seçebilirsiniz , ancak her zaman yeni bir tabloya dökülecektir. Ve bunu bir SSIS paketine kaydedemezsiniz.
SQL SERVER YÖNETİM STUDIO İÇE AKTARMA ARAÇLARINI KULLANMANIN ARTILARI VE EKSİLERİ
Artıları:
- Hiçbir kodlamaya gerek yok;
- Eğer sütun eşlemeleri kaynak ve hedefle eşleşiyorsa, bu işe yarar;
- Sadece SQL Server'a değil, birçok veri kaynağına ve hedefine izin verir;
- SSIS kataloğuna kaydetme ve planlama mümkündür, ancak tanımlananlarla sınırlıdır;
- Tek seferlik bir ithalat işi için idealdir.
Eksileri:
- CSV dosyasında sütun türlerinin ve boyutlarının özellikleri yoksa, sütun eşlemesi zahmetli olacaktır;
- CSV dosyasını Google Drive, OneDrive veya benzeri bir bulut depolama alanından almanın bir yolu yok.
Şuradaki videoyada bakabilirsiniz.
Kaynak