Data Lake
Veri gölü, her biçimdeki ham verileri düşük maliyetli nesne depolamada saklar ve şemayı veriler okunurken uygular. Veri ambarları ve göl ambarlarıyla karşılaştırmasını öğren.
Veri gölü, veritabanı dışa aktarımlarından ve JSON günlüklerinden görüntülere, videolara, ses dosyalarına ve belgelere kadar verileri ham, özgün biçimlerinde depolayan merkezi bir havuzdur. Genellikle düşük maliyetli bulut nesne depolamasında tutulur ve yapı yalnızca veriler okunduğunda uygulanır. O dönemde Pentaho'nun teknoloji direktörü olan James Dixon, terimi 2010'da; temizlenip paketlenmiş şişe suya benzettiği veri ambarını, birçok kullanıcının yararlanabileceği büyük ve doğal hâlindeki veri kütlesiyle karşılaştırmak için ortaya attı. Önceden modelleme gerekmediğinden göl, bir kuruluşun topladığı her şeyi saklayabilir; bu da makine öğrenimi için uygundur: Yarının modeli için gereken eğitim verileri genellikle, saklandığı sırada kimsenin nasıl kullanılacağını bilmediği ham verilerdir.
Veri Gölü Nasıl Çalışır#
Göl, depolamayı hesaplamadan ayırır. Dosyalar Amazon S3, Google Cloud Storage veya Azure Data Lake Storage gibi nesne depolama alanlarında tutulur; Spark, Trino veya bir Python süreci gibi motorlar dosyaları doğrudan okur. Böylece her ekip, verileri kopyalamadan kendi hesaplama kaynaklarını ölçeklendirebilir. Tablo verileri genellikle Apache Parquet gibi açık sütunlu biçimlerde tutulurken görüntüler ve videolar sıradan dosyalar olarak saklanır; çoğu zaman bunların meta verilerini ve etiketlerini içeren JSON veya Parquet bildirimleriyle birlikte bulunurlar.
Çoğu göl, Databricks'in madalyon mimarisi adını verdiği yaklaşımda olduğu gibi, arıtma düzeylerine göre bölgelere ayrılır: Ham (bronz) bölge verileri geldikleri hâliyle korur, temizlenmiş (gümüş) bölge doğrulanmış ve yinelenenleri kaldırılmış verileri barındırır, düzenlenmiş (altın) bölge ise raporlamaya veya eğitime hazır tabloları ve veri kümelerini içerir. AWS Glue Data Catalog, Hive Metastore veya Unity Catalog gibi bir meta veri kataloğu, her veri kümesinin içeriğini, sahibini ve kimlerin okuyabileceğini kaydeder. Bu katalog ve veri temizleme olmadan göl, kimsenin bulamadığı, güvenmediği veya güvenle silemediği dosyaların bulunduğu bir "veri bataklığına" dönüşür.
Okuma Sırasında Şema#
Göl, veriler okunurken şema uygular; buna okuma sırasında şema denir. Yazıcılar, iki kaynak alanlar konusunda uyuşmasa bile, verileri var olur olmaz depolayabilir ve her okuyucu ihtiyaç duyduğu sütunları ve türleri kendisi seçer. Bu örnek, farklı alanlara sahip iki ham JSON dosyası yazar ve ardından ikisini de Polars ile tek bir şema kullanarak okur:
import json
from pathlib import Path
import polars as pl
# Ham bölge: iki kamera, her biri kendi alanlarına sahip algılama olaylarını JSON satırları olarak yazar
Path("lake/raw").mkdir(parents=True, exist_ok=True)
Path("lake/raw/dock-1.jsonl").write_text(json.dumps({"label": "forklift", "conf": 0.91}))
Path("lake/raw/dock-2.jsonl").write_text(json.dumps({"label": "person", "conf": 0.62, "lux": 120}))
# Okuma sırasında şema: bu okuyucu, dosyaları sorgularken sütunları ve türleri seçer
schema = {"label": pl.String, "conf": pl.Float32, "lux": pl.Int32}
events = pl.scan_ndjson("lake/raw/*.jsonl", schema=schema, include_file_paths="source")
print(events.collect())Sonuçta label, conf, lux ve source sütunlarını içeren iki satır bulunur. İlk kamera hiçbir zaman lux kaydetmediğinden bu alanın değeri null olarak döner; source ise her satırın hangi ham dosyadan geldiğini kaydeder. İkinci bir iş, aynı dosyaları yeniden yazmadan farklı bir şemayla okuyabilir.
Veri Gölü ve Veri Ambarı ve Lakehouse Karşılaştırması#
- Veri ambarı: Temizlenmiş, yapılandırılmış tabloları sabit bir şemada depolar; veriler yüklenirken şemaya uymalıdır (yazma sırasında şema). Bu işlem genellikle çıkarma, dönüştürme, yükleme (ETL) adımından sonra yapılır. Snowflake, BigQuery ve Redshift gibi ambarlar SQL ve iş zekâsı sorgularını hızlı yanıtlar, ancak görüntüler, metinler ve diğer yapılandırılmamış veriler için daha az esneklik sunar.
- Veri gölü: Her biçimdeki veriyi düşük maliyetle depolar ve yükleme sonrasında dönüştürür (ELT); bu yaklaşım keşif, veri madenciliği ve makine öğrenimine uygundur. Sıradan göl dosyalarında işlem desteği bulunmadığından eşzamanlı yazıcılar, okuyucuların yarım yazılmış sonuçları görmesine neden olabilir.
- Lakehouse: Apache Iceberg, Delta Lake ve Apache Hudi gibi açık tablo biçimleri aracılığıyla göl depolamasına ambar özellikleri ekler. Bu biçimler ACID işlemleri, şema zorunluluğu ve tablonun önceki sürümlerine zaman içinde erişme olanağı sağlar. Databricks araştırmacıları bu mimariyi 2021 tarihli bir makalede tanımladı.
Makine Öğreniminde Veri Gölleri#
Bilgisayarlı görü ekipleri için göl; her kamera karesini, çekim meta verilerini, açıklamalarını ve dağıtılan modellerin kareler üzerinde ürettiği tahminleri barındırır. Otonom araç programları filolarından sürüş günlüklerini yükler ve etiketleyip eğitim kümelerine eklemek üzere yağmurda gece görülen bir yaya gibi nadir sahneleri bulmak için bu günlükleri tarar. Sağlık hizmetlerinde, tek bir gölde toplanan kimliksizleştirilmiş taramalar ve raporlar, tıbbi görüntü analizi modellerine veri sağlar. İnceleme ve yeniden etiketleme için göle geri aktarılan üretim tahminleri bir veri çarkını tamamlar; tablo anlık görüntüleri veya DVC gibi araçlar da her modelin tam olarak hangi veri sürümüyle eğitildiğini sabitler. Özellik depoları ve vektör veritabanları genellikle gölün üzerine kurulur ve ham dosyalardan türetilen özellikleri veya gömüleri sunar.
Ultralytics Platform, Amazon S3, Google Cloud Storage veya Azure Blob Storage içindeki bir klasörü kopyasını yüklemeden eğitim veri kümesine dönüştürebilir: salt okunur kimlik bilgileriyle her içe aktarmada 500.000'e kadar nesneyi yerinde dizine ekler, görüntülerin yanındaki YOLO .txt etiket dosyalarını ayrıştırır ve klasör adlarından train, val ve test bölümlerini atar. Dizinlenen her görüntü nesne sürümüne sabitlenir; böylece göldeki dosyası üzerine yazılan herhangi bir görüntü için Platform işlemi güvenli biçimde durdurur.










