Kaosu Kâra Dönüştürmek: ETL Sürecini Anlamak
Yayınlanan: 2022-03-11Firmaların hayati karar alma bilgilerini iş kullanıcılarına sunmasını engelleyen en kritik hatalardan biri, bir veya daha fazla veri kaynağından gelen güvenilir verilerin tek bir yerde toplanmış, organize edilmiş ve kullanıma hazır olmamasıdır.
Bu senaryoyu hayal edin; Amerika Birleşik Devletleri'nin her yerinde perakende satış noktaları olan bir cep telefonu kılıfı şirketinin BT yöneticisisiniz. Bilgiler mevcut ancak farklı konum ve formatlarda olduğu için yönetim kurulunuz satışa dayalı kararlar almakta zorlanıyor. Yöneticilerden biri, bir sonraki yönetim kurulu toplantısında sunmak üzere tüm satış noktalarından satış bilgilerini içeren bir gösterge panosu oluşturmanızı ister.
Farklı formatlar ve yapılar nedeniyle bilgileri birleştirmenin neredeyse imkansız olduğunu zaten biliyorsunuz. Perakende kiosklarından bazıları hala Oracle veritabanında tescilli bir sistem kullanıyor. Daha büyük mağazalar yeni bir Salesforce sistemi kullanıyor. Sistem geçişi sırasında faaliyete geçen en yeni kiosklar, satışları hesaplamak için kullanılan ortak elektronik tablolara sahiptir.
Farklı konumlardan, formatlardan ve yapılardan gelen tüm verileri, gösterge panosu oluşturmak için erişilmeye hazır benzersiz bir veritabanında nasıl harmanlayacaksınız?
ETL Temelleri
ETL, Ayıkla, Dönüştür ve Yükle anlamına gelir. ETL, şirketinizin halihazırda sahip olduğunuz verilerle daha fazla satış yapmasına yardımcı olmak için bu karmaşık veri deposunu düzenli, güvenilir ve tekrarlanabilir bir sürece dönüştürmek için tasarlanmış bir süreç grubudur.
Bizim durumumuzda, bir Oracle veritabanından (çoğu kiosk), Salesforce'tan (mağazalardan) ve elektronik tablolardan (daha yeni kiosklar) veri alacağız, verileri çıkaracağız, gerektiğinde dönüştüreceğiz ve tek bir veri ambarı veritabanına yükleyeceğiz. raporlama araçları tarafından erişilir ve gösterge tabloları ve puan kartları oluşturmak için kullanılır.
Süreci detaylandırmak için ETL'nin üç adımını inceleyelim.
çıkarma
Çıkarma, tek veya birden çok kaynaktan veri alma işlemidir. Kaynaklar, belgeler, elektronik tablolar, CSV dosyaları, düz dosyalar, Oracle, MySQL, SQL Server gibi ilişkisel veritabanları, ilişkisel olmayan veritabanları vb. gibi farklı biçimlere ve yapılara sahip olabilir.
İki ana çıkarma türü vardır: tam ve kısmi .
- Tam çıkarma , ilk çıkarmalar için veya veri miktarı ve dolayısıyla çıkarma süresi kabul edilebilir olduğunda kullanılır.
- Tüm verilerin tekrar çıkarılmasına gerek olmadığında veya veri miktarı tam bir çıkarmayı imkansız kılacak kadar büyük olduğunda kısmi çıkarma önerilir. Kısmi bir ayıklamada, yalnızca güncellenmiş veya yeni veriler ayıklanacaktır.
Bu yönlere ek olarak, tam veya kısmi çıkarma arasında seçim yaparken başka hususlar da gereklidir ve bunlardan birini açıklamak istiyorum: veri kullanılabilirliği ve bütünlüğü .
Bu, bir bütünlük hatasına neden olabilecek verileri ortadan kaldırarak çıkarma için yalnızca tamamlanmış işlemlerin dikkate alınacağı anlamına gelir. Örneğin, bir mühendisin bilgisini 10 soruyla belirlemek için çevrimiçi bir test. Bir mühendis testin ortasındaysa ve birkaç soruyu yanıtlamış ancak henüz bitirmemişse, çıkarma işlemi tamamlanmamış testlerden gelen soruları okuyamaz. Bütünlük hatasına neden olabilir.
dönüşüm
Verileri çıkardıktan sonra dönüştürme sürecine başlayabiliriz: kabul edilebilir bir veri kalitesi düzeyini korumak için verileri iş kurallarına ve teknik kriterlere göre temizleyin, değiştirin ve dönüştürün.
Bir dizi faktöre bağlı olarak, bir evreleme alanının kullanılması gerekli olabilir. Hazırlama alanı, dönüştürülecek veri kaynaklarından çıkarılan verileri geçici olarak depolamak için kullanılan bir ara depolama alanıdır.
Bazı projelerde, normalde az miktarda veriye sahip olanlarda, hazırlama alanlarını kullanmaya gerek yoktur, ancak çoğu proje bunu kullanır.
Dönüşüm aşamasında gerçekleştirilen bir dizi görev vardır:
- Seçim: çıkarılan verileri seçme kriterleri. Seçim, ekstraksiyon aşamasında, dönüşüm aşamasında veya her iki aşamada da yapılabilir.
- Entegrasyon: çıkarma aşamasından hazırlama alanına kadar verilerin kombinasyonu. Bu kombinasyon, çıkarılan verilere dayalı olarak hazırlama alanındaki verilerin eklenmesi, silinmesi ve güncellenmesi anlamına gelir.
- Birleştirmeler: SQL birleşimlerine benzer şekilde ayıklanmış verileri birleştirmek için kullanılır (iç birleşim, sol birleşim, sağ birleşim, tam birleşim, vb.)
- Temizleme veya temizleme: Veri kalitesini artırmak için tutarsız veya geçersiz verileri veya hatalı verileri kaldırır. Birden çok veri kaynağıyla çalışmak, aşağıdakiler gibi temizlenmesi gereken veri sorunları yaşama olasılığını artırır:
- Bilgi bütünlüğü (var olmayan kategoriye sahip müşteri)
- Eksik değerler (kimliği olmayan müşteri)
- Benzersizlik (aynı SSN'ye sahip birden fazla kişi)
- Yazım Hatası (Sun Diego, Cannada, L.Angeles)
- Çelişkili değerler (Alex dob 04.27.1974, Alex dob 04.14.2000)
- Ve bircok digerleri
- Özetler: sonraki kullanım için veri kümelerini özetleyin
- Toplamalar: gruplar halinde derlenen ve özetlenen veriler
- Konsolidasyonlar: tek bir veri kümesinde birleştirilmiş birden çok kaynaktan veya yapıdan gelen veriler
İşte bazı yaygın dönüşüm türleri:
- Yinelenen verileri sil
- Bölme ve birleştirme
- Dönüşümler (tarih, saat, sayı maskeleri, ölçümler)
- Kodlama (Erkek - M)
- Hesaplamalar (item_value = unit_Fiyat * miktar)
- Anahtar üretimi
Yükleniyor
Son olarak, ETL'deki son işlem, verileri hedefe yüklemektir. Yükleme, dönüştürülmüş verileri (bir hazırlama alanından veya değil) depoya, normalde bir veri ambarı veritabanına ekleme eylemidir.
Üç ana yükleme verisi türü vardır: tam veya başlangıç, artımlı ve yenileme.
- Tam veya başlangıç , ayıklanmış ve dönüştürülmüş verilerin eksiksiz bir yükü anlamına gelir. Hazırlama alanındaki tüm veriler, iş kullanıcıları için hazır hale getirilmek üzere nihai varış noktasına yüklenecektir.
- Artımlı yükleme , dönüştürülmüş verileri nihai hedefteki verilerle karşılaştırma ve yalnızca yeni verileri yükleme işlemidir. Artımlı yük, aşağıda açıklanan yenileme yükü ile birlikte kullanılabilir.
- Yenileme yükü , orijinal kaynakta yapılan değişiklikleri yansıtmak için nihai hedefteki verileri güncelleme işlemidir. Yenileme tam veya artımlı olabilir.
Özetle, büyüklüğünden bağımsız olarak her şirket, halihazırda var olan bilgileri entegre etmek ve daha önce kullanılamayan verileri yeni bir gelir kaynağına dönüştürerek karar verme için daha da büyük bir bilgi zenginliği oluşturmak için ETL süreçlerini kullanabilir.

Test yapmak
Test, ETL'nin en önemli aşamalarından biridir ve yine de en çok gözden kaçanlardan biridir.
Farklı kaynaklardan ve yapılardan gelen verileri dönüştürmek ve bir veri ambarına yüklemek çok karmaşıktır ve hatalara neden olabilir. En yaygın hatalar yukarıdaki dönüştürme aşamasında açıklanmıştır.
Veri doğruluğu başarının anahtarıdır, yanlışlık ise felaket için bir reçetedir. Bu nedenle, ETL profesyonellerinin tüm süreç boyunca veri bütünlüğünü garanti etme misyonu vardır. Her aşamadan sonra bir test yapılmalıdır. İster tek bir kaynaktan ister birden fazla kaynaktan veri ayıklanıyor olsun, verilerde herhangi bir hata olup olmadığı kontrol edilmelidir.
Aynısı herhangi bir dönüşümden sonra yapılmalıdır. Örneğin, dönüştürme aşamasında verileri özetlerken, hiçbir verinin kaybolmadığından ve toplamların doğru olduğundan emin olmak için veriler kontrol edilmelidir.
Dönüştürülen veriler veri ambarına yüklendikten sonra tekrar test işlemi uygulanmalıdır. Yüklenen verilerin dönüştürülmüş verilerle ve ardından çıkarılan verilerle karşılaştırılması gerekir.
Cep telefonu kılıfı şirketi örneğimizde, üç farklı kaynakla (tescilli Oracle veritabanı, Salesforce ve elektronik tablolar) ve farklı formatlarla çalışıyoruz. Test aşaması, orijinal kaynaklardan alınan örnek verileri kullanabilir ve çıkarmanın hatasız gerçekleştiğini garanti etmek için bunları hazırlama alanındaki verilerle karşılaştırabilir.
Bu durumda üç farklı lokasyondan (mağazalar, eski kiosklar, yeni kiosklar) satış bilgileri olabilen örnek veriler, orijinal kaynakla karşılaştırılacaktır. Varsa, farklılıklar, kabul edilebilir olup olmadıklarını veya hata olup olmadıklarını görmek için analiz edilmelidir.
Hatalar bulunursa, bunların düzeltilmesi gerekir ve bunları düzeltmeniz gerekirse alınması gereken birkaç karar vardır: Orijinal veriler değiştirilmeli mi? Bunu yapabilmek mümkün mü? Hatalar orijinal kaynakta düzeltilemiyorsa, bazı dönüşümlerle düzeltilebilir mi?
Bazı durumlarda, hatalı veriler ortadan kaldırılmalı ve sorumluları bilgilendirmek için bir uyarı tetiklenmelidir.
Bazı test örnekleri:
- Verilerin doğrulanması gerekiyor
- Veri kalitesi
- Verim
- Veri kuralları
- Veri modelleme
Kerestecilik
ETL süreçlerinin günlüğe kaydedilmesi, bakımı kolay ve düzeltilmesi kolay sistemlere sahip olmanızın temel garantisidir.
Doğru günlük kaydı sürecine sahip bir ETL, tüm ETL operasyonunu sürekli iyileştirme durumunda tutmak ve ekibin veri kaynakları, veri biçimleri, dönüşümler, hedefler vb. ile ilgili hataları ve sorunları yönetmesine yardımcı olmak için önemlidir.
Sağlam bir günlük süreci, ekiplerin sorunları daha hızlı ve kolay bir şekilde belirlemelerini sağlayarak zamandan tasarruf etmelerine yardımcı olur ve lider mühendislerin sorunu doğrudan saptamak için daha az zamana ihtiyacı vardır. Bazen, tonlarca veriyi çıkarmanın ortasında hatalar meydana gelir ve bir günlük olmadan, sorunu belirlemek zordur - bazen neredeyse imkansızdır. Günlükler olmadan, tüm süreç yeniden çalıştırılmalıdır. Ekip, günlükleri kullanarak soruna neden olan dosyayı ve satırı hızla belirleyebilir ve yalnızca bu verileri düzeltebilir.
Günlüklerin bu kadar önemli olmadığı tek durum, işlemin manuel olarak çalıştığı ve elle izlenebilen az miktarda verinin olduğu çok küçük otomatik olmayan sistemlerdir.
Günlükler otomasyonu iyileştirir. Otomatik olarak çalışan büyük miktarda veri içeren ETL işlemleri, günlük sistemlerine ihtiyaç duyar. İyi planlanmış ve yürütülmüşlerse, bir günlük kaydı sistemi oluşturmak için harcanan tüm çaba, daha hızlı hata tanımlama, daha güvenilir veriler ve günlük dosyalarında bulunan iyileştirme noktaları şeklinde temettü ödeyecektir.
Bir günlük sistemi oluşturmanın üç ana adımı vardır: oluştur, arşivle ve analiz et .
- Oluştur , ETL işlem hatlarının yürütülmesi sırasında neler olup bittiğini belgeleme işlemidir: işlem başladığında, hangi dosya veya tablonun ayıklandığı, hazırlama alanında kaydedilen veriler, hata mesajları ve daha fazlası. Mühendislere yardımcı olabilecek tüm önemli bilgiler günlüğe kaydedilmelidir. Uyarı : Sadece zaman ve alan tüketecek ve yardımcı olmayacak kadar çok bilgi üretmemeye dikkat edin.
- Arşiv günlük verileri, hataları belirlemek veya iyileştirme arayan mevcut senaryoyla karşılaştırmak için geçmiş senaryoları aramak için geçmiş yürütmelerin bir kaydını tutmak anlamına gelir. Kaydetmek için tarihteki belirli bir noktanın uygunluğunu kontrol etmek önemlidir - yapının birçok kez değiştiği uzun zaman öncesine ait veriler saklanmaya değmez.
- Analiz et . Log analizi çok önemlidir. Analiz edilmeyen tonlarca veriyi depolamak mantıklı değil. Verileri oluşturmak ve depolamak sadece zaman ve paraya mal olur. Günlük analizi, yalnızca hataları aramaya yardımcı olmak için değil, aynı zamanda iyileştirme noktalarını belirlemek ve genel veri kalitesini artırmak için de önemlidir.
Verim
ETL süreçleri tonlarca veriyle çalışabilir ve hem bunları kurmak için harcanan zaman hem de verileri işlemek için gereken hesaplama kaynakları açısından çok maliyetli olabilir. Bir entegrasyonu planlarken mühendisler, kullanılan tüm verilerin gerekliliğini akıllarında tutmalıdır. Yapılacak en iyi şey, gereksiz verileri taşımak için zaman ve para harcamak yerine, hedeflere ulaşmak için minimum miktarda veri ile çalışmaktır. Ayrıca, veri miktarlarının zamanla artma eğiliminde olduğunu unutmayın, bu nedenle gelecekteki ihtiyaçlarınızı göz önünde bulundurmaya çalışın.
Bir kayıt sistemi tasarlamak için ne kadar çaba harcanmalıdır?
İşlenecek verilerin miktarı ve sıklığı gibi bir dizi farklı faktöre bağlıdır. Az veri içeren küçük sistemler, gelişmiş kayıt sistemlerine yatırım yapmaya gerek kalmadan manuel olarak yönetilebilir.
Büyük miktarda veriye, birçok farklı sürece, farklı veri kaynaklarına ve formatlara ve karmaşık işlem hatlarına sahip şirketler, kayıt sistemleri oluşturmaya yatırım yapmalıdır. Daha önce de belirttiğimiz gibi, iyi bir günlük sistemi çok zaman ve para tasarrufu sağlayabilir.
Daha açık bir yaklaşım için, şirket büyüklüğü, veri miktarı ve entegrasyon sıklığı ne olursa olsun, bir ETL süreci karlı olmalıdır. Ekonomist Milton Friedman'ın dediği gibi, zamana, paraya ve teknik kaynaklara yapılan bir yatırım getiri sağlamalıdır: "Bedava öğle yemeği yoktur."
Özetle, bir ETL süreci, şirketlerin halihazırda sahip oldukları ancak doğru şekilde kullanılmayan verilerle kârlarını artırmalarına yardımcı olabilir. ETL boru hatları, farklı sistemleri, önemli bilgileri içeren elektronik tabloları ve farklı departmanlar ve şubelere yayılmış diğer veri bölümlerini entegre ederek kuruluşların verilerinden en iyi şekilde yararlanmasına olanak tanır.