Veri kirliliği

Samed Ertugrul
6 min readJan 4, 2024

--

[English below]

Tanımlaması ayrı dert, bulması ayrı dert, çözmesi ayrı dert, tekrarlamasını engellemek ayrı dert. Merhaba veri kirliliği…

Photo by Ana Itonishvili on Unsplash

Kirliliğin tanımı kısaca nedir?

Bir şeyin olmaması gereken bir yerde bulunması durumu. Sahildeki kumlar güzeldir, yeter ki arabanızın içinden çıkıyor olmasın.
Konuya çok da net bir giriş yapmadığımın farkındayım, haydi gelin toparlayalım…

Dert 1: Kirliliği tanımlamak

Bir verinin kirli olduğuna nasıl karar verirsiniz? Aslında bunun cevabı tam da girişte bahsettiğim olmaması gereken yerde bulunan veriyi tespit ettiğiniz anda başlar. Bir verinin bir yerde olması ya da olmaması gerekliliğine nasıl karar veririz peki? İşte asıl zor olan kısım bu.

Veriyi analiz eden biri olarak kendi kişisel tecrübelerinizi bir yana bırakıyorsanız hata ediyorsunuz demektir. Ancak tamamen kişisel tecrübelerinizle hareket ediyorsanız da hata yapıyorsunuz demektir. Bir verinin bir yerde bulunup bulunmaması gerekliliği hem verinin hem de işin doğasına bağlıdır. Örneğin bir müşteri analizi yapıyorsanız müşterinizi tekilleyecek bir kimlik numarası bulunmaması sizin için büyük sorun olabilecekken, anonimleştirilmiş olması gereken bir veriye bakıp analiz yapacaksanız bu tarz bir verinizin olması sıkıntıdır.

Dolayısıyla kirliliği tanımlarken bu veriden analiz yapacak tüm paydaşların bir araya gelip ortak bir kirlilik tanımı yapması şarttır. Bunu yaparken de mutlaka sektörel birikimler ve yasal zorunluluklar dikkate alınmalı, veri birden fazla kaynaktan gelecekse bu kaynakların birbirleriyle nasıl eşleştirilebilceği konusu mutlaka bir kural setine bağlanmalıdır.

Dert 2: Kirliliği bulmak

Tecrübeyle sabittir ki bir önceki maddede bahsettiğim kural setleri siz elinizdeki veriyi sorguladıkça yetersiz kalmaya başlayacaktır. Ayrıca eğer oluşturduğunuz kural setlerini kurum geneline yaymayı başaramazsanız ve değişen iş kurallarına uygun şekilde güncel tutamazsanız kirlilik yaşamaya devam etmeniz kaçınılmazdır. Peki bunun çözümü yok mu? Aslında tam olmasa da var. Kendimce bulduğum tabirle “fare kapanları” kurabilirsiniz. Nedir peki bu fare kapanları? Dünya standartlarına ya da yasalara uygun oluşturulması zorunda olan veriler için basit kontrol kurguları (örneğin kimlik numarası validasyonu gibi) yazabilirsiniz. Bunlar kolay kolay değişmeyecektir, değişseler bile mutlaka gündelik hayatınıza da etkisi olacağından bunu fark etmemeniz mümkün olmayacaktır.

Dert 3: Kirliliği çözmek

Gelin bir konuda anlaşalım, veri kirliliğini tamamen çözmeniz asla mümkün olmayacak. Yapabileceğiniz tek şey kabul edilebilir en düşük kirlilik oranını tespit etmek ve bu oranın korunması için veriyi oluşturan, analize hazırlayan ve bu analizleri raporlarında kullanan birimlere sorumluluk vermek olacaktır. Bu ekipler düzenli olarak ilk maddede belirlediğiniz kural setlerine uygun olarak verileri incelemeli, aykırılık tespit ettiklerinde bunun bir hatadan dolayı mı olduğunu yoksa mevcut kuralların güncellenmesi gerektiğine mi karar vermelidirler. Peki veriniz çok ama çok büyükse ve/veya çok fazla kaynağınız varsa, o zaman ne yapacaksınız? İşte bu durumda benim tavsiyem yukarıda bahsettiğim fare kapanlarının sizin organizasyonunuz için özelleştirilmiş versiyonlarını oluşturup otomatik olarak çalıştırabileceğiniz hale getirmeniz, bir anomali tespiti durumunda da sizi uyaracak bir yapı kurmanız olacaktır. Bunun en iyi yapılacağı yer ise kaynak sistemden analitik ortama veriyi aktaran ETL/ELT süreçleri olacaktır.

Dert 4: Kirliliğin tekrarlamasını engellemek

Bu kısım tamamen bir kültürel farkındalık konusu. Tespit ettiğiniz veri kirliliğinin kaynağını bulup düzeltilmesi için geri bildirimlerde bulunmanız gerektiğinin zaten farkındasınızdır. Ancak bu düzeltme işlemi sandığınız kadar kolay olmayabilir. Hem düzeltme eforunu tespit etmeli hem de bu efor sebebiyle oluşacak maliyetin veri kirliliği sebebiyle kaybetme ihtimaliniz olan maliyetten daha düşük olduğuna ilgili kişileri ikna etmeniz gerekir. Ayrıca benzer bir hatanın tekrar oluşmaması için de hataya sebep olan eksik iş kuralını veren ya da kodu yazan kişileri eğitmeniz gerektiğini de unutmamalısınız.

Pek keyifli bir yazı olmadı farkındayım ama veri kirliliği malesef sektörel bir gerçek. Belki bir sonraki yazımda daha “neşeli” konulara değinirim...

Data pollution

Defining it is a challenge, finding it is another challenge, solving it is another challenge, and preventing it from recurring is yet another challenge. Hello data pollution…

What is the definition of pollution in short?

Something being in a place where it shouldn’t be. The sands on the beach are beautiful, as long as they’re not coming out of your car. I know I didn’t start the topic very clearly, so let’s get it together…

Challenge 1: Defining pollution

How do you decide that data is dirty? Actually, the answer to this starts when you identify the data that should not be in a certain place. So, how do we decide if data should be in a certain place or not? This is the really difficult part.

If you are analyzing the data, and you set aside your personal experiences, you are making a mistake. But if you rely entirely on your personal experiences, you are also making a mistake. The necessity of whether data should be in a certain place or not depends on the nature of both the data and the job. For example, if you are doing customer analysis, the absence of a unique identifier for your customer may be a big problem for you, while looking at data that needs to be anonymized and analyzing it, having this kind of data is a problem.

Therefore, when defining pollution, it is essential for all stakeholders who will analyze this data to come together and make a common definition of pollution. In doing so, sectoral accumulations and legal obligations must be taken into account, and if the data will come from multiple sources, the issue of how these sources can be matched with each other must definitely be linked to a rule set.

Challenge 2: Finding pollution

It is proven by experience that the rule sets I mentioned in the previous paragraph will become inadequate as you query the data in your hands. Also, if you cannot spread the rule sets you create to the entire organization and cannot keep them up to date in line with changing business rules, it is inevitable that you will continue to experience pollution. So, is there no solution to this? Actually, there is, albeit not perfect. You can create “mouse traps” as I like to call them. What are these mouse traps, then? For data that must be created in accordance with world standards or laws, you can write simple control structures (such as ID number validation). These will not change easily, and even if they do, you will definitely notice the impact on your daily life.

Challenge 3: Solving pollution

Let’s agree on one thing, you will never be able to completely solve data pollution. The only thing you can do is to identify the lowest acceptable pollution rate and assign responsibility to the units that create, prepare for analysis, and use the data in their reports for maintaining this rate. These teams should regularly review the data in accordance with the rule sets determined in the first point, and when they detect anomalies, they should decide whether it is due to an error or whether the existing rules need to be updated. So what will you do if your data is very, very large and/or you have a lot of data sources? In this case, my advice is to create customized versions of the mouse traps I mentioned above for your organization and make them automatically executable, and to establish a system that will alert you in case of anomaly detection. The best place to do this is in the ETL/ELT processes that transfer data from the source system to the analytical environment.

Challenge 4: Preventing pollution from recurring

This part is entirely a matter of cultural awareness. You’re already aware that you need to provide feedback to identify and correct the source of data pollution. However, the correction process may not be as easy as you think. You need to identify the effort required for correction and convince the relevant individuals that the cost incurred due to this effort is lower than the potential cost of losing data due to pollution. Additionally, don’t forget that you need to train the individuals who provided the incomplete business rule or wrote the code to prevent a similar error from occurring again.

I know it wasn’t a very enjoyable read, but unfortunately, data pollution is an industrial reality. Perhaps in my next article, I’ll touch on more “cheerful” topics…

--

--