Talend Etl’de Database'e Veri Yazdırma (Output)
- Fazlı Keleş

- 26 Ağu 2023
- 2 dakikada okunur
Güncelleme tarihi: 21 Nis 2024
Bu yazımızda yaptığımız işlemler sonucunda elimizde olan veriyi Databaseye nasıl yazdıracağımızı göreceğiz.
Öncelikle Talend üzerinde bir takım işlemler yaptığımızı ve elimizde bir sonuç kümesi olduğunu farz edelim biz hızlı anlaşılması için bir txt dosyasının içeriğini alacağız. Bunun için önce Palette alanından tFileInputDelimited’ı alıyorum ve buraya bir txt dosyasını yüklüyorum ve TLogRow ile de bunun başarıyla bitip bitmediğini gözlemleyeceğim ki ona göre bir sonraki adıma geçelim. Eğer bunu bilmiyorsanız bu link üzerinden bunu detaylıca anlattığım yazıma gidip oradan öğrenebilirsiniz yazının amacından sapmaması adına sıfırdan onu yazmayacağım.
Palette alanından tDBOutput nesnesini alıyoruz ardından bu nesneye çift tıklayıp hangi Database’ye yazdıracağımızı seçiyoruz eğer bu Database için yüklenmesi gereken bir şey varsa Talend bizi uyarıyor ve hangi dosyayı yükleyeceğimizi de belirtiyor bu şekilde yüklememizi yapıyoruz. Ben bu örnekte Sql Server kullanıyor olacağım. Databaseyi seçtikten sonra component kısmında ayarlamaları yapıyoruz ben bu örnek için test adında bir DB oluşturdum ve EtlUser diye bir kullanıcı oluşturdum. Kendi içeriğin ekran görüntüsünü paylaşıyorum bu arada kendi bilgisayarımdaki veri tabanına bağlanacağım için host kısmına “127.0.0.1” yazdım eğer siz uzak sunucuya bağlanacaksanız ip adresini ona göre düzenleyebilirsiniz.

Burda sizi uyarmam gereken nokta Edit schema konusu. Database özelliklerini ayarladıktan sonra TLogRow’a sağ tıklayıp Row -> Main seçin ve onu da tDBOutput nesnesinin üzerine bırakıp bu şekilde veriyi tLogRow üzerinden tDBOutput nesnesine taşımış olursunuz. Bu işlem bittikten sonra tDBOutput nesnesinin componentine tekrar gelin bu sefer Edit schema’nın yanında Sync columns özelliği gelecek buna tıklayın böylelikle kolonların isimlerinin ve tiplerinin otomatik olarak ayarlandığını göreceksiniz. Bu işlem de bittikten sonra Component kısmından Run edip sonuçları DB den kontrol edebilirsiniz.
Eğer "Exception in component tDBOutput_1 (generalWork) java.sql.SQLException: Line 1: Length or precision specification 0 is invalid." şeklinde bir hata alırsanız tDBOutput nesnesinin Component kısmına gelin oradan "Sync Columns" butonuna tıklayın ve iki tablodaki "Length" özelliği boş ise bu değerleri doldurun ve tekrar çalıştırın hata çözülmüş olacak. Ayrıca bu kullanıcının gerekli yetkilere sahip olması gerektiğini de unutmayalım mesela Talend üzerinden Create Table yapmak istiyorsak bu özelliği SQL Server tarafında bu kullanıcıya vermiş olmamız gerekiyor yoksa yine hata alırız.

Takıldığınız yerde soru sormaktan çekinmeyin. İyi çalışmalar.



Yorumlar