TripPin bölüm 1 - OData hizmeti için veri bağlayıcısı
Bu çok bölümlü öğretici, Power Query için yeni bir veri kaynağı uzantısı oluşturmayı kapsar. Öğreticinin sırayla yapılması amaçlanır; her ders önceki derslerde oluşturulan bağlayıcı üzerinde oluşturulur ve bağlayıcınıza artımlı olarak yeni özellikler ekler.
Bu derste şunları yapacaksınız:
- Power Query SDK'sını kullanarak yeni bir Data Bağlan or projesi oluşturma
- Kaynaktan veri çekmek için temel işlev yazma
- Bağlayıcınızı Power Query SDK'sında test edin
- Bağlayıcınızı Power BI Desktop'a kaydetme
Temel bir OData bağlayıcısı oluşturma
Bu bölümde yeni bir Data Bağlan or projesi oluşturacak, bazı temel bilgileri sağlayacak ve Power Query SDK'sında test edebilirsiniz.
Visual Studio Code'u açın. Yeni bir çalışma alanı oluşturmanızı ve ardından yeni bir uzantı projesi oluşturmanızı öneririz. Yeni uzantı projesini oluşturmak için gezgini açın ve Power Query SDK'sı bölümünde Uzantı projesi oluştur düğmesini seçin.
Bu düğmeyi seçtikten sonra yeni projenin adını girmeniz istenir. Bu yeni projeye adını verin TripPin
.
TripPin.pq dosyasını açın ve aşağıdaki bağlayıcı tanımına yapıştırın.
section TripPin;
[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Feed = Value.ReplaceType(TripPinImpl, type function (url as Uri.Type) as any);
TripPinImpl = (url as text) =>
let
source = OData.Feed(url)
in
source;
// Data Source Kind description
TripPin = [
Authentication = [
Anonymous = []
],
Label = "TripPin Part 1 - OData"
];
// Data Source UI publishing description
TripPin.Publish = [
Beta = true,
Category = "Other",
ButtonText = { "TripPin OData", "TripPin OData" }
];
Bu bağlayıcı tanımı şunu içerir:
- TripPin bağlayıcısı için Veri Kaynağı tanım kaydı
- Bu kaynak için tek kimlik doğrulama türünün Örtük (Anonim) olduğunu belirten bir bildirim
- OData.Feed'i çağıran bir uygulamaya sahip bir işlev (
TripPinImpl
) - Parametre türünü olarak ayarlayan paylaşılan işlev (
TripPin.Feed
)Uri.Type
- Bağlayıcının Power Query Veri Al iletişim kutusunda görünmesini sağlayan veri kaynağı yayımlama kaydı
TripPin.query.pq dosyasını açın. Geçerli içeriği dışarı aktarılan işlevinize yapılan bir çağrıyla değiştirin.
TripPin.Feed("https://services.odata.org/v4/TripPinService/")
Bağlayıcınızı test etmeden önce oluşturmanız gerekir. Bunu yapmak için Terminal'e gidin ve Derleme Görevini Çalıştır... seçeneğini belirleyin (Klavye kısayolu Ctrl + Shift + B). MakePQX seçeneğinin seçilmesini öneririz, ancak derleme için kullanılabilir seçeneklerden biri işe yaramalıdır.
Bu işlemin sonucu, yerleşik bağlayıcınızın TripPin.mez olarak depolandığı yeni bir Bin klasörü oluşturur.
<project.query.pq> dosyası, uzantınızı Power BI Desktop'ın bin klasörüne dağıtmak zorunda kalmadan test etmek için kullanılır. Power Query SDK'sının içinde bulunan araçları kullanma:
- Kimlik bilgilerini ayarla seçeneğini belirleyin.
- Veri kaynağı olarak TripPin'i seçin.
- TripPin.query.pq dosyasını sorgu/test dosyası olarak seçin.
- Kimlik doğrulama türü olarak anonim'i seçin.
Çıkış iletişim kutusunda, veri kaynağı için bir kimlik bilgisi ayarladığınızı ve oluşturulan her kimlik bilgisi için ayrıntıları onaylayan bir ileti görüntülenir.
Not
Tüm kimlik bilgilerini temizle komutunu kullanarak istediğiniz zaman kimlik bilgilerini temizleyebilir veya Power Query SDK araçlarındaki Kimlik bilgilerini listele komutunu kullanarak kullanılabilir kimlik bilgilerini de kontrol edebilirsiniz.
Kimlik bilgileri artık mevcut olduğunda TripPin.query.pq dosyasını seçin ve geçerli power query dosyasını değerlendirmek için belgeyi sağ seçin veya Power Query SDK araçlarından Geçerli dosyayı değerlendir seçeneğini kullanın.
Çıkış iletişim kutusunda, değerlendirmenizden elde edilen sonuçların iletisinin yanı sıra PQTest sonucu adlı yeni bir pencere görüntülenir.
PQTest sonuç penceresi üç sekmeden oluşur:
- Çıkış: Verilerinizin önizlemesini kılavuzda görüntüler.
- Özet: StartTime, EndTime, Duration, değerlendirme için kullanılan dosya, durum ve daha fazlası gibi genel değerlendirme ayrıntıları.
- DataSource: Tür, İşlev Adı ve yoldan kullanılan Veri Kaynağı hakkında bilgi sağlar.
Farklı sonuçların nasıl döndürüldiğini görmek için test dosyasında birkaç farklı OData URL'sini deneyebilirsiniz. Örneğin:
https://services.odata.org/v4/TripPinService/Me
https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
https://services.odata.org/v4/TripPinService/People
TripPin.query.pq dosyası tek deyimler, let deyimleri veya tam bölüm belgeleri içerebilir.
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/"),
People = Source{[Name="People"]}[Data],
SelectColumns = Table.SelectColumns(People, {"UserName", "FirstName", "LastName"})
in
SelectColumns
Önemli
Çalışırken dosyalarınızı her zaman kaydettiğinizden emin olun. TripPin.pq dosyanızda değişiklik yaparsanız, bağlayıcınızın en son sürümünde test yaptığınızdan emin olmak için her zaman bir sonraki derleme görevini tetiklemeniz gerekir.
HTTP trafiğini yakalamak için Fiddler'ı açın ve sorguyu çalıştırın. Karma kapsayıcı işlemi tarafından oluşturulan services.odata.org için birkaç farklı istek görmeniz gerekir. Hizmetin kök URL'sine erişmenin 302 durumuyla ve URL'nin daha uzun sürümüne yeniden yönlendirmeyle sonuçlandığını görebilirsiniz. Aşağıdaki yeniden yönlendirmeler, temel kitaplık işlevlerinden "ücretsiz" olarak elde ettiğiniz başka bir davranıştır.
URL'lere baktığınızda dikkate alınabilecek bir nokta, deyiminde gerçekleşen sorguyu kaynağa döndürmeyi SelectColumns
görebilmenizdir.
https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName
Sorgunuza daha fazla dönüşüm eklerseniz, bunların oluşturulan URL'yi nasıl etkilediğini görebilirsiniz.
Bu davranışa dikkat edilmesi önemlidir. Açık katlama mantığı uygulamamış olsanız bile bağlayıcınız bu özellikleri OData.Feed işlevinden devralır. M deyimleri oluşturabilendir; filtre bağlamları mümkün olduğunda bir işlevden diğerine akar. Bu, kavram olarak bağlayıcınızda kullanılan veri kaynağı işlevlerinin kimlik doğrulama bağlamını ve kimlik bilgilerini devralma yöntemine benzer. Sonraki derslerde, yerel katlama özelliklerine sahip olan OData.Feed'in kullanımını Web.Contents ile değiştireceksiniz. Aynı özellik düzeyini elde etmek için arabirimini kullanmanız Table.View
ve kendi açık katlama mantığınızı uygulamanız gerekir.
Uzantınızı Power BI Desktop'a yükleme
Uzantınızı Power BI Desktop'ta kullanmak için bağlayıcı projenizin çıkış dosyasını (TripPin.mez) Özel Bağlan ors dizininize kopyalamanız gerekir.
- [Belgelerim]\Power BI Desktop\Özel Bağlan ors dizini oluşturun.
- Uzantı dosyasını (TripPin.mez) bu dizine kopyalayın.
- (Önerilmez) Power BI Desktop'ta herhangi bir uzantının doğrulama veya uyarı olmadan yüklenmesine izin ver seçeneğini işaretleyin (Dosya>Seçenekleri ve ayarları>Seçenekleri>Güvenlik>Veri Uzantıları altında).
- Power BI Desktop'i yeniden başlatın.
- Veri > Al iletişim kutusunu açmak için Daha Fazla Veri Al'ı seçin.
Uzantınızın adını arama kutusuna yazarak uzantınızı bulabilirsiniz.
İşlev adını seçin ve Bağlan'ı seçin. Üçüncü taraf bir ileti görüntülenir; devam etmek için Devam'ı seçin. İşlev çağırma iletişim kutusu artık görüntülenir. Hizmetin kök URL'sini ()https://services.odata.org/v4/TripPinService/
girin ve Tamam'ı seçin.
Bu veri kaynağına ilk kez eriştiğiniz için kimlik bilgileri istemi alırsınız. En kısa URL'nin seçili olup olmadığını denetleyin ve Bağlan seçin.
Basit bir veri tablosu almak yerine gezgin göründüğüne dikkat edin. Bunun nedeni, OData.Feed işlevinin, Power Query deneyiminin gezinti tablosu olarak görüntüleneceğini bildiği, üzerinde özel meta veriler bulunan bir tablo döndürmesidir. Bu kılavuzda, gelecekteki bir derste kendi gezinti tablonuzu nasıl oluşturabileceğiniz ve özelleştirebileceğiniz ele alınacaktır.
Ben tablosunu ve ardından Verileri Dönüştür'ü seçin. Sütunların zaten atanmış türleri olduğuna dikkat edin (çoğu). Bu, temel alınan OData.Feed işlevinin başka bir özelliğidir . İstekleri Fiddler'da izlerseniz hizmetin $metadata belgesini getirmiş olduğunuzu görürsünüz. Altyapının OData uygulaması, hizmetin şemasını, veri türlerini ve ilişkilerini belirlemek için bunu otomatik olarak yapar.
Sonuç
Bu ders, OData.Feed kitaplık işlevini temel alan basit bir bağlayıcı oluşturma işleminde size yol gösterir. Gördüğünüz gibi, temel işlev üzerinde OData
tam işlevsel bir bağlayıcıyı etkinleştirmek için çok az mantık gerekir. ODBC gibi diğer genişletilebilirlik özellikli işlevler. DataSource, benzer özellikler sağlar.
Sonraki derste, OData.Feed kullanımını daha az özellikli bir işlevle (Web.Contents) değiştireceksiniz. Her ders, özel bağlayıcınız OData.Feed ile aynı özellik aralığını destekleyene kadar sayfalama, meta veri/şema algılama ve sorguyu OData sorgu söz dizimine katlama gibi daha fazla bağlayıcı özelliği uygular.