Aracılığıyla paylaş


Veri Akışındaki değişken referansları

Dataflow 2. Nesil'deki doku değişken kitaplıkları, ortamlar arasında merkezi ve yeniden kullanılabilir yapılandırma yönetimi sağlar. Veri akışı betiklerinde değişkenlere doğrudan başvuruda bulunarak, CI/CD iş akışları için ideal olan sabit kodlamadan davranışı dinamik olarak ayarlayabilirsiniz. Bu tümleştirme, sağlamak için çalışma alanına özgü değerlerin (Lakehouse veya Çalışma Alanı Kimlikleri gibi) çalışma zamanında eklenmesine olanak tanıyarak aşamalar arasında dağıtımı basitleştirir ve veri akışlarınızı daha uyarlanabilir ve sürdürülebilir hale getirir.

Bu eğitim, veri akışında değişken referansları kullanan örnek bir çözümü size yol gösterir ve nasıl yapıldığını gösterir:

  • Değişkenleri ayarlama: Doku değişken kitaplıklarını ve bunların ayrı veri türlerini kullanma
  • Değişken temelli kaynak: Kaynak olarak WideWorldImpoters örnek veri kümesiyle lakehouse kullanma
  • Değişken temelli mantık: Veri akışı deneyimi boyunca kullanılabilen giriş pencere öğelerini kullanma
  • Değişken temelli hedef: Ambarı hedef olarak kullanma

Veri Akışı 2. Nesil'de değişken başvuruları kullanan bir çözüm mimarisinin diyagramı.

Uyarı

Bu makalede gösterilen kavramlar, Veri Akışı 2. Nesil için evrenseldir ve burada gösterilenlerin ötesindeki diğer kaynaklar ve hedefler için geçerlidir.

Senaryo

Dataflow 2. Nesil içindeki senaryo için dimension_city adlı sorgunun ekran görüntüsü.

Bu senaryoda kullanılan veri akışı basittir, ancak açıklanan temel ilkeler tüm veri akışı türleri için geçerlidir. Bir Lakehouse'da depolanan Wide World Importers adlı örnek veri kümesindeki dimension_city adındaki tabloya bağlanır. SalesTerritory sütununun Güneydoğu'ya eşit olduğu satırları filtreler ve sonucu Bir Ambarda Şehir adlı yeni bir tabloya yükler. Lakehouse, Warehouse ve Dataflow gibi tüm bileşenler aynı Çalışma Alanında bulunur. Veri akışını dinamik hale getirmek için, kaynak tabloyu, filtre değerini ve hedef tabloyu yönlendirmek için değişkenleri kullanırsınız. Bu değişiklikler veri akışının sabit kodlanmış olanlar yerine Doku değişken kitaplıklarında depolanan değerlerle çalışmasını sağlar.

Değişkenleri ayarlama

Uyarı

Kuruluşunuz veya güvenlik grubunuz için Fabric değişken kitaplıklarını etkinleştirdiğinizden emin olun. Değişken kitaplıklarını kullanmaya başlama hakkında daha fazla bilgi edinin.

En iyi uygulama olarak, çözüm oluşturmadan önce her zaman bir tasarımın göz önünde bulundurulması ve Veri Akışınızdaki hangi bileşenlerin dinamik olarak bir değişken kitaplığından kaynaklandığı önerilir. Bir çalışma alanı içinde birden çok kitaplık oluşturabilirsiniz ancak bu örnekte, Veri Akışı 2. Nesil'in kullandığı değişkenleri barındıran Kitaplığım adlı tek bir kitaplık kullanılır:

Değişken adı Türü Amaç
WorkspaceId Kılavuz Veri akışı içinde veri kaynağı ve hedef scriptler için kullanılır
LakehouseId Kılavuz Kaynak olarak kullanılan Lakehouse kimliğini belirler
WarehouseId Kılavuz Hedef olarak kullanılan Ambarın kimliğini belirler
Bölge String Veri akışındaki filtre mantığını yönlendirmek için hangi değerin kullanılacağını ayarlar

Kendi ortamınıza karşılık gelen varsayılan değerleri ayarladığınızdan emin olun ve değişken kitaplığını kaydedin.

WorkspaceId, LakehouseId, WarehouseId ve Territory değişkenleriyle yeni oluşturulan Doku değişken kitaplıklarının ekran görüntüsü.

Değişken yönlendirmeli kaynak

Lakehouse, Warehouse veya Fabric SQL gibi Doku bağlayıcılarından herhangi birini kullanırken hepsi aynı gezinti yapısını izler ve aynı giriş biçimini kullanır. Bu senaryoda, bağlayıcıların hiçbiri bağlantı kurmak için el ile giriş gerektirmez. Ancak, her biri sorgunuzdaki gezinti adımları aracılığıyla bağlandığı çalışma alanını ve öğeyi gösterir. Örneğin, ilk gezinti adımı, sorgunun bağlandığı workspaceId'yi içerir.

dimension_city sorgusunun formül çubuğunda workspaceId değerini içeren Gezinti 1 adımının ekran görüntüsü.

Amaç, formül çubuğundaki sabit kodlanmış değerleri değişkenlerle değiştirmektir. Özellikle, bu mantığı yönlendirmek için WorkspaceId ve LakehouseId değişkenlerini kullanmak istiyorsunuz. İlk olarak, bu değişkenleri Veri Akışı 2. Nesil'e getirmeniz gerekir. Önerilen bir yaklaşım, kullanmayı planladığınız değişkenleri merkezileştirmek ve kolayca yönetmek için her ayrı değişken için sorgular oluşturmaktır. Bunu yapmak için, şeritteki Veri al girdisine gidip açılan menüden Boş sorgu seçeneğini belirleyerek boş bir sorgu oluşturun.

Boş sorgu oluşturmak için Giriş sekmesindeki Veri al sekmesindeki girdinin ekran görüntüsü.

Bu seçeneğin seçilmesi, oluşturulan boş sorguyu görebileceğiniz yeni bir iletişim kutusu getirir. Tamam'ı seçerek bu yeni boş sorguyu getirebilirsiniz.

Boş sorgu iletişim kutusunun ekran görüntüsü.

Sorgunuz oluşturulduktan ve veri akışında göründüğünde, sorguyu WorkspaceId olarak yeniden adlandırın ve Kaynak adımındaki formülü şu şekilde değiştirin:

Variable.ValueOrDefault("$(/**/My Library/WorkspaceId)", "Your Workspace ID")

Bu betik temelde hangi kitaplığın ve değişkenin getirileceğini belirleyebilen betiktir. İşlevin Variable.ValueOrDefault ikinci bağımsız değişkeni, bir değişken alınamıyorsa hangi değerin kullanılacağını tanımlar.

Uyarı

İşlevin ikinci bağımsız değişkeni olan "Çalışma Alanı Kimliğiniz" dizesini ortamınızda kendi karşılık gelen değerinizle değiştirip sorguyu kaydettiğinizden emin olun.

LakehouseId değişkeni için bu işlemi yineleyin ve değişkeniyle aynı ada sahip bir sorgu oluşturun, ancak Kaynak adımı için aşağıdaki formülü kullanın:

Variable.ValueOrDefault("$(/**/My Library/LakehouseId)", "Your Lakehouse ID")

Uyarı

İşlevin ikinci bağımsız değişkeni olan "Lakehouse Kimliğiniz" dizesini ortamınızda kendi karşılık gelen değerinizle değiştirdiğinizden emin olun ve sorguyu kaydedin.

LakehouseId ve WorkspaceId adlı yeni oluşturulan sorguları gösteren ekran görüntüsü.

Her iki sorgu da oluşturulduktan sonra sorgu betiğini sabit kodlanmış değerler yerine bunları kullanacak şekilde güncelleştirebilirsiniz. Bu, formül çubuğundaki özgün değerleri WorkspaceId ve LakehouseId sorgularına başvurularla el ile değiştirmeyi içerir. Özgün sorgu betiği şöyle görünür:

let
  Source = Lakehouse.Contents([]),
  #"Navigation 1" = Source{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
  #"Navigation 2" = #"Navigation 1"{[lakehouseId = "2455f240-7345-4c8b-8524-c1abbf107d07"]}[Data],
  #"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
  #"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
  #"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
  #"Removed columns"

Gezinti adımlarındaki referansları güncelledikten sonra güncellenmiş betiğiniz şu şekilde görünebilir:

let
  Source = Lakehouse.Contents([]),
  #"Navigation 1" = Source{[workspaceId = WorkspaceId]}[Data],
  #"Navigation 2" = #"Navigation 1"{[lakehouseId = LakehouseId]}[Data],
  #"Navigation 3" = #"Navigation 2"{[Id = "dimension_city", ItemKind = "Table"]}[Data],
  #"Filtered rows" = Table.SelectRows(#"Navigation 3", each ([SalesTerritory] = "Southeast")),
  #"Removed columns" = Table.RemoveColumns(#"Filtered rows", {"ValidFrom", "ValidTo", "LineageKey"})
in
  #"Removed columns"

Ayrıca, veri akışı düzenleyicisindeki veri önizlemesini, diyagram görünümünde oluşturulan doğrudan başvurularla ilgili tüm sorgular arasında doğru şekilde değerlendirdiğini fark edeceksiniz:

dimension_city sorgusunda başvurulmakta olan WorkspaceId ve LakehouseId sorgularının ekran görüntüsü.

Değişken temelli mantık

Artık kaynak değişkenleri kullandığına göre, veri akışının dönüştürme mantığını değiştirmeye odaklanabilirsiniz. Bu senaryoda, filtre adımı mantığın uygulandığı yerdir ve şu anda Güneydoğu olarak sabit kodlanmış olan filtrelenen değer bir değişkene başvuran bir sorguyla değiştirilmelidir. Bunu yapmak için, yeni bir boş sorgu oluşturma işlemini aynı şekilde yineler, Kaynak adımının formülünü Territory değişkenini tutacak şekilde tekrar kullanır ve sorgunun adını da değişken adıyla değiştirirsiniz. Aşağıdaki betiği kullanın:

Variable.ValueOrDefault("$(/**/My Library/Territory)", "Mideast")

Veri akışında oluşturulan Territory sorgusunun ekran görüntüsü.

Filtre adımınızın kullanıcı arabirimi kullanılarak oluşturulduğu göz önünde bulundurulduğunda, Filtrelenmiş satırlar adımına gidebilir, iki kez seçebilir ve filtre adımının ayarlar iletişim kutusunu alabilirsiniz. Bu iletişim kutusu, statik değer yerine sorgu kullanmak istiyorsanız giriş pencere öğesi aracılığıyla seçim yapmanızı sağlar:

Sorguya başvurma seçeneğiyle birlikte satırları filtreleme iletişim kutusunda giriş bileşeninin ekran görüntüsü.

Sorgu seç seçeneğini seçtikten sonra, aralarından seçim yapabileceğiniz tüm sorguları gösteren bir açılan liste görüntülenir. Bu listeden yeni oluşturulan Territory sorgusunu seçebilirsiniz.

Giriş pencere öğesi içinde filtre satırları iletişim kutusundan seçili olan Territory sorgusunun ekran görüntüsü.

Tamam'ı seçtiğinizde, diyagram görünümünün Territory sorgusuyla kullanımdaki sorgu arasındaki bağlantıyı önceden oluşturduğuna dikkat edin. Yalnızca bu değil, veri önizlemesinde artık Mideast bölgesiyle ilgili bilgiler de gösterilir.

Mideast SalesTerritory verilerini gösteren dimension_city sorgusu için Diyagram görünümünün, Sorgu ayarlarının ve Veri önizlemesinin ekran görüntüsü.

Değişken odaklı hedef

Uyarı

Dataflow 2. Nesil'deki veri hedefleri kavramını ve karma betiğinin veri hedefleri ve yönetilen ayarlar hakkındaki makaleden nasıl oluşturulduğunu anlamanız önerilir

Bu senaryoda değiştirilecek son bileşen hedeftir. Veri hedefinin ne olduğuyla ilgili bilgiler Veri Akışı düzenleyicisinde bulunabilir ancak veri akışının bu bölümünü değiştirmek için Git'i veya REST API'yi kullanmanız gerekir.

Dimension_city sorgusunun veri hedefi ayarlarını içeren açılır pencerenin ekran görüntüsü.

Bu öğreticide, Değişiklikleri Git aracılığıyla nasıl yapacağınız gösterilmektedir. Git aracılığıyla değişiklik yapabilmeniz için önce şunları yaptığınızdan emin olun:

  • WarehouseId değişkeni için sorgu oluşturma: Yeni bir boş sorgu oluşturmak ve Kaynak adımının formülünü değiştirmek için önceki bölümlerde açıklanan işlemi izleyin:
Variable.ValueOrDefault("$(/**/My Library/WarehouseId)", "Your Warehouse ID")

Uyarı

İşlevin ikinci bağımsız değişkeni olan "Ambar Kimliğiniz" dizesini ortamınızda kendi karşılık gelen değerinizle değiştirip sorguyu kaydettiğinizden emin olun.

Yeni oluşturulan WarehouseId sorgusu dahil olmak üzere veri akışındaki tüm sorguların ekran görüntüsü.

Önemli

Bir değişkeni barındıran tüm sorgularınızın hazırlamanın devre dışı olduğundan emin olun. Bağlam menüsündeki sorgu için hazırlama seçeneğinin ekran görüntüsü.

  • Veri Akışını Kaydetme: Şeridin giriş sekmesindeki Kaydet düğmesini kullanın.

Veri akışı kaydet düğmesinin ekran görüntüsü.

Veri Akışınız kaydedildikten sonra değişiklikleri Git deponuza işlediğinizden emin olun ve Veri akışınızın mashup.pq dosyasını görmek için deponuza gidin. mashup.pq dosyasına bakarken, veri hedefini ilişkilendirdiğiniz sorguyu arayın. Bu senaryoda, bu sorgunun adı dimension_city. Bu sorgu adının üzerinde bir kayıt özniteliği görürsünüz:

[DataDestinations = {[Definition = [Kind = "Reference", QueryName = "dimension_city_DataDestination", IsNewTarget = true], Settings = [Kind = "Manual", AllowCreation = true, ColumnSettings = [Mappings = {[SourceColumnName = "CityKey", DestinationColumnName = "CityKey"], [SourceColumnName = "WWICityID", DestinationColumnName = "WWICityID"], [SourceColumnName = "City", DestinationColumnName = "City"], [SourceColumnName = "StateProvince", DestinationColumnName = "StateProvince"], [SourceColumnName = "Country", DestinationColumnName = "Country"], [SourceColumnName = "Continent", DestinationColumnName = "Continent"], [SourceColumnName = "SalesTerritory", DestinationColumnName = "SalesTerritory"], [SourceColumnName = "Region", DestinationColumnName = "Region"], [SourceColumnName = "Subregion", DestinationColumnName = "Subregion"], [SourceColumnName = "Location", DestinationColumnName = "Location"], [SourceColumnName = "LatestRecordedPopulation", DestinationColumnName = "LatestRecordedPopulation"]}], DynamicSchema = false, UpdateMethod = [Kind = "Replace"], TypeSettings = [Kind = "Table"]]]}]
shared dimension_city = let

Bu öznitelik kaydında, bu sorgu için ilişkili tüm veri hedefi mantığına sahip sorgunun adını tutan QueryName adlı bir alan vardır. Bu sorgu aşağıdaki gibi görünür:

shared dimension_city_DataDestination = let
  Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
  Navigation_1 = Pattern{[workspaceId = "8b325b2b-ad69-4103-93ae-d6880d9f87c6"]}[Data],
  Navigation_2 = Navigation_1{[warehouseId = "527ba9c1-4077-433f-a491-9ef370e9230a"]}[Data],
  TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
  TableNavigation

Lakehouse kaynağının komut dosyasına benzer şekilde, hedef için de bu komut dosyası, kullanılacak olan workspaceid ve warehouseId değerlerini sabit kodlayan benzer bir desene sahiptir. Bu sabit değerleri oluşturduğunuz sorguların tanımlayıcılarıyla değiştirin; betiğiniz aşağıdaki gibi görünür:

shared dimension_city_DataDestination = let
  Pattern = Fabric.Warehouse([HierarchicalNavigation = null, CreateNavigationProperties = false]),
  Navigation_1 = Pattern{[workspaceId = WorkspaceId]}[Data],
  Navigation_2 = Navigation_1{[warehouseId = WarehouseId]}[Data],
  TableNavigation = Navigation_2{[Item = "City", Schema = "dbo"]}?[Data]?
in
  TableNavigation

Artık çalışma alanınızdaki kaynak denetimi özelliği aracılığıyla Veri akışınızdaki değişiklikleri kullanarak bu değişikliği işleyebilir ve veri akışınızı güncelleştirebilirsiniz.

Artık değişken kitaplıklarından değerleri kullanan Veri Akışınızı çalıştırabilirsiniz.