Eğitim: Fabric Maps ile gerçek zamanlı iş emri yönlendirmesi nasıl oluşturulur

Microsoft Fabric Haritalar, gerçek zamanlı ve geçmiş uzamsal verilerden eyleme dönüştürülebilir içgörüler sunmak için jeo-uzamsal görselleştirme ve analiz sağlar.

Bu öğreticide, bir elektrik şirketi saha dağıtımcısı, elektrik kesintileri veya varlık arızaları bildirildiğinde onarım iş siparişlerini oluşturmak ve yönetmek için Microsoft Fabric Haritaları kullanarak çalışır. Senaryo, etkilenen müşterileri bulma, etkin iş siparişlerini gerçek zamanlı olarak görselleştirme ve hizmet geri yükleme için ekipleri verimli bir şekilde göndermeye odaklanır.

Bu öğreticide müşteri konumlarının nasıl eşlendiği, canlı iş siparişlerinin haritada nasıl göründüğü ve Azure Haritalar Yol Tarifleri API'si kullanılarak en uygun rotanın hesaplanmış olduğu gösterilmektedir. Eğitim, haritada gösterilen optimize edilmiş bir rota ile sona erer.

Fabric Maps, Fabric Real‑Time Intelligence içinde çalışır ve gerçek zamanlı izleme için Eventstream ve Eventhouse kullanarak akış telemetrisini toplar. İş emri tamamlamaları ve operasyonel sonuçlar, rota iyileştirme ve haritada görüntülenen analizler için kullanılabilecek OneLake'te depolanır.

Bu kılavuzda aşağıdakileri yapacaksınız:

  • Bir lakehouse oluşturun ve örnek iş emri verilerini yükleyin.
  • Bir olay akışı ayarlayarak iş emri verilerini bir olay deposuna yazın.
  • İçeri aktarılan iş emri verilerinden müşteri koordinatlarını ayıklamak için bir Kusto işlevi oluşturun.
  • Bir harita oluşturun ve işlevi harita katmanı olarak ekleyin.
  • Azure Haritalar Yol Tarifleri API'sini kullanarak en uygun yolu hesaplama.
  • İyileştirilmiş yolu haritaya katman olarak ekleyin.
  • Harita ve katman ayarlarını yapılandırın.

Önkoşullar

Bu öğreticiye başlamadan önce, temel kavramlar ve iş akışları hakkında bilgi sahibi olmak için Real-Time Intelligence öğreticilerini gözden geçirmek yararlı olacaktır.

Bir lakehouse oluşturarak örnek iş emri verilerini yükleyin

Gerçek zamanlı bir akış kaynağının benzetimini yapmak için, aşağıdaki adımlarda yer alan not defteri bir lakehouse'a yüklenen örnek verileri kullanır. Üretimde bu veriler statik değil akışla aktarılacaktır.

İş emri veri dosyasını oluşturma

İş emri veri dosyası, bu öğreticide gerçek zamanlı akış kaynağının benzetimini yapmak için kullanılan örnek iş emri kayıtlarını içerir. Dosyayı oluşturduktan sonra sonraki adımda bir lakehouse'a aktaracaksınız.

Aşağıdaki içeriği kopyalayıp bir metin dosyasına yapıştırın, ardından WorkorderLocations.csvolarak kaydedin. Bu dosyayı sonraki adımda kullanacaksınız.

WorkorderID,Latitude,Longitude
100,48.22610712,16.32977412
101,48.23519063,16.37364699
102,48.19785896,16.38669028
103,48.18125837,16.37068261
107,48.15151126,16.41766590
108,48.20290349,16.32492121
104,48.23400591,16.4563533
105,48.18145603,16.40506946
106,48.16366378,16.36001083

Lakehouse oluşturun ve iş emri veri dosyasını içe aktarın

Gelen iş emri verileri için yeni bir lakehouse oluşturun ve daha önce oluşturulan iş emri konum dosyasını içeri aktarın.

  1. Çalışma alanınızdan Yeni öğe'yi seçin ve arama kutusuna lakehouse yazın ve yeni bir göl evi oluşturmak için seçin.
  2. WorkorderLocationsLakehouse adını girin ve Oluştur'u seçin.
  3. Yeni lakehouse'ta Dosyaları Yükle seçeneğini seçin ve önceki adımda oluşturulan WorkorderLocations.csv dosyasını yükleyin.
  4. Yeni göl evinde, ekranın sol tarafındaki Gezgin bölmesini seçin.
  5. GezgininDosyalar bölümünde WorkorderLocations.csv'ı seçerek karşıya yüklediğiniz dosyayı görüntüleyin.
  6. Görünüm ayarlarındaüst bilgi olarak ilk satır'ı seçin.
  7. (İsteğe bağlı) Görünüm açılan listesinde Tablo görünümü'nü seçin.

WorkorderLocations.csv dosyasını bir lakehouse'a aktardıktan sonra ekran görüntüsü.

Olay akışı oluşturma ve olay evinde veri yazma

Bu bölümde, özel uç nokta kullanarak bir olay akışı akışı tasarlayacak ve gerçek zamanlı akış simülasyonu yapmak için not defteri kullanarak veri göndereceksiniz.

Microsoft Fabric Eventstream, kullanıcıların Microsoft Fabric ekosisteminde olay verilerini almalarını, işlemelerini ve yönlendirmelerini sağlayan gerçek zamanlı bir veri akışı hizmetidir. Olay odaklı iş akışları oluşturmak için kodsuz bir deneyim sağlayarak çeşitli kaynaklardan gelen gerçek zamanlı verilerin sorunsuz bir şekilde tümleştirilmesine ve birden çok hedefe yönlendirilmesine olanak tanır. Desteklenen veri kaynakları veya özel uç noktaya bağlanma hakkında daha fazla bilgi için bkz. Microsoft Fabric olay akışlarına genel bakış.

Olay akışı verilerini bir olay kümesine alarak akış olayları Kusto ile işlenebilir hale gelir ve burada tablolar veya işlevler kullanılarak gerçek zamanlı olarak dönüştürülebilir ve analiz edilebilir. Daha fazla bilgi için bkz . Eventhouse'a genel bakış.

Etkinlik akışı ve etkinlik merkezi oluşturma

  1. Çalışma alanınızdan Yeni öğe'yi seçin ve arama kutusuna olay akışı girin.

  2. Olay Akışı'nı seçin.

  3. Yeni Olay Akışı iletişim kutusunda bir Ad: "WorkordersEventstream" girin ve Oluştur'u seçin.

  4. Akış olaylarını almak, dönüştürmek ve yönlendirmek için akış tasarlama ekranında Özel uç nokta kullan'ı seçin

    Fabric'de, akış olaylarını almak, dönüştürmek ve yönlendirmek için bir akış tasarlama ekranının ekran görüntüsü, Özel uç nokta kullan seçeneğini göstermektedir.

  5. Özel uç nokta Kaynak ekle iletişim kutusunda Ekle'yi seçin.

    Microsoft Fabric'te Özel uç nokta için kaynak ekle iletişim kutusunun ekran görüntüsü, üst kısımda Özel uç nokta oku WorkordersEventstream olan içerik haritası gezintisini gösterir. İletişim kutusu, CustomEndpoint-Source metnini içeren, kırmızı yıldız işaretiyle gerekli olarak işaretlenmiş bir Kaynak adı alanı içerir. İletişim kutusunun sağ alt köşesinde, başka bir işlem gerekmemesi gerektiğini belirten bir teal Ekle düğmesi vurgulanır.

    Olay akışı artık oluşturulur. Ardından, hedef olarak bir Eventhouse ekleyin.

  6. Etkinlik akışı tasarımcısının WorkordersEventstream düğümünde Olayları dönüştür veya hedef ekle açılan listesinden Eventhouse'i seçin.

    WorkordersEventstream düğümüne bağlı CustomEndpoint-Source içeren bir akış diyagramını gösteren Microsoft Fabric olay akışı tasarımcısının ekran görüntüsü. Sağ taraftaki Olayları dönüştür veya hedef ekle kutucuğundan bir açılan menü genişletilir ve alt kısımda Eventhouse da dahil olmak üzere birkaç seçeneğin gösterildiği Hedefler bölümü görüntülenir ve bu seçenek seçilmesi gerektiğini belirten kırmızı bir dikdörtgenle vurgulanır.

  7. Eventhouse hedef yapılandırma bölmesi ekranın sağ tarafında görüntülenir. İstenen ayrıntıları aşağıdaki gibi doldurun ve kaydet'i seçin:

    1. Veri alımı modu: Almadan önce Olay işleme olarak ayarlayın.
    2. Hedef adı: WorkordersEventhouse olarak ayarlayın.
    3. Çalışma alanı: Çalışma alanınızın adını gösteren bir açılan liste.
    4. Eventhouse: Yeni oluştur'u seçin ve WorkordersEventhouse adlı bir olay evi oluşturun.
    5. KQL Veritabanı: WorkordersEventhouse'ı seçin.
    6. KQL Hedef tablosu: Yeni oluştur bağlantısını seçin ve Workorders adlı yeni bir tablo oluşturun.
    7. Giriş veri biçimi: Json'ı seçin.
    8. Veri kaynağını ekledikten sonra alımı etkinleştirin: onay kutusunu işaretleyin.

    Eventhouse hedef yapılandırma bölmesini gösteren ekran görüntüsü, Veri alımından önce Olay işleme modunun seçili olduğu, Hedef adı WorkordersEventhouse olarak ayarlanmış, Çalışma Alanım'ı gösteren Çalışma Alanı açılan listesi, Yeni bağlantı oluştur ile WorkordersEventhouse'u gösteren Eventhouse açılan listesi, WorkordersEventhouse'u gösteren KQL veritabanı açılan listesi, Yeni bağlantı oluştur ile Yeni WorkordersEventhouse'u gösteren KQL hedef tablosu açılan listesi, Veri kaynağı eklendikten sonra alımın etkinleştirildiği işaretli onay kutusu ve altta yeşil bir Kaydet düğmesi bulunur.

  8. Olay evi hedef olarak eklendikten sonra yayımla'yı seçerek yeni olay akışınızı yayımlayın.

    CustomEndpoint-Workorders kaynağının Workorders-stream düğümüne ve WorkordersEventhouse hedefine bağlı bir akışı gösteren Eventstream tasarımcısını gösteren ekran görüntüsü. Yayımla düğmesi, araç çubuğunun sağ üst köşesinde vurgulanır. Düzenleme modu pankartı, değişikliklerin yayımlandıktan sonra canlı yayına geçtiğini gösterir.

Gerekli SAS anahtarı kimlik doğrulama anahtarlarını alma

Not defteri kodunuzda Olay hub'ı adı ve Bağlantı dizesi - birincil anahtar değerlerine SAS Anahtarı kimlik doğrulaması bölümünden ihtiyacınız vardır.

  1. Yeni eklediğiniz özel uç nokta kaynağı kutucuğunu seçin.

  2. Ayrıntılar bölmesinde SAS Anahtarı Kimlik Doğrulaması'nı seçin.

  3. Aşağıdaki iki değeri kopyalayın ve not defteri kodunuzda kullanmak üzere kaydedin:

    • Olay hub'ı adı: EVENT_HUB_NAME değişkeni için kullanılır.
    • Bağlantı dizesi-birincil anahtar: CONNECTION_STR değişkeni için kullanılır.

    Ayrıntılar bölmesinde SAS Anahtarı Kimlik Doğrulaması seçeneğinin belirlendiğini ve bu öğreticinin sonraki bir adımının not defteri kodunda kullanılan Olay hub'ı adını ve Bağlantı dizesi birincil anahtar alanlarını vurgulayan Olay Akışı tasarımcısını gösteren ekran görüntüsü.

Not defteri kullanarak gerçek zamanlı alımın benzetimini yapın

Bu bölümde, daha önce oluşturduğunuz lakehouse'a bağlı bir not defteri oluşturacak, ardından sağlanan kodu kullanarak CSV verilerini okuyacak ve olayları olay akışına göndereceksiniz. Bu, gerçek zamanlı veri alımının benzetimini sağlar; tanıtımlar için not defterini el ile çalıştırabilir veya düzenli aralıklarla çalışacak şekilde zamanlayabilirsiniz.

Fabric çalışma alanınızda bir not defteri oluşturun

İş emri konum dosyasını göl evinden önceki bölümde oluşturduğunuz olay akışına aktarmak için kod içeren bir not defteri oluşturun. Bu, üretim ortamında statik yerine akış halinde olacak gerçek zamanlı bir akış kaynağını simüle eder.

  1. Çalışma alanınızdan Yeni öğe'yi seçin ve arama kutusuna not defteri girin.

  2. Dizüstü Bilgisayar'ı seçin.

    Metin not defterini içeren bir arama kutusu içeren Microsoft Fabric Yeni öğe iletişim kutusunun ekran görüntüsü. Arama sonuçlarında, verileri keşfetmek ve makine öğrenmesi modelleri oluşturmak için not defteri oluşturma açıklamasını gösteren belge simgesi içeren bir Not Defteri kutucuğu görüntülenir. Yeni bir not defteri öğesi oluşturmak için seçilebileceğini belirten Not Defteri seçeneği vurgulanır.

  3. Yeni Not Defteri iletişim kutusunda Ad alanına WorkorderLocations yazın ve Oluştur'u seçin.

  4. Dizüstü bilgisayarınızı lakehouse'a bağlamak için OneLake kataloğundan, Veri öğeleri ekle açılır listesinden seçin.

    Veri kaynakları eklenmemiş iletisi ve boş bir klasör simgesiyle Veri öğeleri sekmesinin seçili olduğunu gösteren Microsoft Fabric Explorer bölmesinin ekran görüntüsü. İletinin altında, üç menü seçeneğini göstermek için genişletilmiş olan

  5. OneLake kataloğundanWorkorderLocationsLakehouse'u seçin ve Bağlan düğmesini seçin. Bu daha önce oluşturduğunuz göl evi.

  6. Not defterini oluşturduktan ve lakehouse'unuza bağladıktan sonra, aşağıdaki kodu ilk hücreye yapıştırın ve Azure Event Hub SDK'sını yüklemek için çalıştırın:

    # Install Azure Event Hub SDK (only needed once per environment)
    %pip install azure-eventhub
    
  7. Not defterinde yeni bir hücre oluşturmak için + Kod'u seçin.

    İki Python kodu satırı içeren bir kod hücresini gösteren Microsoft Fabric not defteri arabiriminin ekran görüntüsü. 1. satırda,

  8. Yeni hücreyi seçin ve içine aşağıdaki kodu girin:

    from azure.eventhub import EventHubProducerClient, EventData
    import pandas as pd
    import json
    import time
    
    # Replace with your actual connection string and Event Hub name
    CONNECTION_STR = "" # Connection string-primary key
    EVENT_HUB_NAME = "" # Event hub name
    producer = EventHubProducerClient.from_connection_string(conn_str=CONNECTION_STR, eventhub_name=EVENT_HUB_NAME)
    
    df = spark.read.csv("Files/WorkorderLocations.csv", header=True, inferSchema=True)
    pdf = df.toPandas()
    total_records = len(pdf)
    
    for index, row in pdf.iterrows():
        # Convert row to dictionary
        row_dict = row.to_dict()
    
        # Truncate coordinates to 5 decimal digits
        if 'lat' in row_dict:
            row_dict['Latitude'] = round(float(row_dict['Latitude']), 5)
        if 'lon' in row_dict:
            row_dict['Longitude'] = round(float(row_dict['Longitude']), 5)
    
        # Serialize to JSON
        payload = json.dumps(row_dict)
    
        # Send to Event Hub
        event_data = EventData(payload)
        with producer:
            producer.send_batch([event_data])
    
        # Wait 100ms
        time.sleep(0.1)
    
  9. Gerekli SAS anahtarı kimlik doğrulama anahtarlarını alma başlıklı önceki bölümde elde edilen CONNECTION_STR ve EVENT_HUB_NAME değişkenlerin değerlerini ekleyin.

  10. Not defteri kodunu çalıştırın. Bu, Workorders tablosunu WorkordersEventhouse olay evindeki KQL veritabanında oluşturur.

Veri önizleme sekmesinin seçili olduğu Workorders tablosunu görüntüleyen Microsoft Fabric Eventhouse arabiriminin ekran görüntüsü. Sol gezinti panelinde WorkordersEventhouse genişletilmiş KQL veritabanları ağacı gösterilir ve Workorders tablosunun seçili olduğu Tablolar bulunur.

Kusto işlevi oluşturma ve bunu harita katmanı olarak ekleme

Bu bölümde, eventhouse'unuzdaki Workorders tablosundan geçerli iş sırası konum verilerini alan bir Kusto işlevi oluşturacak ve ardından bu işlevi Fabric Maps haritası için veri kaynağı olarak kullanacaksınız. İşlev, haritanın etkin iş siparişlerini katman olarak görüntülemesini sağlayarak planlanması ve saha ekiplerine atanılması gereken işlerin görsel bir görünümünü sağlar.

Kusto işlevi oluşturma

Olay sunucunuzdan (KQL veritabanı):

  1. Olay sunucunuzla ilişkilendirilmiş KQL veritabanını açın.

  2. İşlevler'i ve ardından Yeni işlev'i seçin.

    WorkordersEventhouse veritabanı arabiriminin İşlevler bölümünü gösteren ve çakışan kareler içeren büyük bir döngüsel simge içeren boş bir durumu gösteren ekran görüntüsü. Ana başlıkta 'İşlev yok' ifadesi ve aşağıda 'İşlev oluşturduğunuzda bunlar burada görünür' ifadesi yer alır. Panelin alt ortasında '+ Yeni işlev' etiketli belirgin bir yeşil düğme konumlandırılır ve kullanıcılar ilk işlevlerini oluşturmaya davet edilir. Sol kenar çubuğunda, İşlevler klasörü seçili ve kırmızı kenarlıkla vurgulanmış veritabanı gezinti ağacı gösterilir.

    Bu, çalıştırıldığında WorkordersFunction adlı yeni bir işlev oluşturan bir sorgu oluşturur.

  3. Aşağıdakileri girin:

    .create-or-alter function WorkordersFunction()
    {
        Workorders
        | project Latitude, Longitude, WorkorderID
    }
    
  4. Sorguyu çalıştırma

    WorkordersFunction adlı yeni bir Kusto işlevinin oluşturulduğu İşlevler bölümünü görüntüleyen Microsoft Fabric Eventhouse arabiriminin ekran görüntüsü. Sol kenar çubuğunda İşlevler klasörünün seçili olduğu gezinti ağacı gösterilir. Ana düzenleyici panelinde KQL sorgu kodu görüntülenir: .create-or-alter function WorkordersFunction() { Workorders | project Latitude, Longitude, WorkorderID }. Çalıştır düğmesi üstteki araç çubuğunda görünür ve işlev oluşturma sorgusunu yürütmeye hazırdır. Bu adım, harita görselleştirmelerinde kullanılmak üzere iş emri verilerinden müşteri koordinatlarını ayıklayan yeniden kullanılabilir bir veri kaynağı oluşturur.

    1 & 2 - WorkordersFunction işlevini oluşturmak için kullanılan KQL sorgusu.

    3 - Yeni oluşturulan WorkordersFunction işlevi

  5. İşlevler klasöründe WorkordersFunction'ı seçin ve ardından Sonuçları önizle'yi seçerek geçerli konum alanlarına sahip iş sırası kayıtlarını döndürdüğünü doğrulayın.

    Sonuçların önizleme tablosunda görüntülendiği WorkordersFunction Kusto işlevini gösteren Microsoft Fabric Eventhouse arabiriminin ekran görüntüsü. Sol kenar çubuğunda, yeni oluşturulan WorkordersFunction öğesini gösteren İşlevler klasörü seçili olarak veritabanı gezinti ağacı görüntülenir. Ana panelde KQL sorgu kodu .create-or-alter işlevi WorkordersFunction() { Workorders | project Latitude, Longitude, WorkorderID }. Sorgu düzenleyicisinin altındaki Önizleme sonuçları bölümünde Latitude, Longitude ve WorkorderID sütunlarını içeren ve Viyana, Avusturya bölgesinde koordinat değerlerine sahip dokuz iş emri kaydı içeren bir veri tablosu gösterilir (yaklaşık 48 derece kuzey enlemi ve 16 derece doğu boylamı). Birden çok geçerli konum kaydının varlığı, işlevin harita görselleştirme amacıyla Workorders tablosundan müşteri koordinatlarını başarıyla ayıkladuğunu gösterir.

Bu işlev, sonraki bölümde gösterilen Doku Haritaları eşleme veri katmanı için yeniden kullanılabilir bir veri kaynağı işlevi görür.

Harita oluşturma ve işlevi katman olarak ekleme

Bu bölümde bir Doku Haritaları haritası oluşturacak ve daha önce oluşturulmuş KQL işlevini veri katmanı olarak kullanacaksınız. Harita, akan iş emri verilerinin otomatik olarak güncellenmesi için yenileme süresi ile yapılandırılmıştır ve bu, etkin iş siparişlerinin neredeyse gerçek zamanlı uzamsal bir görünümünü sağlar. Ardından katmanı yeniden adlandırır ve verilerin haritada nasıl görüntüleneceğini denetlemek için ayarlarını ayarlarsınız. Bu canlı jeo-uzamsal bağlam, dağıtıcıların alan etkinliğini izlemelerine, hizmet alanları genelinde talebi değerlendirmesine ve daha bilinçli yönlendirme ve atama kararları vermelerine yardımcı olur.

Yeni harita oluşturma

  1. Çalışma alanınızdan Yeni öğe'yi seçin.
  2. Yeni öğe panelinde arama alanına map yazın ve Eşle'yi seçin.
  3. Yeni Harita iletişim kutusunda, Ad alanına WorkordersMap yazın ve Oluştur'u seçin.

Haritaya olay evi ekleme

  1. Gezgin bölmesinde Doku öğeleri'ni ve ardından Ekle düğmesini seçin.

  2. Ekle düğmesini seçerken görüntülenen menüden KQL veritabanı'nı seçin.

    Sol tarafta Fabric öğeleri ve dış kaynaklar sekmelerinin yer aldığı Gezgin bölmesi bulunan Microsoft Fabric Haritalar arabirimini gösteren ekran görüntüsü. Fabric öğeleri sekmesi seçilidir ve altında bir ekle düğmesi bulunmaktadır. Ekle düğmesine tıklanmasının ardından, açılan menü gösterilir ve bu menüde KQL veritabanı seçilmiştir. Ana alan, harita alanında varsayılan dünya haritasını görüntüler.

  3. OneLake kataloğundan, daha önce oluşturduğunuz eventhouse WorkordersEventhouse'ı ve ardından Ekle'yi seçin.

Tavsiye

KQL veritabanının erişimi kısıtlayan korumalı bir etiketi var gibi bir hata alırsanız. Yardım için lütfen veritabanı sahibinize başvurun. Erişimi kısıtlayıcı olabileceğinden KQL veritabanınızdaki duyarlılık etiketini denetleyin. Daha fazla bilgi için bkz. Doku öğelerine duyarlılık etiketleri uygulama.

İşlevi haritada göster

  1. Yeni haritanızdaki Gezgin bölmesinde, önceki adımda eklediğiniz eventhouse WorkordersEventhouse öğesini seçin.

  2. KQL işlevi WorkordersFunction'a gidin ve açılır menüyü göstermek için üç nokta simgesini (...) seçin.

  3. Açılan menüden Haritada göster'i seçin.

    KQL veritabanı bölümü genişletilmiş hiyerarşik ağaç yapısını gösteren Microsoft Fabric Haritalar Gezgini panelinin ekran görüntüsü. Ağaçta Workorders-Event tablo ve WorkordersFunction işlevini içeren WorkordersEventhouse gösterilir. WorkordersFunction öğesinin yanında kırmızı dikdörtgen kenarlıkla vurgulanmış Haritada göster gibi seçenekleri gösteren üç nokta menüsü açılır.

  4. Harita üzerinde Olay Evi verilerini görüntüle iletişim kutusu, Önizleme verileri seçili olarak görüntülenir. Değişiklik gerekmez. Doğru olduğundan emin olun ve İleri'yi seçin

    Sol tarafta üç adımı gösteren Microsoft Fabric'teki Eventhouse verilerini haritada görüntüle iletişim kutusunun ekran görüntüsü: Yeşil onay işaretiyle verileri önizleme, Geometriyi ayarla ve veri yenileme aralığı ve Haritaya gözden geçir ve ekle. Ana panelde, WorkordersFunction olarak ayarlanmış şekilde görselleştirmek için KQL sorgusu seçin açılan menüsüyle uzamsal verileri zaman içinde görselleştirin açılır menüsü görüntülenir. Aşağıda, Viyana Avusturya bölgesinde koordinatları olan dokuz iş emri kaydını gösteren Latitude, Longitude ve WorkorderID sütunlarını içeren bir Sorgu sonucu önizleme tablosu yer almaktadır. Sağ altta Geri ve İleri düğmeleri görünür.

  5. Geometri ve veri yenileme aralığını ayarla adımında alanları aşağıdaki gibi ayarlayın ve İleri'yi seçin:

    • Veri katmanı Adı: WorkordersFunction

    • Geometri sütun konumu: Enlem ve boylam verilerini ayrı sütunlarda bulma

    • Enlem sütunu: Enlem

    • Boylam sütunu: Boylam

    • Veri yenileme aralığı: 5 dakika

      Geometri ve veri yenileme aralığı yapılandırma adımını gösteren Eventhouse verilerini haritada görüntüle başlıklı Microsoft Fabric iletişim kutusunun ekran görüntüsü. Sol kenar çubuğunda Önizleme verilerinin tamamlandığını ve Geometri ve veri yenileme aralığını ayarla'nın şu anda etkin olduğunu belirten onay işaretleriyle birlikte üç iş akışı adımı görüntülenir. Ana panelde WorkordersFunction içeren Bir Ad alanı içeren bir Veri katmanı bölümü ve ardından üç açılan liste içeren bir Geometri veri sütunu bölümü bulunur: Geometri sütunu konumu Enlem ve boylam verileri ayrı sütunlarda yer alır, Enlem sütunu Enlem olarak ayarlanır ve Boylam sütunu Boylam olarak ayarlanır. Aşağıda, Veri yenileme aralığı açılan listesinin 5 dakika olarak ayarlandığı bir Veri yenileme bölümü yer alır. Sağ alt köşede Geri ve İleri düğmeleri görünür.

  6. Haritaya ekle ve gözden geçir adımında ayarları gözden geçirin ve Haritaya ekle'yi seçin.

    Microsoft Fabric Görünüm Eventhouse verilerinin haritada görüntülendiği iletişim kutusunun ekran görüntüsü. Bu ekran görüntüsü, yapılandırma iş akışının son adımı olan

İşlev sonuçları artık güncelleştirilmiş haritada görüntülenir.

İş emri konumlarını gösteren kırmızı dairesel işaretçilerle Viyana, Avusturya haritasını gösteren Microsoft Fabric Haritalar arabirimini gösteren ekran görüntüsü. Soldaki Gezgin bölmesinde WorkordersEventhouse ve WorkordersFunction girdilerini içeren bir KQL veritabanı ağacı gösterilir. Haritanın sol üst kısmındaki Veri katmanları paneli, görünürlük iki durumlu düğmesi ve seçenekler menüsüyle WorkordersFunction katmanını gösterir.

Azure Haritalar Yol Tarifleri API'siyle iyileştirilmiş bir çok duraklı yol oluşturma

Bu bölümde, KQL veritabanından iş emri koordinatlarını alan ve Azure Haritalar Yol Tarifleri REST API'sini çağıran yeni bir not defteri oluşturacaksınız. Her konumu ziyaret etmek için en verimli sırayı belirlemek ve bu iyileştirilmiş dizide rota geometrisini döndürmek için hizmetin çok duraklı iyileştirme özelliğini etkinleştirirsiniz. Bu çıkış daha sonra harita üzerinde önerilen bir teknisyen rotasını görselleştirmek için kullanılır.

Bu bölümü tamamlamak için Azure Haritalar hesabı ve abonelik anahtarı içeren bir Azure hesabınız olmalıdır. Azure hesabınız yoksa, başlamadan önce ücretsiz hesap oluşturun. Azure Haritalar hesabı oluşturma hakkında daha fazla bilgi için bkz. Azure Haritalar hesabı oluşturma. Azure Haritalar abonelik anahtarı alma hakkında daha fazla bilgi için Azure Haritalar hızlı başlangıcında hesabınız için abonelik anahtarını alma bölümüne bakın.

Fabric çalışma alanınızda en uygun rotayı bulan bir not defteri oluşturma

  1. Çalışma alanınızın içinden daha önce oluşturduğunuz workordersEventhouse etkinlik alanını açın.

  2. KQL veritabanları'nın altındaki sol gezinti panelinde WorkordersEventhouse'ı seçin.

  3. Üst menü çubuğunda artık Not Defteri için bir seçenek görüntülenmelidir. Yeni bir not defteri oluşturmak için seçin.

    KQL veritabanlarının altındaki sol gezinti panelinde seçilen WorkordersEventhouse veritabanını gösteren Microsoft Fabric Eventhouse arabiriminin ekran görüntüsü. Üst menü çubuğunda, seçebileceğiniz öğenin bu olduğunu belirten kırmızı bir kutuyla vurgulanan Not Defteri gibi çeşitli seçenekler görüntülenir. Ana panelde veri alımı ve sorgu istatistikleri ile Veri Etkinliği İzleyicisi gösterilir.

  4. Yeni not defterinde kustoUri değişkeninin değerini kaydedin. Bu değeri 6. adımda oluşturduğunuz yeni not defteri kodunda kullanırsınız.

  5. Veri öğeleri ekle açılır listesinden OneLake kataloğundan seçerek not defterinizi WorkorderLocationsLakehouse'e bağlayın.

    PySpark Python kodu içeren bir kod hücresini gösteren Microsoft Fabric notebook arayüzünün ekran görüntüsü. Sol panelde, veri kaynağı eklenmediği belirtilirken, Veri öğesi ekle düğmesi kırmızı kutu ile vurgulanmıştır. Ana kod alanında, kustoQuery değişkeni Workorders, kustoUri Fabric Microsoft URL'si içeren ve veritabanı WorkordersEventhouse olarak ayarlanmış şekilde, Kusto'dan veri okumak için örnek bir sorgu gösterilir. kustoUri'nin kopyalanması ve bu öğreticide sağlanan notebook kodunda kullanılması gerektiğini belirtmek için kırmızı bir kutuyla vurgulanmıştır.

    Uyarı

    Microsoft Fabric'te lakehouse oluşturduğunuzda, aynı ada sahip bir SQL analiz uç noktası otomatik olarak oluşturulur.

    Her iki öğe de çalışma alanında görünür, ancak farklı amaçlara hizmet eder:

    • Lakehouse not defterleri, Spark işleme ve veri alımı için kullanılır.
    • SQL analizi uç noktası, Lakehouse verileri üzerinde salt okunur bir T-SQL sorgu yüzeyidir.

    Not defteri eklerken veya oluştururken SQL analiz uç noktasını değil Lakehouse'u seçtiğinizden emin olun. WorkorderLocationsLakehouseOneLake kataloğunda iki kez görünüyorsa, Lakehouse'a göre filtreleyin.

  6. Yeni not defteriniz oluşturulduktan ve lakehouse'unuza bağlandıktan sonra, not defterinizin ikinci hücresine aşağıdaki kodu girin, varsayılan kodu değiştirin ve önceki adımda kaydedilen değişken değerlerini ekleyin:

    import os, json, requests
    from pyspark.sql import types as T
    from pyspark.sql.functions import col
    
    # ---- Configuration ----
    AZMAPS_SUBSCRIPTION_KEY = os.environ.get(
        'AZMAPS_SUBSCRIPTION_KEY',
        '<Your Azure Maps subscription key>'
    )
    API_VERSION = '2025-01-01'
    BASE_URL    = 'https://atlas.microsoft.com'
    
    # KQL query that invokes the stored function
    kustoQuery = """WorkordersFunction()"""
    # Your Kusto URI
    kustoUri = "" 
    # Your KQL database name
    database = "WorkordersEventhouse" 
    
    # The access credentials.
    accessToken = mssparkutils.credentials.getToken(kustoUri)
    kustoDf  = spark.read\
        .format("com.microsoft.kusto.spark.synapse.datasource")\
        .option("accessToken", accessToken)\
        .option("kustoCluster", kustoUri)\
        .option("kustoDatabase", database)\
        .option("kustoQuery", kustoQuery).load()
    
    # Write transformed response to a new file so the raw output is preserved
    OUTPUT_GEOJSON_PATH_TRANSFORMED = (
        'Files/OptimizedRoute.geojson' # GeoJSON output file 
    )
    
    # ---- Read Stores from KQL database table ----
    stores_df  = spark.read\
        .format("com.microsoft.kusto.spark.synapse.datasource")\
        .option("accessToken", accessToken)\
        .option("kustoCluster", kustoUri)\
        .option("kustoDatabase", database)\
        .option("kustoQuery", kustoQuery).load()\
        .select(
                    col("WorkorderID").alias("workorder_id"),
                    col("Latitude").alias("lat"),
                    col("Longitude").alias("lon")
                )
    
    # Ordered waypoints: origin first, then the rest by workorder_id
    # (API will re-order when optimizeWaypointOrder=True)
    stores_pd = stores_df.orderBy('workorder_id').toPandas()
    waypoints_lonlat = [[float(r['lon']), float(r['lat'])] for _, r in stores_pd.iterrows()]
    
    # ---- Build Directions request body (GeoJSON) ----
    features = []
    for idx, (lon, lat) in enumerate(waypoints_lonlat):
        features.append({
            "type": "Feature",
            "geometry": {"type": "Point", "coordinates": [lon, lat]},
            "properties": {"pointIndex": idx, "pointType": "waypoint"}
        })
    
    dir_body = {
        "type": "FeatureCollection",
        "features": features,
        "optimizeRoute": "fastestWithTraffic",
        "routeOutputOptions": ["routePath"],  # ensures route path geometry in response
        "travelMode": "truck",
        "optimizeWaypointOrder": True
    }
    
    # ---- Call Azure Maps Directions (POST) ----
    url     = f"{BASE_URL}/route/directions"
    params  = {"api-version": API_VERSION}
    headers = {
        "Accept": "application/geo+json",
        "Content-Type": "application/geo+json",
        "subscription-key": AZMAPS_SUBSCRIPTION_KEY
    }
    
    resp = requests.post(url, params=params, data=json.dumps(dir_body), headers=headers)
    resp.raise_for_status()
    resp_json = resp.json()  # exact payload as returned by the API
    
    # ---- Transform: move order.optimizedIndex -> properties.optimizedIndex for all Waypoint features to add as a data label in the map----
    for feat in resp_json.get("features", []):
        props = feat.get("properties") or {}
        if props.get("type") == "Waypoint":
            order = props.get("order") or {}
            opt_idx = order.pop("optimizedIndex", None)
            if opt_idx is not None:
                props["optimizedIndex"] = opt_idx + 1
            # reassign possibly-updated order (still contains inputIndex if present)
            props["order"] = order
            feat["properties"] = props
    
    # ---- Write transformed GeoJSON ----
    from notebookutils import mssparkutils
    mssparkutils.fs.put(OUTPUT_GEOJSON_PATH_TRANSFORMED, json.dumps(resp_json), True)
    
    print(f"Transformed Directions GeoJSON (waypoints carry properties.optimizedIndex) written to {OUTPUT_GEOJSON_PATH_TRANSFORMED}")
    
  7. Azure Haritalar abonelik anahtarınızı, not defteri kodundaki AZMAPS_SUBSCRIPTION_KEY değişkenine girin, "<Your Azure Maps subscription key>" ifadesini Azure Haritalar abonelik anahtarınız ile değiştirerek.

    Önemli

    Bu örnek basitlik için Azure Haritalar abonelik anahtarını sabit kodlar. Üretim ortamlarında gizli dizileri sabit kodlamayın. Azure Key Vault kullanarak gizli bilgileri güvenli bir şekilde depolayın ve yönetin ve çalışma zamanında bunlara referans verin. Daha fazla bilgi için bkz. Gizli bilgileri korumaya yönelik en iyi yöntemler.

  8. Menüdeki Kaydet olarak düğmesini seçin ve not defterini OptimizeRoute adıyla kaydedin.

  9. Lakehouse'unuzun Dosyalar dizininde OptimizedRoute.geojson dosyasını oluşturmak için not defterini çalıştırın.

    Microsoft Fabric arabiriminin bir ekran görüntüsü, sağ tarafta yönlendirme verilerini alan ve bir GeoJSON dosyası yazan Python koduyla bir not defteri kod hücresini gösteriyor. Sol taraftaki Gezgin bölmesinde, Tablolar ve Dosyalar klasörlerini içerecek şekilde genişletilmiş WorkorderLocation ile OneLake görüntülenir. Dosyalar klasöründe, WorkorderLocations.csv ve OptimizedRoute.geojson gibi dosyalar, yeni oluşturulan çıkış dosyasını gösteren kırmızı bir kutuyla vurgulanır. Ortadaki Dosyalar panelinde de OptimizedRoute.geojson dosyasının vurgulandığı iki dosya gösterilir. Alttaki not defteri çıktısı, Dönüştürülmüş Yol Tarifleri GeoJSON yol noktalarının özellik taşıdığını belirten bir başarı mesajını görüntüler.

Haritaya lakehouse ekleme

  1. Gezgin bölmesinde Doku öğeleri'ni ve ardından Ekle düğmesini seçin.
  2. Ekle düğmesini seçerken görüntülenen menüden Lakehouse'ı seçin.
  3. OneLake kataloğundan daha önce oluşturduğunuz lakehouse WorkorderLocationsLakehouse'ı ve ardından Ekle'yi seçin.

Harita üzerinde iyileştirilmiş yolu gösterme

  1. Yeni haritanızdaki Gezgin bölmesinde, önceki adımda eklediğiniz lakehouse WorkorderLocationsLakehouse öğesini seçin.

  2. Lakehouse'unuzun Dosyalar dizininde OptimizedRoute.geojson'a gidin ve açılan menüyü göstermek için üç noktayı (...) seçin.

  3. Açılan menüden Haritada göster'i seçin.

    Lakehouse sekmesi seçili olan ve WorkorderLocationsLakehouse’un genişletildiği Microsoft Fabric Haritalar Gezgini panelinin ekran görüntüsü. Dosyalar klasörü, OptimizedRoute.geojson dosyası ve WorkorderLocations.csv dosyasını içerir. OptimizedRoute.geojson öğesinin yanında, Haritada göster seçeneği kırmızı bir dikdörtgenle belirginleştirilmiş olarak seçenekleri gösteren bir bağlam menüsü açılır. Veri katmanları panelinde, WorkordersFunction görünürlük değiştirme anahtarı olan mevcut bir katman olarak gösterilir.

  4. Veri katmanları panelinde WorkordersFunction katmanı için görünürlüğü kapatın.

İşlem tamamlandıktan sonra, doku haritaları haritanızda yeni harita katmanı görünür.

Viyana, Avusturya'nın sokak haritasını ve dokuz numaralı yol noktalarını bağlayan mavi çizgiler şeklinde gösterilen optimize edilmiş bir rotayı gösteren Microsoft Fabric Haritalar'ın ekran görüntüsü. Soldaki Gezgin bölmesi, OptimizedRoute.geojson ve WorkorderLocations.csv dosyalarını içeren bir Dosyalar klasörü barındıran WorkorderLocationsLakehouse ile genişletilmiş Lakehouse sekmesini gösterir. Veri katmanları paneli iki katmanı görüntüler: Görünürlüğü kapalı olan WorkordersFunction ve 1 ile 9 arasında numaralandırılmış durakları olan bağlı yol güzergahını gösteren OptimizedRoute ile optimize edilmiş ziyaret sırasını gösterir.

Harita katmanı ayarları

Doku Haritaları, verilerin haritada nasıl sunulduğunu denetlemenize olanak sağlayan bir dizi katman ayarı sağlar. Bu bölümde, katmanı yeniden adlandırarak, simge stilini ayarlayarak ve alan değerlerine göre etiketleri yapılandırarak rota iyileştirme işleminden oluşturulan katmanı özelleştirebilirsiniz. Bu ayarlar okunabilirliği artırmaya yardımcı olur ve iş emri verilerini bir bakışta yorumlamayı kolaylaştırır.

Katmanı yeniden adlandırma

  1. Veri katmanları panelinde, üç noktayı (...) seçerek OptimizedRoute seçenekleri menüsünü açın.

  2. Seçenekler menüsüne girdikten sonra Yeniden Adlandır'ı seçin.

    WorkordersFunction ve OptimizedRoute katmanlarını gösteren Microsoft Fabric Haritalar Veri katmanları panelinin ekran görüntüsü. OptimizedRoute katmanının seçenekler menüsü, Yeniden Adlandır seçeneğini vurgulayan kırmızı bir dikdörtgenle genişletilmiştir. Diğer menü seçenekleri sığdırmak için Yakınlaştır, Çoğalt ve Sil'i içerir. Panel, Viyana Avusturya bölgesini gösteren bir sokak haritası arka planı üzerinde görünür.

Harita düzeyinde etiketleri kaldırma

Etiketler'i harita düzeyinde açtığınızda veya kapattığınızda, bu durum temel harita metin etiketlerini etkiler. Bu etiketler temel harita stilinden gelir ve şunları içerir:

  • Şehir ve şehir adları
  • Ülke ve bölge adları
  • Yol ve otoyol adları
  • Su özelliği adları (nehirler, göller, okyanuslar)
  • Diğer yönetim veya coğrafi yer adları

Etiketler gösterilmediğinde, temel harita üzerinde herhangi bir yer adı metni olmadan harita "daha temiz" ve daha sade görünür.

Temel harita etiketlerini kapatmak için:

  1. Haritanızı Fabric Maps'te açın.

  2. Menü çubuğundan Harita ayarları'nı seçin.

  3. Etiketler onay kutusunu bulun ve işaretini kaldırın.

    Birden çok yol noktasına bağlanan mor rota çizgileriyle Viyana Avusturya'nın sokak haritasını gösteren Microsoft Fabric Haritalar arabirimini gösteren ekran görüntüsü. Sol tarafta, Veri katmanları panelinin WorkordersFunction ve Optimize Edilmiş Rota katmanlarını listelendiği Gezgin bölmesi gösterilir. Üstteki araç çubuğunda Harita ayarları düğmesi kırmızı bir dikdörtgenle vurgulanır. Sağ tarafta, Etiketler onay kutusunun işaretsiz olduğu ve kırmızı dikdörtgenle vurgulandığı Temel Harita ayarları paneli görüntülenir.

Doku Haritalardaki Harita ayarları hakkında daha fazla bilgi için bkz Harita Ayarlarını Değiştir

Katmana veri etiketleri ekleme

Veri etiketleri, katmanın veri kümesindeki bir veya daha fazla alandan gelen veri temelli ek açıklamalardır. Bunlar, iş emri konumlarını temsil eden haritadaki noktalar gibi katman düzeyi harita özelliklerine doğrudan bağlıdır. Doku Eşlemeleri veri etiketleri hakkında daha fazla bilgi için bkz. Veri etiketi ayarları.

  1. Veri katmanları panelinde İyileştirilmiş Yol'a tıklayın. İyileştirilmiş Yol ayarları paneli ekranın sağ tarafında görünür.

  2. İyileştirilmiş Yol ayarları panelinde Veri etiketi ayarları'nı seçin>.

  3. Veri etiketlerini açmak için Veri etiketlerini etkinleştir iki durumlu düğmesini seçin. Bu, daha fazla veri etiketi ayarı gösterir.

  4. Aşağıdaki veri etiketi ayarlarını değiştirin:

    • Veri etiketleri: optimize edilmişIndex
    • Metin rengi: beyaz
    • Metin boyutu kaydırıcısı 20 olarak ayarlandı
    • Metin kontur rengi: Siyah
    • Metin çizgi genişliği kaydırıcısı 2 olarak ayarlandı

    Microsoft Fabric Haritalar'ın ekran görüntüsünde, Veri etiketleri ayarları panelinin sağ tarafta genişletildiği, Veri etiketlerini etkinleştir seçeneğinin açık olduğu görülüyor. Veri etiketleri açılır menüsü optimizedIndex olarak ayarlanmış, Metin rengi beyaz renk seçimcisiyle gösterilmiş, Metin boyutu kaydırıcısı 20 olarak ayarlanmış, Metin kontur rengi siyah olarak gösteriliyor ve Metin kontur genişliği kaydırıcısı 2 olarak ayarlanmış. Ana harita alanında, 1'den 9'a kadar etiketlenmiş numaralı yol noktalarını bağlayan mor rota çizgileriyle Viyana, Avusturya'nın caddeleri üzerinde optimize edilmiş ziyaret sırası gösterilmektedir. Soldaki Veri katmanları panelinde görünürlüğü gizli olan WorkordersFunction ve etkin katman olarak Optimizasyonlu Rota gösterilmektedir.

Özet

Bu öğreticide, Microsoft Fabric Real-Time Intelligence ve Fabric Maps kullanarak uçtan uca, gerçek zamanlı bir iş emri yönlendirme senaryosu oluşturma gösterilmektedir. Akış iş emri verileri KQL kullanılarak alınıp dönüştürülür ve sorgulanır, ardından iş emri konumlarının dinamik, sürekli güncelleştirilen bir görünümünü oluşturmak için haritada görselleştirilir. Yönlendirme mantığı ve en uygun yol hesaplamalarını tümleştiren çözüm, gerçek zamanlı jeo-uzamsal analizin dağıtıcıların ve saha operasyonları ekiplerinin daha hızlı, daha iyi bilgilendirilmiş kararlar almalarına nasıl yardımcı olabileceğini gösterir.

Bu düzen filo izleme, varlık izleme ve olay yanıtı gibi diğer konum tabanlı senaryolara genişletilebilir. Microsoft Fabric, olay odaklı verileri, KQL tabanlı analizleri ve harita tabanlı görselleştirmeleri birleştirerek ham akış verilerinden neredeyse gerçek zamanlı olarak eyleme dönüştürülebilir coğrafi içgörülere geçiş sağlar.

Sonraki Adımlar

Bu öğreticide ele alınan Doku Haritaları makaleleri hakkında daha fazla bilgi için: