Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu makale, değişken kitaplıkları tümleştirmesine dayalı olan ve yalnızca CI/CD desteğine sahip Dataflow 2. Nesil için CI/CD ve ALM (Uygulama Yaşam Döngüsü Yönetimi) çözüm mimarilerinden bir çözüm mimarisine odaklanır.
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
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
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.
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.
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.
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.
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.
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:
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")
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:
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.
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.
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.
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.
Önemli
Bir değişkeni barındıran tüm sorgularınızın hazırlamanın devre dışı olduğundan emin olun.
- Veri Akışını Kaydetme: Şeridin giriş sekmesindeki Kaydet düğmesini kullanın.
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.