แชร์ผ่าน


TripPin ส่วนที่ 1 - ตัวเชื่อมต่อข้อมูลสําหรับบริการ OData

บทช่วยสอนแบบหลายส่วนนี้ครอบคลุมการสร้างส่วนขยายแหล่งข้อมูลใหม่สําหรับ Power Query บทช่วยสอนมีไว้ให้ทําตามลําดับ —บทเรียนแต่ละบทจะสร้างขึ้นบนตัวเชื่อมต่อที่สร้างขึ้นในบทเรียนที่แล้ว โดยการเพิ่มความสามารถใหม่ให้กับตัวเชื่อมต่อของคุณแบบเพิ่มหน่วย

ในบทเรียนนี้ คุณจะ:

  • สร้างโครงการ data เชื่อมต่อ or ใหม่โดยใช้ Power Query SDK
  • เขียนฟังก์ชันพื้นฐานเพื่อดึงข้อมูลจากแหล่งข้อมูล
  • ทดสอบตัวเชื่อมต่อของคุณใน Power Query SDK
  • ลงทะเบียนตัวเชื่อมต่อของคุณใน Power BI Desktop

การสร้างตัวเชื่อมต่อ OData พื้นฐาน

ในส่วนนี้ คุณสร้างโครงการ Data เชื่อมต่อ or ใหม่ ใส่ข้อมูลพื้นฐานบางอย่าง และทดสอบใน Power Query SDK

เปิด Visual Studio Code เราขอแนะนําให้คุณสร้างพื้นที่ทํางานใหม่แล้วจึงสร้างโครงการส่วนขยายใหม่ หากต้องการสร้างโครงการส่วนขยายใหม่ให้เปิด explorer และในส่วน Power Query SDK เลือก ปุ่มสร้างโครงการ ส่วนขยาย

สกรีนช็อตที่เน้นตัวเลือกในการสร้างโครงการส่วนขยาย Power Query SDK

หลังจากเลือกปุ่มนี้ แล้วคุณจะได้รับพร้อมท์ให้ป้อนชื่อของโครงการใหม่ ตั้งชื่อโครงการ TripPinใหม่นี้

สกรีนช็อตของโครงการส่วนขยายใหม่ที่สร้างขึ้นที่เรียกว่า TripPin โดยใช้ Power Query SDK

เปิดไฟล์ TripPin.pq และวางในข้อกําหนดของตัวเชื่อมต่อต่อไปนี้

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" }
];

ข้อกําหนดของตัวเชื่อมต่อนี้ประกอบด้วย:

  • ระเบียนข้อกําหนดของแหล่งข้อมูลสําหรับตัวเชื่อมต่อ TripPin
  • การประกาศที่โดยนัย (ไม่ระบุชื่อ) เป็นชนิดการรับรองความถูกต้องเดียวสําหรับแหล่งข้อมูลนี้
  • ฟังก์ชัน (TripPinImpl) ที่มีการดําเนินการที่เรียกใช้ OData.Feed
  • ฟังก์ชันที่ใช้ร่วมกัน (TripPin.Feed) ที่ตั้งค่าชนิดพารามิเตอร์เป็น Uri.Type
  • ระเบียนการเผยแพร่แหล่งข้อมูลที่อนุญาตให้ตัวเชื่อมต่อปรากฏในกล่องโต้ตอบการรับข้อมูลของ Power Query

เปิดไฟล์ TripPin.query.pq แทนที่เนื้อหาปัจจุบันด้วยการโทรไปยังฟังก์ชันที่ส่งออกของคุณ

TripPin.Feed("https://services.odata.org/v4/TripPinService/")

ก่อนที่คุณจะสามารถทดสอบตัวเชื่อมต่อของคุณ คุณต้องสร้างตัวเชื่อมต่อก่อน เมื่อต้องการทําเช่นนี้ไปที่เทอร์มินัลและเลือกตัวเลือกเรียกใช้งานสร้าง... (แป้นพิมพ์ลัด Ctrl + Shift + B) เราขอแนะนําให้เลือกตัวเลือก MakePQX แต่ตัวเลือกใดตัวเลือกหนึ่งที่พร้อมใช้งานในการสร้างควรใช้งานได้

สกรีนช็อตสาธิตการเรียกใช้งานรุ่นก่อนที่จะทดสอบตัวเชื่อมต่อ

ผลลัพธ์ของการดําเนินการนี้สร้างโฟลเดอร์ Bin ใหม่ซึ่งตัวเชื่อมต่อที่สร้างไว้ของคุณถูกจัดเก็บเป็น TripPin.mez

สกรีนช็อตของโฟลเดอร์ช่องเก็บใหม่ที่สร้างขึ้นซึ่งไฟล์ตัวเชื่อมต่อที่มีนามสกุล mez และชื่อ TripPin.mez ตั้งอยู่

ไฟล์ <project.query.pq> ถูกใช้เพื่อทดสอบส่วนขยายของคุณโดยไม่ต้องปรับใช้กับโฟลเดอร์ถังขยะของ Power BI Desktop ของคุณ การใช้เครื่องมือที่พร้อมใช้งานภายใน Power Query SDK:

  1. เลือกตัวเลือกเพื่อ ตั้งค่าข้อมูลประจําตัว
  2. เลือก TripPin เป็นแหล่งข้อมูล
  3. เลือก ไฟล์ TripPin.query.pq เป็นไฟล์คิวรี/ทดสอบ
  4. เลือก แบบไม่ระบุชื่อ เป็นประเภทการรับรองความถูกต้อง

ในกล่องโต้ตอบผลลัพธ์ ข้อความจะปรากฏขึ้นเพื่อยืนยันว่าคุณได้ตั้งค่าข้อมูลประจําตัวสําหรับแหล่งข้อมูลและรายละเอียดสําหรับข้อมูลประจําตัวแต่ละรายการที่สร้างขึ้น

สกรีนช็อตของกล่องโต้ตอบเอาต์พุตที่แสดงรายละเอียดของการรับรองความถูกต้องที่สร้างขึ้นใหม่สําหรับการเชื่อมต่อ TripPin โดยใช้ URL ที่ส่งผ่านในไฟล์ .query.pq

หมายเหตุ

คุณสามารถล้างข้อมูลประจําตัวได้เสมอโดยใช้ คําสั่ง ล้างข้อมูลประจําตัว ทั้งหมด หรือตรวจสอบข้อมูลประจําตัวที่พร้อมใช้งานโดยใช้ คําสั่ง รายการข้อมูลประจําตัว ภายในเครื่องมือ Power Query SDK

เมื่อข้อมูลประจําตัวเข้าที่แล้ว คุณเลือก ไฟล์ TripPin.query.pq และเลือกขวาในเอกสารเพื่อ ประเมินไฟล์ power query ปัจจุบัน หรือใช้ตัวเลือกเพื่อ ประเมินไฟล์ ปัจจุบัน จากเครื่องมือ Power Query SDK

สกรีนช็อตของตัวเลือกหลายรายการเพื่อประเมินไฟล์ Power Query ปัจจุบัน

กล่องโต้ตอบผลลัพธ์จะแสดงข้อความของผลลัพธ์จากการประเมินของคุณ เช่นเดียวกับหน้าต่างใหม่ที่มีชื่อ ผลลัพธ์ PQTest

สกรีนช็อตของหน้าต่างผลลัพธ์ PQTest ที่แสดงผลลัพธ์ของการประเมินที่ดําเนินการ

หน้าต่าง ผลลัพธ์ PQTest ประกอบด้วยแท็บสามแท็บ:

  • ผลลัพธ์: แสดงตัวอย่างของข้อมูลของคุณในตาราง
  • สรุป: รายละเอียดการประเมินทั่วไป เช่น StartTime, EndTime, Duration, ไฟล์ที่ใช้สําหรับการประเมิน สถานะ และอื่น ๆ
  • DataSource: ให้ข้อมูลเกี่ยวกับแหล่งข้อมูลที่ใช้จาก Kind, ชื่อฟังก์ชัน และเส้นทาง

คุณสามารถลองใช้ URL ของ OData ที่แตกต่างกันสองสามตัวในไฟล์ทดสอบเพื่อดูว่าผลลัพธ์ที่แตกต่างกันถูกส่งกลับอย่างไร ตัวอย่างเช่น:

  • https://services.odata.org/v4/TripPinService/Me
  • https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
  • https://services.odata.org/v4/TripPinService/People

ไฟล์ TripPin.query.pq สามารถประกอบด้วยคําสั่งเดียว คําสั่ง let หรือเอกสารส่วนแบบเต็ม

let
    Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/"),
    People = Source{[Name="People"]}[Data],
    SelectColumns = Table.SelectColumns(People, {"UserName", "FirstName", "LastName"})
in
    SelectColumns

สำคัญ

ตรวจสอบให้แน่ใจว่าได้บันทึกไฟล์ของคุณเมื่อคุณทํางานเสมอ หากคุณทําการเปลี่ยนแปลงไฟล์ TripPin.pq คุณควรทริกเกอร์งานบิลต์ที่ตามมาเสมอเพื่อให้แน่ใจว่าคุณกําลังทดสอบกับตัวเชื่อมต่อเวอร์ชันล่าสุดของคุณ

เปิด Fiddler เพื่อจับภาพปริมาณการใช้งาน HTTP และเรียกใช้คิวรี คุณควรเห็นคําขอที่แตกต่างกันสองสามข้อสําหรับ services.odata.org ซึ่งสร้างขึ้นโดยกระบวนการคอนเทนเนอร์ Mashup คุณจะเห็นว่าการเข้าถึง URL รากของบริการส่งผลให้มีสถานะ 302 และเปลี่ยนเส้นทางไปยัง URL เวอร์ชันที่ยาวกว่า การเปลี่ยนเส้นทางต่อไปนี้เป็นลักษณะการทํางานอื่นที่คุณได้รับ "ฟรี" จากฟังก์ชันไลบรารีพื้นฐาน

สิ่งหนึ่งที่ต้องทราบถ้าคุณดู URL คือคุณสามารถดู Query Folding ที่เกิดขึ้นกับ SelectColumns คําสั่งได้ https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName

ถ้าคุณเพิ่มการแปลงเพิ่มเติมลงในคิวรีของคุณ คุณสามารถดูผลกระทบของ URL ที่สร้างขึ้นได้

ลักษณะการทํางานนี้เป็นสิ่งสําคัญที่จะต้องทราบ แม้ว่าคุณไม่ได้ใช้ตรรกะการพับอย่างชัดเจน แต่ตัวเชื่อมต่อของคุณสืบทอดความสามารถเหล่านี้จากฟังก์ชัน OData.Feed คําสั่ง M เป็นแบบเขียนได้—บริบทตัวกรองจะโฟลว์จากฟังก์ชันหนึ่งไปยังอีกฟังก์ชันหนึ่งเมื่อใดก็ตามที่เป็นไปได้ ซึ่งคล้ายกับแนวคิดของวิธีที่ฟังก์ชันแหล่งข้อมูลใช้ภายในตัวเชื่อมต่อของคุณสืบทอดบริบทการรับรองความถูกต้องและข้อมูลประจําตัวของพวกเขา ในบทเรียนต่อๆ ไป คุณจะแทนที่การใช้ OData.Feed ซึ่งมีความสามารถในการพับแบบเนทีฟ ด้วย Web.Contents ซึ่งไม่เปลี่ยนแปลง หากต้องการรับความสามารถระดับเดียวกัน คุณจะต้องใช้ Table.View อินเทอร์เฟซและใช้ตรรกะการพับที่ชัดเจนของคุณเอง

การโหลดส่วนขยายของคุณใน Power BI Desktop

หากต้องการใช้ส่วนขยายของคุณใน Power BI Desktop คุณจะต้องคัดลอกไฟล์ผลลัพธ์ของโครงการตัวเชื่อมต่อ (TripPin.mez) ไปยังไดเรกทอรี เชื่อมต่อ ors แบบกําหนดเองของคุณ

  1. สร้างไดเรกทอรี [My Documents]\Power BI Desktop\Custom เชื่อมต่อ ors
  2. คัดลอกไฟล์นามสกุล (TripPin.mez) ลงในไดเรกทอรีนี้
  3. เลือกตัวเลือก (ไม่แนะนํา) อนุญาตให้โหลดส่วนขยายใด ๆ โดยไม่มีการตรวจสอบหรือคําเตือนใน Power BI Desktop (ภายใต้ตัวเลือกไฟล์>และการตั้งค่า>ตัวเลือก>ส่วนขยายข้อมูลความปลอดภัย)>
  4. รีสตาร์ต Power BI Desktop
  5. เลือกรับข้อมูล>เพิ่มเติมเพื่อแสดงกล่องโต้ตอบรับข้อมูล

คุณสามารถค้นหาส่วนขยายของคุณได้โดยการพิมพ์ชื่อลงในกล่องค้นหา

รับกล่องโต้ตอบข้อมูล

เลือกชื่อฟังก์ชัน และเลือกเชื่อมต่อ ข้อความของบุคคลที่สามปรากฏขึ้น —เลือก ดําเนินการต่อ เพื่อดําเนินการต่อ ขณะนี้ กล่องโต้ตอบการเรียกฟังก์ชันปรากฏขึ้น ใส่ URL รากของบริการ (https://services.odata.org/v4/TripPinService/) และเลือก ตกลง

เรียกฟังก์ชัน

เนื่องจากนี่เป็นครั้งแรกที่คุณกําลังเข้าถึงแหล่งข้อมูลนี้ คุณจะได้รับพร้อมท์สําหรับข้อมูลประจําตัว ตรวจสอบว่าได้เลือก URL ที่สั้นที่สุดแล้ว จากนั้นเลือกเชื่อมต่อ

รูปของพร้อมท์ข้อมูลประจําตัวตั้งค่าเป็นไม่ระบุชื่อและการตั้งค่าระดับเป็น URL ที่สั้นที่สุด

โปรดสังเกตว่าแทนที่จะรับตารางข้อมูลอย่างง่าย ตัวนําทางจะปรากฏขึ้น ทั้งนี้เนื่องจาก ฟังก์ชัน OData.Feed ส่งกลับตารางที่มีเมตาดาต้าพิเศษอยู่ด้านบนที่ประสบการณ์การใช้งาน Power Query รู้ว่าจะแสดงเป็นตารางนําทาง การฝึกปฏิบัตินี้จะครอบคลุมวิธีการที่คุณสามารถสร้างและกําหนดตารางการนําทางของคุณเองในบทเรียนในอนาคต

ตารางนําทาง

เลือกตาราง ฉัน จากนั้นเลือก แปลงข้อมูล โปรดสังเกตว่าคอลัมน์มีชนิดที่กําหนดอยู่แล้ว (ส่วนใหญ่) นี่เป็นอีกหนึ่งคุณลักษณะของ ฟังก์ชัน OData.Feed พื้นฐาน ถ้าคุณดูคําขอใน Fiddler คุณจะเห็นว่า คุณได้ดึงข้อมูลเอกสาร$metadata ของบริการแล้ว การดําเนินการ OData ของเครื่องยนต์ทําสิ่งนี้โดยอัตโนมัติเพื่อกําหนด Schema ชนิดข้อมูล และความสัมพันธ์ของบริการ

ฉันอัดไว้

บทสรุป

บทเรียนนี้จะแนะนําคุณผ่านการสร้างตัวเชื่อมต่ออย่างง่ายตามฟังก์ชันไลบรารี OData.Feed ตามที่คุณเห็น ตรรกะเล็ก ๆ น้อย ๆ จําเป็นสําหรับการเปิดใช้งานตัวเชื่อมต่อที่ทํางานอย่างสมบูรณ์ผ่าน OData ฟังก์ชันพื้นฐาน ฟังก์ชันที่เปิดใช้งานความสามารถในการเพิ่มอื่น ๆ เช่น ODBC DataSource มีความสามารถที่คล้ายกัน

ในบทเรียนถัดไป คุณจะแทนที่การใช้ OData.Feed ด้วยฟังก์ชันที่มีความสามารถน้อยกว่า ได้แก่ Web.Contents บทเรียนแต่ละบทเรียนใช้คุณลักษณะตัวเชื่อมต่อเพิ่มเติม รวมถึงการแบ่งหน้า เมตาดาต้า/การตรวจหา schema และการพับคิวรีไปยังไวยากรณ์คิวรี OData จนกว่าตัวเชื่อมต่อแบบกําหนดเองของคุณสนับสนุนช่วงเดียวกันของความสามารถเช่น OData.Feed

ขั้นตอนถัดไป

TripPin ส่วนที่ 2 - เชื่อมต่อหรือข้อมูลสําหรับบริการ REST