Aracılığıyla paylaş


Eğitici Kılavuz: PowerShell kullanarak Azure Data Factory işlem hatlarınızı Fabric işlem hatlarına yükseltme

Azure Data Factory (ADF) işlem hatlarınızı Microsoft.FabricPipelineUpgrade PowerShell modülünü kullanarak Microsoft Fabric'e geçirebilirsiniz. Bu öğretici, belirli yönergeler, ekran görüntüleri ve sorun giderme adımlarıyla geçişi gerçekleştirmeye yönelik tüm adımların bir örneğini sağlar. Daha genel ve kısa bir kılavuz için genel bakışa bakın.

Önkoşullar

Başlamak için aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

Yükseltmeye hazırlanma

İşlem hatlarını yükseltmeye başlamadan önce ortamınızda gerekli araçlara ve modüllere sahip olduğunu doğrulayın :

PowerShell 7.4.2 (x64) veya üzerini yükleme

Makinenizde PowerShell 7.4.2 veya üzeri gerekir.

PowerShell'i indirme

FabricPipelineUpgrade modülünü yükleme ve içeri aktarma

  1. PowerShell 7'i (x64) açın.

  2. Başlat menüsünü seçin, PowerShell 7'yi arayın, uygulamanın bağlam menüsünü açın ve Yönetici olarak çalıştır'ı seçin.

    PowerShell simgesinin ekran görüntüsü.

  3. Yükseltilmiş PowerShell penceresinde, modülü PowerShell Galerisi'nden yükleyin:

    Install-Module Microsoft.FabricPipelineUpgrade -Repository PSGallery -SkipPublisherCheck
    
  4. Modülü oturumunuza aktarın:

    Import-Module Microsoft.FabricPipelineUpgrade
    
  5. İmzalama veya yürütme ilkesi hatası görürseniz şu komutu çalıştırın ve modülü yeniden içeri aktarın:

    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
    

Yüklemenizi doğrulama

Modülün doğru yüklendiğini onaylamak için şu komutu çalıştırın:

Get-Command -Module Microsoft.FabricPipelineUpgrade

Modül komut çıkışının ekran görüntüsü.

PowerShell pencerenizi açık tutun; bunu yükseltme için kullanacaksınız.

İlk Yükseltmeniz

Örnek bir pipeline oluşturacak ve adım adım kılavuz olarak onu Fabric'e yükselteceğiz.

Basit bir ADF İşlem Hattı oluşturun

Azure Data Factory Studio'da bir işlem hattı oluşturun ve Bekleme etkinliği ekleyin. İstediğiniz gibi adlandırabilirsiniz, ancak bu öğreticide pipeline1 kullanılır.

PowerShell ortamınızı hazırlama

  1. PowerShell pencerenizde, oturum açmak ve aboneliğinizi ayarlamak için <your subscription ID> değerlerini değiştirin ve PowerShell'de şu komutları çalıştırın:

    Add-AzAccount 
    Select-AzSubscription -SubscriptionId <your subscription ID>
    
  2. Oturumunuzun güvenli ADF belirtecini depolamak için şu komutu çalıştırın:

    $adfSecureToken = (Get-AzAccessToken -ResourceUrl "https://management.azure.com/").Token
    
  3. PowerShell penceresinde <your subscription ID> değerlerini değiştirin, <your Resource Group Name> ve <your Factory Name> çalıştırın.

    Import-AdfFactory -SubscriptionId <your subscription ID> -ResourceGroupName <your Resource Group Name> -FactoryName <your Factory Name> -PipelineName "pipeline1" -AdfToken $adfSecureToken
    

    Tavsiye

    Birden çok işlem hattına sahip Veri Fabrikaları için -PipelineName parametresini bırakarak tüm işlem hatlarını aynı anda içeri aktarabilirsiniz.

Bu komut, Azure Data Factory'nizden işlem hattını ve ilişkili yapıtları yükler ve ilk "Yükseltme İlerlemesi" için JSON'yi oluşturur.

{
  "state": "Succeeded",
  "alerts": [],
  "result": {
    "importedResources": {
      "type": "AdfSupportFile",
      "adfName": "testdatafactory,
      "pipelines": {
        "pipeline1": {
          "name": "pipeline1",
          "type": "Microsoft.DataFactory/factories/pipelines",
          "properties": {
            "activities": [
              {
                "name": "Wait1",
                "type": "Wait",
                "dependsOn": [],
                "userProperties": [],
                "typeProperties": {
                  "waitTimeInSeconds": 1
                }
              }
            ],
            ],
            "policy": {
              "elapsedTimeMetric": {}
            },
            "annotations": [],
            "lastPublishTime": "2025-09-09T02:46:36Z"
          },
          "etag": "aaaaaaaa-bbbb-cccc-1111-222222222222"
        }
      },
      "datasets": {},
      "linkedServices": {},
      "triggers": {}
    }
  },
  "resolutions": []
}

Bu alanların anlamı

  • durum: Durumu gösterir. Başarılı yazıyorsa, iyisin demektir.
  • uyarılar: Sorunları veya ek bilgileri listeler.
  • result: Sonucu gösterir. Burada importedResources, ADF yapıtlarını listeler.
  • çözümler: ADF Bağlı Hizmetleri Doku Bağlantılarına eşlemek için kullanılır (sonraki bölüm).

ADF İşlem Hattınızı Fabric İşlem Hattına Dönüştürün

  1. PowerShell pencerenizde, az önce çalıştırdığınız Import-AdfFactory komutunu alın ve satırın sonuna ConvertTo-FabricResources komutunu ekleyin | .

    Tam komutunuz şu şekilde görünmelidir:

    Import-AdfFactory -SubscriptionId <your subscription ID> -ResourceGroupName <your Resource Group Name> -FactoryName <your Factory Name> -PipelineName  "pipeline1" -AdfToken $adfSecureToken | ConvertTo-FabricResources
    
  2. komutunu çalıştırın. Aşağıdakine benzer bir yanıt görmeniz gerekir:

    {
      "state": "Succeeded",
      "alerts": [],
      "result": {
        "exportableFabricResources": [
          {
            "resourceType": "DataPipeline",
            "resourceName": "pipeline1",
            "resolve": [],
            "export": {
              "name": "pipeline1",
              "properties": {
                "activities": [
                  {
                    "name": "Wait1",
                    "type": "Wait",
                    "dependsOn": [],
                    "userProperties": [],
                    "description": null,
                    "typeProperties": {
                      "waitTimeInSeconds": 1
                    }
                  }
                ]
              },
              "annotations": []
            }
          }
        ]
      },
      "resolutions": []
    }
    

Standart Yükseltme İlerlemesini görürsünüz, ancak şimdi sonuç alanında exportableFabricResources yer alır. Bu beklenen bir durum; Doku kaynaklarını dışa aktarmaya hazırlıyorsunuz.

Çözünürlükler alanı hakkında daha sonra bilgi edineceksiniz. Şimdilik dışa aktarma alanında Bekleme etkinliğine sahip bir Fabric işlem hattı gösterilir.

Burada durursanız, bu komut What-If gibi davranır: yükseltmenin ne oluşturacağını gösterir ve herhangi bir değişiklik yapmadan önce yükseltmeyi doğrulamanın iyi bir yoludur.

Fabric çalışma alanınızdan bilgi topla

Doku işlem hattınızı dışarı aktarmadan önce, Doku çalışma alanınızdan birkaç ayrıntıya ihtiyacınız olacaktır. Daha sonra ihtiyacınız olacak değerleri kopyalamak için boş bir metin dosyası açın.

  1. Microsoft Fabric UX'i açın ve Data Factory Çalışma Alanınıza gidin.

  2. Çalışma Alanı Kimliğinizi bulun ve metin dosyanıza kopyalayın.

  3. Doku Erişim Belirtecinizi almak ve oturumunuz için depolamak için bu PowerShell komutunu çalıştırın:

    $fabricSecureToken = (Get-AzAccessToken -ResourceUrl "https://analysis.windows.net/powerbi/api").Token
    

    Tavsiye

    Erişim belirteçlerinin süresi yaklaşık bir saat sonra dolar. Bu durumda komutunu yeniden çalıştırın. Export-FabricResources bir belirteç süre sonu hatası döndürürse belirtecin süresinin dolduğunu bilirsiniz.

Fabric İşlem Hattını Dışarı Aktarma

  1. Topladığınız tüm ayrıntıları şu komutta birleştirin:

    Import-AdfFactory -SubscriptionId <your Subscription ID> -ResourceGroupName <your Resource Group Name> -FactoryName <your Data Factory Name> -PipelineName  "pipeline1" -AdfToken $adfSecureToken | ConvertTo-FabricResources | Export-FabricResources -Region <region> -Workspace <workspaceId> -Token $fabricSecureToken
    
  2. Şimdi, metin belgesinden PowerShell pencerenize komutunu kopyalayın ve komutunu çalıştırın.

    Aşağıdakine benzer bir yanıt görmeniz gerekir:

    {
        "state": "Succeeded",
        "alerts": [],
        "result": {
          "exportedFabricResources": {
            "pipeline1": {
              "type": "DataPipeline",
              "workspaceId": "<your Workspace ID>",
              "id": "<The GUID of your new Pipeline>,
              "displayName": "pipeline1",
              "description": null
            }
          }
        }
      }
    

Bu, işe yaradığı anlamına geliyor! exportedFabricResources bölümünde yeni işlem hattınız ve kimliği gösterilmektedir. Şimdi Doku çalışma alanınızı Doku UX'te açın. Sayfayı yenilediğinizde listede pipeline1'i görürsünüz. Açın ve tam olarak beklediğiniz şeyi bulacaksınız!

İkinci yükseltmeniz: Bazı verileri kopyalama

Bu ikinci yükseltme ilk yükseltmeye çok benzer, ancak birkaç yeni kavram tanıtır:

  • Veri Kümeleri ve Bağlı Hizmetler
  • Resolutions

Doku İşlem Hattı Yükselticisi şu anda sınırlı sayıda veri kümesini desteklediğinden Azure Blob Depolama bağlantılarını ve JSON veri kümelerini kullanacağız. Hadi dalalım.

  1. ADF Studio'da, Azure Blob Depolamanızdaki bir klasörden diğerine bir JSON dosyası kopyalayan bir işlem hattı oluşturun. Bu işlem hattını "pipeline2" ve Azure Blob Depolama bağlantısı "BlobStore1" olarak adlandıracağız, ancak yine istediğiniz adları kullanabilirsiniz.

  2. İşlem hattınızı içeri aktarmak ve geçiş sonucunun ne olacağını denetlemek için öncekiyle aynı What-If komutunu çalıştırın. Mutlaka işlem hattı adını güncelleyin.

    Import-AdfFactory -SubscriptionId <your Subscription ID> -ResourceGroupName <your Resource Group Name> -FactoryName <your Data Factory Name> -PipelineName  "pipeline2" -AdfToken $adfSecureToken | ConvertTo-FabricResources
    

Çıktıda işlem hattı öncekine benzer ancak şimdi exportableFabricResources da dahil olmak üzere daha fazla ayrıntı vardır:

  • Bağlantı için bir tane
  • İşlem Hattı için bir tane

Çıkışın Bağlantı bölümünün bir örneği aşağıda verilmişti:

{
    "resourceName": "BlobStore1",
    "resourceType": "Connection",
    "resolve": [
    {
        "type": "LinkedServiceToConnectionId",
        "key": "BlobStore1",
        "targetPath": "id",
        "hint": {
        "linkedServiceName": "BlobStore1",
        "connectionType": "AzureBlobStorage",
        "datasource": "...",
        "template": {
            "type": "LinkedServiceToConnectionId",
            "key": "BlobStore1",
            "value": "<Fabric Connection ID>"
        }
        }
    }
    ],
    "export": {
    "id": "00000000-0000-0000-0000-000000000000"
    }
}

Çözüm adımında şu ifade yer alıyor: Find the correct GUID and insert it into the id field of this resource. Şimdilik kimliğin tümü sıfırdır (boş bir GUID). İhracatçı sorunu çözemediğinden, ipucu sorunun nasıl çözüleceğine dair rehberlik sağlar.

İşlem Hattı bölümünde benzer adımlar vardır:

"resolve": [
  {
    "type": "AdfResourceNameToFabricResourceId",
    "key": "Connection:BlobStore1",
    "targetPath": "properties.activities[0].typeProperties.source.datasetSettings.externalReferences.connection"
  },
  {
    "type": "AdfResourceNameToFabricResourceId",
    "key": "Connection:BlobStore1",
    "targetPath": "properties.activities[0].typeProperties.sink.datasetSettings.externalReferences.connection"
  }
],

Bu adımlar ne yapar?

Bu resolve adımlar, ADF Bağlı hizmetlerinizi etkinliklerin kaynağına ve havuzuna karşılık gelen Doku Bağlantı Kimliği ile eşlemenize yönelik yönergelerdir.

Bu neden gerçekleşir?

Yükseltici, bu kaynaklar mevcut olmadıkça, bir bağlantı veya işlem hattının Fabric kaynak kimliğinin ne olacağını bilemez. Bu nedenle, gerekli kaynakları oluşturma ve çözüm dosyanızı doldurma hakkında bir ipucu sağlar.

Şimdi Doku İşlem Hattı'nı ihraç edelim (deneme 1)

  1. Erişim belirteçlerinizin süresi dolduysa, bunları şimdi yenileyin.

  2. Önceki derste kullandığınız adımların aynısını ancak bu kez "işlem hattı2" için çalıştırın.

    Import-AdfFactory -SubscriptionId <your Subscription ID> -ResourceGroupName <your Resource Group Name> -FactoryName <your Data Factory Name> -PipelineName  "pipeline2" -AdfToken $adfSecureToken | ConvertTo-FabricResources | Export-FabricResources -Region <region> -Workspace <workspaceId> -Token $fabricSecureToken
    
  3. Bu başarısız olur. Bu kez komut şuna Import | Convert | Export benzer bir şey döndürür:

    {
        "state": "Failed",
        "alerts": [
          {
            "severity": "RequiresUserAction",
            "details": "Please use the hint and template to create/find a new connection and add its ID to your resolutions.",
            "connectionHint": {
              "linkedServiceName": "BlobStore1",
              "connectionType": "AzureBlobStorage",
              "datasource": "...",
              "template": {
                "type": "LinkedServiceToConnectionId",
                "key": "BlobStore1",
                "value": "<Fabric Connection ID>"
              }
            }
          }
        ],
        "resolutions": [],
        "result": {}
      }
    

(Son adımın sonunu okuduysanız, muhtemelen connectionHint'yi tanıyacaksınız.)

Hata, "çözümlerinize bir bağlantının kimliğini eklememiz" gerektiğini belirtiyor.

Ne oldu?

Fabric Yükseltici, Fabric bağlantılarını kendi başına oluşturamaz. Doku bağlantısını el ile oluşturup yükselticiye ne zaman kullanılacağını söyleyerek yardımcı olmanız gerekir.

Çözüm dosyası oluşturma

  1. İlk olarak bir Çözüm dosyası oluşturun. Dosyayı istediğiniz gibi adlandırabilir ve makinenizde istediğiniz yere kaydedebilirsiniz (PowerShell erişebildiği sürece), ancak bu öğreticide D:\Resolutions.json kullanılır.

  2. Dosyayı şu şekilde başlatın:

    [
    ]
    
  3. Ardından, yükselticinizin size verdiği ipucundan eksik çözünürlüğünüzü ekleyin. Hata iletisinin connectionHint bölümünde 'şablon' altında bulabilirsiniz.

    [
        "type": "LinkedServiceToConnectionId",
        "key": "BlobStore1",
        "value": "<Fabric Connection ID>"
    ]
    
  4. Şimdi bunu bulmalıyız <Fabric Connection ID>. Bunu yapmak için Doku UX'te Doku çalışma alanınıza gidin, sağ üst köşedeki dişli simgesini seçin ve ardından Bağlantıları ve ağ geçitlerini yönet'i seçin.

  5. Bağlantı henüz Fabric'te yoksa, ADF işlem hattınızın kullandığı Azure Blob Depolama hesabına yeni bir bağlantı oluşturun. Her şeyi adlandırabilirsiniz, ancak bu öğreticide "myblob" kullanılır.

  6. Bağlantıyı oluşturduktan sonra, menüyü göstermek için bağlantı adının yanındaki üç nokta düğmesinin üzerine gelin.

  7. Menüden Ayarlar'ı seçin, ardından Bağlantı Kimliği'ni kopyalayın ve yerine <Fabric Connection ID>Çözünürlükler dosyanıza yapıştırın.

  8. Çözüm dosyanız şuna benzer görünmelidir (sizin dosyanız value farklı olacaktır):

    [
        {
            "type": "LinkedServiceToConnectionId",
            "key": "BlobStore1",
            "value": "dddddddd-9999-0000-1111-eeeeeeeeeeee"
        }
    ]
    
  9. Bunu yaparken çözünürlüğünüze şu şekilde bir açıklama ekleyebilirsiniz:

    [
       {
          "comment": "Resolve the ADF 'BlobStore1' LinkedService to the Fabric 'myblob' Connection",
          "type": "LinkedServiceToConnectionId",
          "key": "BlobStore1",
          "value": "dddddddd-9999-0000-1111-eeeeeeeeeeee"
       }
    ]
    

Import-FabricResolutions komutu

Ne yaptığını denetlemek için bu çözümleme dosyasını içeri aktarabilirsiniz.

PowerShell'de şunu çalıştırın:

Import-FabricResolutions -rf "D:\Resolutions.json"

Şunu görmeniz gerekir:

{
  "state": "Succeeded",
  "alerts": [],
  "result": {},
  "resolutions": [
    {
      "type": "LinkedServiceToConnectionId",
      "key": "BlobStore1",
      "value": "dddddddd-9999-0000-1111-eeeeeeeeeeee"
    }
  ]
}

Bu başka bir yükseltme ilerleme durumu nesnesidir, ancak artık resolutions alanı doldurulmuştur.

Daha Import-FabricResolutions komut zincirinde herhangi bir noktada çalıştırabilirsinizExport-FabricResources. Kararlar sonraki adımlara taşınacaktır.

Kumaş İşlem Hattını Dışarı Aktar (deneme 2)

Artık bir çözüm dosyamız olduğuna göre, Import-FabricResolutions adımını ekledikten sonra dışarı aktarmayı yeniden deneyebiliriz.

  1. ve Import-FabricResolutionsarasında Convert ekleyerek Export komutunu güncelleştirin:

    Import-AdfFactory -SubscriptionId <your Subscription ID> -ResourceGroupName <your Resource Group Name> -FactoryName <your Data Factory Name> -PipelineName  "pipeline2" -AdfToken $adfSecureToken | ConvertTo-FabricResources | Import-FabricResolutions -ResolutionsFilename "<path to your resolutions file>" | Export-FabricResources -Region <region> -Workspace <workspaceId> -Token $fabricSecureToken
    
  2. Komutunu PowerShell'de çalıştırın.

Bu sefer işe yarıyor! ExportedFabricResources bölümünde de yeni işlem hattınız ve kimliği gösterilir.

Şimdi Doku çalışma alanınızı Doku UX'te açın. Sayfayı yenilediğinizde listede pipeline1'i görürsünüz. Açın ve tam olarak beklediğiniz şeyi bulacaksınız!

Sonraki Adımlar

artık iki işlem hattını başarıyla yükselttiyseniz, öğrendiklerini kullanarak daha fazla işlem hattını yükseltebilirsiniz.