DAG (Directed Acyclic Graph) Nedir?

Aysenur Karatay
3 min readJun 16, 2021

DAG’ler veya yönlendirilmiş döngüsel olmayan grafikler, bir dizi aktivitenin kavramsal temsilidir. Aktivitelerin çalışma sırası; her biri bir aktiviteyi temsil eden, bazıları bir aktiviteden diğerine akışı gösteren çizgilerle birbirine bağlanan daireler kullanılarak grafikle gösterilir. Her daire bir “node” olarak ve her çizgi de bir “edge” olarak adlandırılır.

Diagram of a Directed Acyclic Graph

Directed(Yönlendirilmiş) her kenarın tanımlanmış bir yönü olduğu anlamına gelir. Bu nedenle her kenar bir daireden diğerine tek yönlü bir akışı temsil eder. Acyclic(Döngüsel olmayan) ise grafikte döngülerin olmadığı anlamına gelir. Böylece herhangi bir daireden o daireyi diğerine bağlayan bir kenarı izlerseniz grafikte sizi ilk daireye geri götürecek bir yol yoktur.

Grafiğe bakarak A’nın B ile bir ilişkisi olduğu, ancak B’nin A ile ilişkisi olmadığı anlaşılmaktadır. Ayrıca grafikte bir döngü olmadığını da görebiliriz. Örneğin A’dan B’ye gittiğimizde, bizi A’ya geri götüren bir yol yoktur.

DAG’ler Neden Kullanışlıdır? Örnek kullanım yerleri nelerdir?

DAG’ler data processing (veri işleme) akışları dahil olmak üzere birçok farklı akış türünü görsel olarak sunmak için kullanılmaktadırlar. Özellikle birçok farklı veri işleme ortamında veriler üzerinde çeşitli hesaplamalar çalıştırarak, bir veya daha fazla hedefe veri yazmak için hazırlanan, data pipeline olarak adlandırdığımız data processing akışlarında DAG kullanmak oldukça faydalıdır. Büyük ölçekli data processing akışları düşünüldüğünde akışta yer alan çeşitli işlem adımları ve çalışma sıraları, bağımlılıkları daha net bir şekilde gösterilip düzenlenebilir.

DAG’ler hem batch data processing hem de real-time data processing amacıyla oluşturulan data pipeline gösterimlerinde kullanılabilirler.

Batch data processing akışına örnek olarak aşağıdaki DAG’i inceleyebiliriz. Bu örnekte küresel satışlara ilişkin bir veritabanınız olduğunu ve ABD doları cinsinden ifade edilen, global bazda veya bölgeye göre tüm satışların raporlarını oluşturmak istediğinizi varsayalım. Önce veriler satış veritabanından çekilip yüklenir daha sonra farklı para birimlerine göre ayrılarak ABD dolarına dönüştürülür. Bu veriler kullanılarak ilgili nihai raporları oluşturmak için ülkeye/bölgeye göre özetlenebilir:

Batch Processing Data Pipeline

Real-time data processing akışına örnek olarak aşağıdaki DAG verilebilir. Bu örnek akışta sensör verisi gerçek zamanlı olarak işlenir. Veriler önce sensörlerden okunup yüklenir, ardından sensör tipine göre ayrılır. X sensörüne ait veriler bir saniyede özetlenir ve ardından gerçek zamanlı olarak analiz edilir. Herhangi bir kritik durum gözlemlenirse uyarı gönderilir. Veriler ayrıca uzun süreli depolama ve başka analizlerde kullanmak için de kaydedilir. Ayrıca bu akışta Y sensöründen gelen, dakika başına özetlenen ve daha sonra X sensörünün verileriyle aynı depolama alanında depolanan veriler bulunur.

Real-time Processing Data Pipeline

Keyifli okumalar,

--

--

Aysenur Karatay
Aysenur Karatay

Responses (1)