Process Mining Event Log Nasıl Oluşturulur?

Neler Öğreneceksiniz

Bu rehberde sıfırdan bir process mining event log oluşturmayı öğreneceksiniz. Her event log’da mutlaka bulunması gereken üç temel kolonu ele alacak, gerçek bir örnek üzerinden ilerleyecek ve ilk event log’unuzu hem Excel hem de SQL kullanarak nasıl oluşturacağınızı göstereceğiz.

Process mining event log nedir?

İlgili: süreç iyileştirme hakkında daha fazla bilgi edinin ve sisteminize uygun veri şablonlarını keşfedin. Ayrıca neden hazır connector’leri değil de basit veri şablonlarını tercih ettiğimizi anlatan yazımızı okuyun: why we skip out-of-the-box connectors.

Process mining event log, iş süreçlerinizde ne olup bittiğini kaydeden basit bir veri tablosudur. Bunu, sisteminizden geçen her case’in her adımını not eden bir günlük gibi düşünün. Process mining yazılımı bu günlüğü okur ve sürecinizin gerçekte nasıl işlediğini gösteren görsel diyagramlar üretir.

Her event log satırı için üç temel bilgi şarttır:

KolonAnlamıÖrnek
Case IDİlişkili event’leri aynı grupta toplayan benzersiz kimlikSipariş #12345
TimestampEvent’in gerçekleştiği zaman2025-01-15 09:30:00
ActivityNe olduğu”Sipariş Verildi”

Hepsi bu. Yalnızca bu üç kolonla process mining yapmaya başlayabilirsiniz. Müşteri adı, sipariş tutarı veya çalışan ID’si gibi diğer her şey, analizi zenginleştiren isteğe bağlı attribute’lardır.

Olaylar ve Aktiviteler Arasındaki Farkı Anlamak

Detaya girmeden önce sık karıştırılan bir noktayı netleştirelim.

Bir aktivite, “Kargoya Verildi” veya “Ödeme Alındı” gibi bir eylem türüdür; bir kategori ya da etiket gibi düşünebilirsiniz.

Bir olay, o aktivitenin belirli bir gerçekleşmesidir. Sipariş #12345, 15 Ocak saat 14:30’da kargoya verildiyse bu bir olaydır.

Olay günlüğünüz (event log) olaylardan oluşur; ancak her olayın bir aktivite adı vardır. Pratikte bu terimler bazen birbirinin yerine kullanılır, sorun değil. Şunu unutmayın: aktiviteler “ne”yi, olaylar ise “kime, ne zaman oldu”yu anlatır.

Örneğimiz: Pizza Palace sipariş sistemi

Rehberi pratik kılmak için kurgusal bir sistem üzerinden gidelim. Çevrim içi sipariş sistemi olan yerel bir pizzeria Pizza Palace’ı yönettiğinizi düşünün. Müşteriler web sitesinden sipariş veriyor, ekip pizzaları hazırlıyor, kuryeler teslim ediyor.

Pizza Palace’ta sipariş sürecinin farklı bölümlerini takip eden birkaç veritabanı tablosu var:

  • orders - Temel sipariş bilgileri (order ID, müşteri, sipariş zamanı)
  • order_items - Siparişte neler var (pizzalar, yan ürünler, içecekler)
  • kitchen_queue - Siparişlerin mutfağa giriş ve çıkış zamanları
  • delivery_assignments - Kurye atamaları ve teslimat takibi
  • payments - Ödeme işlemi kayıtları

Hedefiniz: Her siparişin, verilmesinden teslimine kadar tüm yolculuğunu gösteren bir event log oluşturmak.

Event türleri: Doğrudan ve çıkarıma dayalı

Bir event log oluştururken iki tür event’le karşılaşırsınız:

Doğrudan Event’ler

Doğrudan event’ler sisteminizde açıkça kaydedilir. Biri butona tıklar ya da sistem bir işlemi loglar; timestamp veritabanında doğrudan bulunur.

Pizza Palace’tan örnekler:

  • Order placed (timestamp orders tablosunda)
  • Payment received (timestamp payments tablosunda)
  • Delivery completed (timestamp delivery_assignments tablosunda)

Türetilmiş Olaylar

Türetilmiş olayların kendi zaman damgası yoktur; ancak diğer verilere bakarak ne zaman gerçekleştiğini anlayabilirsiniz.

Pizza Palace’tan örnekler:

  • “Sipariş Kuryeye Atandı”nın kendi zaman damgası olmayabilir; ancak delivery_assignments tablosundaki created_at alanı atamanın ne zaman yapıldığını gösterir
  • ”Pizza Hazır” bilgisi, mutfak kuyruğu durumunun “completed” olarak değiştiği andan türetilebilir

Temel fark şu: Doğrudan olaylar açıkça kaydedilir; türetilmiş olaylar ise diğer veri alanlarını yorumlamayı gerektirir. İkisi de process mining için geçerli ve çok faydalıdır.

Event log’unuzu planlamak

Veriyi çıkarmadan önce, hangi event’leri yakalamak istediğinizi planlayın. Pizza Palace için şu aktiviteleri izleyelim:

  1. Sipariş Verildi - Müşteri siparişi gönderir
  2. Ödeme Alındı - Ödeme başarıyla işlenir
  3. Sipariş Mutfağa Gönderildi - Sipariş hazırlık kuyruğuna girer
  4. Sipariş Hazır - Mutfak siparişi tamamlar
  5. Kuryeye Atandı - Teslimat için bir kurye atanır
  6. Teslimat Tamamlandı - Sipariş müşteriye teslim edilir

Her event için şunları belirleyin:

  • Verinin bulunduğu tablo
  • Timestamp’i sağlayan alan
  • Case ID nedir (bizim örneğimizde order ID)

Eşleştirmemiz şöyle:

ActivityKaynak TabloTimestamp AlanıCase ID Alanı
Sipariş Verildiorderscreated_atid
Ödeme Alındıpaymentspayment_timeorder_id
Sipariş Mutfağa Gönderildikitchen_queuequeue_entry_timeorder_id
Sipariş Hazırkitchen_queuecompleted_timeorder_id
Kuryeye Atandıdelivery_assignmentsassigned_atorder_id
Teslimat Tamamlandıdelivery_assignmentsdelivered_atorder_id

Case ve Event attribute’ları eklemek

Case ID, Timestamp ve Activity zorunludur; attribute’lar analizinizi çok daha güçlü kılar. Attribute’lar, bağlam sağlayan ek kolonlardır.

Case Özellikleri

Case özellikleri, tüm case’i (sipariş) tanımlar ve o case’deki tüm event’lerde aynıdır:

  • Müşteri adı
  • Sipariş toplam tutarı
  • Teslimat adresi
  • Sipariş edilen ürün adedi

Event Özellikleri

Event özellikleri her event’e özeldir:

  • Kurye adı (sadece teslimat event’leri için geçerlidir)
  • Ödeme yöntemi (sadece ödeme event’leri için geçerlidir)
  • Mutfak istasyonu (sadece mutfak event’leri için geçerlidir)

İpucu: Bazı özellikler belirli event’lere uymasa bile her satıra tüm özellikleri eklemenizde sakınca yok. Örneğin, “Order Placed” satırında “Driver Name” sütunu boş kalabilir. Bu yaklaşım, event log’unuzu process mining araçlarının sevdiği basit, düz tablo formatında tutar.

Event log oluşturma: Basit yapı

Nihai event log’unuz, her satırın tek bir event’i temsil ettiği tek bir tablo olmalı. Pizza Palace event log’umuz şöyle görünecek:

Case IDTimestampActivityMüşteriSipariş TutarıKuryeÖdeme Yöntemi
10012025-01-15 18:30:00Sipariş VerildiJohn Smith45.99
10012025-01-15 18:30:15Ödeme AlındıJohn Smith45.99Kredi Kartı
10012025-01-15 18:31:00Sipariş Mutfağa GönderildiJohn Smith45.99
10012025-01-15 18:45:00Sipariş HazırJohn Smith45.99
10012025-01-15 18:46:00Kuryeye AtandıJohn Smith45.99Maria Garcia
10012025-01-15 19:05:00Teslimat TamamlandıJohn Smith45.99Maria Garcia
10022025-01-15 18:35:00Sipariş VerildiJane Doe28.50
10022025-01-15 18:35:20Ödeme AlındıJane Doe28.50PayPal

Case attribute’larının (Müşteri, Sipariş Tutarı) aynı case’deki her event için tekrarlandığına dikkat edin. Bu tekrar kasıtlıdır ve veriyle çalışmayı kolaylaştırır.

Yöntem 1: Excel’de event log oluşturma

Verinizi Excel’e dışa aktarabiliyorsanız, event log’u elle de oluşturabilirsiniz. Bu yöntem küçük veri setleri ve öğrenme aşaması için idealdir.

Adım 1: Her olay türünü ayrı bir sayfaya ayırın

Her aktivite türü için bir çalışma sayfası oluşturun:

Sayfa 1: Sipariş Alındı

Case IDTimestampAktiviteMüşteriSipariş Tutarı
10012025-01-15 18:30:00Sipariş AlındıJohn Smith45.99
10022025-01-15 18:35:00Sipariş AlındıJane Doe28.50

Sayfa 2: Ödeme Alındı

Case IDTimestampAktiviteMüşteriSipariş TutarıÖdeme Yöntemi
10012025-01-15 18:30:15Ödeme AlındıJohn Smith45.99Kredi Kartı
10022025-01-15 18:35:20Ödeme AlındıJane Doe28.50PayPal

Adım 2: Sütunları standartlaştırın

Tüm sayfalarda aynı sırayla aynı sütunların bulunduğundan emin olun. Gerekirse boş sütunlar ekleyin:

Sayfa 1: Sipariş Alındı (güncellendi)

Case IDTimestampAktiviteMüşteriSipariş TutarıKuryeÖdeme Yöntemi
10012025-01-15 18:30:00Sipariş AlındıJohn Smith45.99

Adım 3: Tüm sayfaları birleştirin

Yeni bir “Event Log” sayfası oluşturun. Her aktivite sayfasındaki satırları kopyalayıp bu birleşik sayfaya art arda yapıştırın.

Adım 4: Önce Case ID’ye, sonra Timestamp’e göre sıralayın

Tüm verilerinizi seçin ve şu şekilde sıralayın:

  1. Case ID (artan)
  2. Timestamp (artan)

Bu işlem, her vaka içindeki olayları kronolojik sıraya koyar; böylece her siparişin yolculuğunu kolayca takip edebilirsiniz.

Adım 5: CSV olarak dışa aktarın

Birleşik sayfayı CSV olarak kaydedin. Bu format neredeyse tüm Process Mining araçlarıyla uyumludur.

Excel İpuçları:

  • Siparişler sayfasından VLOOKUP veya XLOOKUP ile case özelliklerini (örn. müşteri adı) çekin
  • Tutarlı bir tarih/saat biçimi kullanın (YYYY-MM-DD HH:MM:SS en iyi sonucu verir)
  • Dışa aktarmadan önce yinelenen olayları kaldırın

Yöntem 2: SQL ile event log oluşturma

Daha büyük veri setleri veya düzenli çekimler için SQL daha verimli ve tekrarlanabilir. Temel teknik, birden fazla sorguyu tek bir sonuç kümesinde birleştirmek için UNION ALL kullanmaktır.

UNION ALL’ı anlamak

UNION ALL, birden fazla SELECT ifadesinin sonuçlarını alt alta birleştirir. Her SELECT, nihai sonuçta bir satır kümesi oluşturur. Tüm SELECT’lerin aynı sayıda sütun üretmesi ve veri tiplerinin uyumlu olması gerekir.

Tam SQL Örneği

Aşağıda Pizza Palace için bir event log oluşturan örnek bir SQL sorgusu yer alıyor:

-- Event Log Extraction for Pizza Palace
-- This query combines multiple event types into a single event log
-- Each SELECT block represents one activity type

-- Event 1: Order Placed
-- Source: orders table
-- This captures when customers submit their orders
SELECT 
    o.id AS case_id,                          -- The order ID is our case identifier
    o.created_at AS timestamp,                -- When the order was placed
    'Order Placed' AS activity,               -- The activity name (hardcoded)
    o.customer_name AS customer,              -- Case attribute: who ordered
    o.total_amount AS order_value,            -- Case attribute: order value
    NULL AS driver,                           -- Not applicable for this event
    NULL AS payment_method                    -- Not applicable for this event
FROM orders o
WHERE o.created_at >= '2025-01-01'            -- Filter to your desired date range

UNION ALL

-- Event 2: Payment Received
-- Source: payments table
-- This captures successful payment processing
SELECT 
    p.order_id AS case_id,
    p.payment_time AS timestamp,
    'Payment Received' AS activity,
    o.customer_name AS customer,              -- Join to get case attributes
    o.total_amount AS order_value,
    NULL AS driver,
    p.payment_method AS payment_method        -- Event-specific attribute
FROM payments p
JOIN orders o ON p.order_id = o.id            -- Join to get order details
WHERE p.payment_time >= '2025-01-01'
  AND p.status = 'successful'                 -- Only include successful payments

UNION ALL

-- Event 3: Order Sent to Kitchen
-- Source: kitchen_queue table
-- This captures when the kitchen starts working on the order
SELECT 
    k.order_id AS case_id,
    k.queue_entry_time AS timestamp,
    'Order Sent to Kitchen' AS activity,
    o.customer_name AS customer,
    o.total_amount AS order_value,
    NULL AS driver,
    NULL AS payment_method
FROM kitchen_queue k
JOIN orders o ON k.order_id = o.id
WHERE k.queue_entry_time >= '2025-01-01'

UNION ALL

-- Event 4: Order Ready
-- Source: kitchen_queue table (different timestamp field)
-- This is an inferred event based on when the kitchen marked it complete
SELECT 
    k.order_id AS case_id,
    k.completed_time AS timestamp,            -- Different timestamp than entry
    'Order Ready' AS activity,
    o.customer_name AS customer,
    o.total_amount AS order_value,
    NULL AS driver,
    NULL AS payment_method
FROM kitchen_queue k
JOIN orders o ON k.order_id = o.id
WHERE k.completed_time >= '2025-01-01'
  AND k.completed_time IS NOT NULL            -- Only include completed orders

UNION ALL

-- Event 5: Assigned to Driver
-- Source: delivery_assignments table
-- This captures when a driver is assigned to deliver the order
SELECT 
    d.order_id AS case_id,
    d.assigned_at AS timestamp,
    'Assigned to Driver' AS activity,
    o.customer_name AS customer,
    o.total_amount AS order_value,
    d.driver_name AS driver,                  -- Event-specific attribute
    NULL AS payment_method
FROM delivery_assignments d
JOIN orders o ON d.order_id = o.id
WHERE d.assigned_at >= '2025-01-01'

UNION ALL

-- Event 6: Delivery Completed
-- Source: delivery_assignments table (different timestamp field)
-- This captures when the order was delivered to the customer
SELECT 
    d.order_id AS case_id,
    d.delivered_at AS timestamp,
    'Delivery Completed' AS activity,
    o.customer_name AS customer,
    o.total_amount AS order_value,
    d.driver_name AS driver,
    NULL AS payment_method
FROM delivery_assignments d
JOIN orders o ON d.order_id = o.id
WHERE d.delivered_at >= '2025-01-01'
  AND d.delivered_at IS NOT NULL              -- Only include completed deliveries

-- Final ordering: by case, then by time
-- This makes the event log easy to read and follow
ORDER BY case_id, timestamp;

Bu Sorguyu Nasıl Genişletirsiniz

Log’unuza daha fazla event eklemek için:

  1. Şablon olarak SELECT bloklarından birini kopyalayın
  2. Tablo adını değiştirerek kaynak tablonuzu yazın
  3. Timestamp alanını güncelleyerek doğru sütunu kullanın
  4. Activity adını değiştirerek event’i net biçimde adlandırın
  5. Gerekli özellikleri ekleyin veya uyarlayın
  6. Veriyi filtrelemek için uygun WHERE koşulları ekleyin

Örneğin, “Delivery Attempted” event’i eklemek için:

UNION ALL

-- Event 7: Delivery Attempted
-- Add this to track failed delivery attempts
SELECT 
    d.order_id AS case_id,
    d.attempt_time AS timestamp,
    'Delivery Attempted' AS activity,
    o.customer_name AS customer,
    o.total_amount AS order_value,
    d.driver_name AS driver,
    NULL AS payment_method
FROM delivery_attempts d
JOIN orders o ON d.order_id = o.id
WHERE d.attempt_time >= '2025-01-01'

Event log oluştururken en iyi uygulamalar

1. Basit başlayın, karmaşıklığı sonra ekleyin

Önce üç zorunlu kolona ve birkaç kilit aktiviteye odaklanın. Basit bir event log’u oluşturup bir process mining aracına başarıyla yükledikten sonra, geri dönüp daha fazla event ve attribute ekleyebilirsiniz.

2. Verinizi Doğrulayın

Analize başlamadan önce event log’unuzda sık görülen sorunları kontrol edin:

  • Eksik timestamp’ler - Timestamp’i olmayan event’ler process mining’i bozar
  • Yinelenen event’ler - Aynı event’in iki kez kaydedilmesi sonuçları çarpıtır
  • Sırası yanlış olan event’ler - “Order Placed”ten önce “Order Ready” görünmesi veri kalitesi sorununa işaret eder
  • Yetim event’ler - Başka hiçbir aktivitede görünmeyen case ID’lerine sahip event’ler

3. Veri Çıkarma Sürecinizi Belgeleyin

Şunları not edin:

  • Hangi tabloları kullandığınız
  • Hangi filtreleri uyguladığınız
  • Çıkarmayı ne zaman yaptığınız
  • Yaptığınız varsayımlar

Bu notlar, event log’u daha sonra güncellemeniz ya da sorun gidermeniz gerektiğinde çok işinize yarar.

4. Tutarlı İsimlendirme Kullanın

Aktivite adlarını tüm çıkarmalarda tutarlı kullanın:

  • “Order Placed” gibi tek bir ad kullanmak, bazen “Order Created” bazen “New Order” yazmaktan daha iyidir
  • Baştan bir isimlendirme standardı belirleyin ve ona sadık kalın

5. Zaman Dilimlerini Yönetin

Veri birden çok sistemden ya da bölgeden geliyorsa, tüm timestamp’lerin aynı zaman diliminde olduğundan emin olun. Tutarlılık için UTC genelde en güvenli tercihtir.

Yaygın Zorluklar ve Çözümler

Zorluk: Aynı Event’in Birden Fazla Kaynaktan Gelmesi

Bazen aynı event birden çok tabloda loglanır. Örneğin, hem sipariş sisteminiz hem de ERP’niz siparişin gönderildiği zamanı kaydediyor olabilir.

Çözüm: “Source of truth” olarak tek bir kaynağı seçin ve yalnızca onu kullanın. Bu tercihi belgeleyin.

process mining event log oluştururken karşılaşılan yaygın zorlukları gösteren görsel

Zorluk: Timestamp’i Olmayan Event’ler

Bazı event’lerin kendi timestamp’i olmayabilir. Örneğin, “Order Approved” sadece boolean bir flag olabilir.

Çözüm: İlgili timestamp’leri arayın. Örneğin bir “approved_at” alanı olabilir ya da “approved” flag’i değiştiğinde oluşan “modified_at” timestamp’ini kullanabilirsiniz.

Zorluk: Çok Yüksek Event Hacmi

Milyonlarca event varsa, veri çıkarma sırasında sorgular yavaşlayabilir veya çökebilir.

Çözüm:

  • Çıkarmanın kapsadığı dönemi sınırlamak için tarih filtreleri ekleyin
  • Veriyi parça parça çekin (ör. ay ay) ve dosyaları sonra birleştirin
  • Büyük ölçekli çıkarmalar için özel ETL araçları kullanmayı düşünün

Sırada ne var? Event log’unuzu bir process mining aracına yükleyin

Event log’unuzu CSV dosyası olarak veya veritabanı çıktısı şeklinde hazırladıysanız, artık bir process mining aracına yüklemeye hazırsınız. Çoğu araç benzer adımları izler:

  1. Dosyanızı yükleyin ya da process mining aracını çıkardığınız veriye bağlayın.
  2. Kolonlarınızı eşleyin (Case ID, Timestamp, Activity)
  3. Ek attribute’ları yapılandırın
  4. Süreç haritanızı oluşturun

ProcessMind gibi modern process mining araçları bu süreci oldukça kolaylaştırır. Event log’unuzu yükleyin; araç sürecinizi otomatik olarak görselleştirerek darboğazları, varyasyonları ve iyileştirme fırsatlarını ortaya çıkarır.

Sonuç

Bir process mining event log’u oluşturmak için özel araçlara veya ileri teknik bilgiye gerek yok. Özünde yapmanız gereken, verinizi Case ID, Timestamp ve Activity’den oluşan üç temel kolona sahip tek bir tabloya düzenlemek.

Küçük veri setlerinde Excel’i, daha büyük ve düzenli çekimlerde SQL’i tercih edebilirsiniz; prensipler değişmez:

  1. Takip etmek istediğiniz event’leri belirleyin
  2. Her event tipi için timestamp’i bulun
  3. Hepsini tek bir tabloda birleştirin
  4. Analizi zenginleştirmek için attribute’lar ekleyin

En zor kısım veriyi teknik olarak çekmek değil; süreçte hangi event’lerin önemli olduğunu kavramaktır. Önce bariz adımlarla başlayın (sipariş verildi, sipariş tamamlandı) ve process mining aracınızın sunduğu içgörülerle birlikte zamanla ayrıntı ekleyin.

Daha derine inmek ister misiniz? sürekli süreç iyileştirme sayfalarımızı inceleyin. Satın Almadan Ödemeye (Purchase to Pay), Siparişten Tahsilata (Order to Cash) ve Borç Hesapları (Accounts Payable) gibi yaygın süreçler için aktiviteler ve veri gereksinimlerine dair ayrıntıları bulacaksınız. SAP, Oracle ve Microsoft Dynamics gibi yaygın sistemler için veri şablonları da mevcut; event log oluşturma yolculuğunuza hızlı bir başlangıç yapın.

Bugün Başlayın

Mükemmel event log’u beklemeyin. Elinizdekilerle başlayın, oluşturduğunuz süreç haritalarından öğrenin ve tekrarlayın. Sadece temel aktiviteleri içeren basit bir event log bile süreçlerinizin gerçekte nasıl işlediğine dair şaşırtıcı içgörüler sunabilir.

İlgili Blog Yazıları

Process mining ve workflow optimizasyonu hakkında uzman içgörüleri e-posta kutunda al
Process Mining ile Süreç Analizi: Pratik Rehber

Process Mining ile Süreç Analizi: Pratik Rehber

Dashboard'larınızı eyleme dönen içgörülere çevirin. Veriyi anlama, kalıp keşfi ve gerçek iyileştirme fırsatları için adım adım yaklaşım.

Hazır Bağlayıcıları Neden Atlıyoruz (Ve Bunun Yerine Ne Yapıyoruz)

Hazır Bağlayıcıları Neden Atlıyoruz (Ve Bunun Yerine Ne Yapıyoruz)

Hazır bağlayıcılar kolaylık vaat eder ama çoğu kez karmaşıklık, gecikme ve bağımlılık getirir. Bizim basit yolumuz: veri şablonları.

Veri Odaklı Süreç İyileştirme için Stratejik Rehber

Veri Odaklı Süreç İyileştirme için Stratejik Rehber

Veriyle süreç iyileştirme ve iş dönüşümünün etkili yollarını anlatan kapsamlı rehber.

Celonis Alternatifleri: ProcessMind ile Akıllı Seçim

Celonis Alternatifleri: ProcessMind ile Akıllı Seçim

Celonis ve ProcessMind process mining’i 2025 için karşılaştırın. İşinize en uygun çözümü keşfedin.

Kendini 30 günden kısa sürede süreç iyileştirmelerini keşfetmek için zorla!

Anında erişim, kredi kartı yok, bekleme yok. Mapping, mining ve simulation'ın birlikte nasıl daha akıllı, hızlı kararlar aldığını gör.

Tüm özellikleri keşfet, derin içgörüler kazan ve operasyonlarını ilk günden itibaren kolayca yönet.

Ücretsiz denemene hemen başla, Process Intelligence'ın tam gücünü aç ve 30 günden kısa sürede gerçek iyileşmeleri gör!