กําหนดค่าการรีเฟรชแบบเพิ่มหน่วยและข้อมูลในเวลาจริง

บทความนี้อธิบายวิธีการกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยและข้อมูลแบบเรียลไทม์สําหรับ แบบจําลองเชิงความหมาย หากต้องการเรียนรู้เกี่ยวกับการกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยสําหรับกระแสข้อมูล โปรดดู คุณลักษณะพรีเมียมของกระแสข้อมูล - การรีเฟรชแบบเพิ่มหน่วย

การกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยรวมถึงการสร้างพารามิเตอร์ RangeStart และ RangeEnd การใช้ตัวกรอง และการกําหนดนโยบายการรีเฟรชแบบเพิ่มหน่วย หลังจากเผยแพร่ไปยังบริการของ Power BI แล้ว คุณจะดําเนินการรีเฟรชเริ่มต้นบนแบบจําลอง การดําเนินการรีเฟรชเริ่มต้นและการรีเฟรชที่ตามมาจะใช้นโยบายการรีเฟรชแบบเพิ่มหน่วยที่คุณกําหนดไว้ ก่อนที่จะทําตามขั้นตอนเหล่านี้ ตรวจสอบให้แน่ใจว่าคุณเข้าใจฟังก์ชันการทํางานที่อธิบายไว้ใน การรีเฟรชแบบเพิ่มหน่วย และข้อมูลในเวลาจริงสําหรับแบบจําลองเชิงความหมายอย่างสมบูรณ์

สร้างพารามิเตอร์

ในงานนี้ คุณจะใช้ตัวแก้ไข Power Query เพื่อสร้างพารามิเตอร์ RangeStart และ RangeEnd ด้วยค่าเริ่มต้น ค่าเริ่มต้นจะใช้เฉพาะเมื่อกรองข้อมูลที่จะโหลดลงในแบบจําลองใน Power BI Desktop เท่านั้น ค่าที่คุณป้อนควรมีเพียงข้อมูลล่าสุดจํานวนเล็กน้อยจากแหล่งข้อมูลของคุณ เมื่อเผยแพร่ไปยังบริการ ค่าช่วงเวลาเหล่านี้จะถูกแทนที่ด้วยนโยบายการรีเฟรชแบบเพิ่มหน่วย นั่นคือนโยบายสร้างหน้าต่างของข้อมูลขาเข้าซึ่งกันและกัน

  1. ใน Power BI Desktop ให้เลือก แปลงข้อมูล บนริบบอน หน้าแรก เพื่อเปิดตัวแก้ไข Power Query

  2. เลือก เมนูดรอปดาวน์ จัดการพารามิเตอร์ จากนั้นเลือก พารามิเตอร์ใหม่

  3. ใน เขตข้อมูล ชื่อ ให้ใส่ ช่วงเริ่มต้น (ตรงตามตัวพิมพ์ใหญ่-เล็ก) ใน เขตข้อมูล ชนิด ให้เลือก วันที่/เวลา จากรายการดรอปดาวน์ ใน เขตข้อมูล ค่า ปัจจุบัน ให้ใส่ค่าวันที่และเวลาเริ่มต้น

    Define the Range Start parameter in the Manage Parameters dialog.

  4. เลือก ใหม่ เพื่อสร้างพารามิเตอร์ที่สองที่ชื่อว่า RangeEnd ในฟิลด์ ชนิด ให้เลือก วันที่/เวลา จากนั้นในเขตข้อมูล ค่าปัจจุบัน ให้ป้อนค่าวันที่และเวลาสิ้นสุด เลือก ตกลง

    Define the Range End parameter in the Manage Parameters dialog.

หลังจากที่คุณได้กําหนดพารามิเตอร์ RangeStart และ RangeEnd แล้ว คุณจะต้องกรองข้อมูลที่จะโหลดลงในแบบจําลองที่ยึดตามพารามิเตอร์เหล่านั้น

กรองข้อมูล

หมายเหตุ

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

ตอนนี้คุณจะใช้ตัวกรองโดยยึดตาม เงื่อนไข ในพารามิเตอร์ RangeStart และ RangeEnd

  1. ในตัวแก้ไข Power Query ให้เลือกคอลัมน์วันที่ที่คุณต้องการกรอง จากนั้นเลือกลูกศร>ดรอปดาวน์ ตัวกรองวันที่ ตัวกรอง>แบบกําหนดเอง

  2. ใน แถวตัวกรอง เพื่อระบุเงื่อนไขแรก เลือกอยู่หลังจากหรือเท่ากับ จากนั้นเลือก พารามิเตอร์ จากนั้นเลือก ช่วงเริ่มต้น

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

    Filter rows dialog showing Range Start and Range End conditions.

    สิ่งสําคัญ: ตรวจสอบคิวรีที่มีค่าเท่ากับ (=) บน RangeStart หรือ RangeEnd แต่ไม่ใช่ทั้งสองอย่าง ถ้ามีค่าเท่ากับ (=) ในพารามิเตอร์ทั้งสอง แถวหนึ่งอาจเป็นไปตามเงื่อนไขสําหรับสองพาร์ติชัน ซึ่งอาจนําไปสู่ข้อมูลที่ซ้ํากันในแบบจําลองได้ ตัวอย่างเช่น = Table.SelectRows(#"Changed Type", each [OrderDate] >= RangeStart and [OrderDate] <= RangeEnd) อาจส่งผลให้มีข้อมูลที่ซ้ํากันถ้ามี OrderDate ที่เท่ากับทั้ง RangeStart และ RangeEnd

    เลือก ตกลง เพื่อปิด

  3. บนริบบอน หน้าแรก ใน ตัวแก้ไข Power Query ให้เลือก ปิด & นําไปใช้ Power Query จะโหลดข้อมูลตามตัวกรองที่กําหนดโดยพารามิเตอร์ RangeStart และ RangeEnd และตัวกรองอื่น ๆ ที่คุณกําหนดไว้

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

กําหนดนโยบาย

หลังจากที่คุณได้กําหนดพารามิเตอร์ RangeStart และ RangeEnd และข้อมูลที่กรองตามพารามิเตอร์เหล่านั้นแล้ว คุณจะต้องกําหนดนโยบายการรีเฟรชแบบเพิ่มหน่วย นโยบายนี้จะถูกนําไปใช้หลังจากเผยแพร่แบบจําลองไปยังบริการเท่านั้น และการดําเนินการรีเฟรชด้วยตนเองหรือตามกําหนดการจะดําเนินการ

  1. ในมุมมองข้อมูล ให้คลิกขวาที่ตาราง ในบานหน้าต่าง ข้อมูล และเลือก การรีเฟรชแบบเพิ่มหน่วย

    Data view showing Table context menu with Incremental refresh selected.

  2. ในการรีเฟรชแบบเพิ่มหน่วยและข้อมูล>แบบเรียลไทม์ เลือกตาราง ตรวจสอบหรือเลือกตาราง ค่าเริ่มต้นของ กล่องรายการ เลือกตาราง คือตารางที่คุณเลือกในมุมมองข้อมูล

  3. ระบุการตั้งค่าที่จําเป็น:

    ใน ตั้งค่าช่วง>การนําเข้าและรีเฟรช แบบเพิ่มหน่วย ตารางนี้จะย้ายแถบเลื่อนไปยังเปิด ถ้าแถบเลื่อนถูกปิดใช้งาน นั่นหมายความว่านิพจน์ Power Query สําหรับตารางจะไม่รวมตัวกรองที่ยึดตามพารามิเตอร์ RangeStart และ RangeEnd

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

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

  4. ระบุการตั้งค่าที่เลือกได้:

    ใน เลือกการตั้งค่าที่เลือกได้ เลือก รับข้อมูลล่าสุดแบบเรียลไทม์ด้วย DirectQuery (Premium เท่านั้น) เพื่อรวมการเปลี่ยนแปลงข้อมูลล่าสุดที่เกิดขึ้นกับแหล่งข้อมูลหลังจากช่วงเวลาการรีเฟรชครั้งล่าสุด การตั้งค่านี้จะทําให้นโยบายการรีเฟรชแบบเพิ่มหน่วยเพิ่มพาร์ติชัน DirectQuery ไปยังตาราง

    เลือก รีเฟรชเฉพาะวันที่ สมบูรณ์เพื่อรีเฟรชทั้งวันเท่านั้น ถ้าการดําเนินการรีเฟรชตรวจพบว่าหนึ่งวันไม่เสร็จสมบูรณ์ แถวสําหรับทั้งวันนั้นจะไม่ได้รับการรีเฟรช ตัวเลือกนี้จะเปิดใช้งานโดยอัตโนมัติเมื่อคุณเลือก รับข้อมูลล่าสุดในแบบเรียลไทม์ด้วย DirectQuery (Premium เท่านั้น)

    เลือก ตรวจหาการเปลี่ยนแปลง ข้อมูล เพื่อระบุคอลัมน์วันที่/เวลาที่ใช้ในการระบุและรีเฟรชเฉพาะวันที่ข้อมูลมีการเปลี่ยนแปลงเท่านั้น ต้องมีคอลัมน์วันที่/เวลา ซึ่งโดยปกติแล้วเพื่อวัตถุประสงค์ในการตรวจสอบที่แหล่งข้อมูล คอลัมน์ นี้ไม่ควรเป็นคอลัมน์ เดียวกับที่ใช้ในการแบ่งพาร์ติชันข้อมูลด้วยพารามิเตอร์ RangeStart และ RangeEnd ค่าสูงสุดของคอลัมน์นี้จะถูกประเมินสําหรับแต่ละช่วงเวลาในช่วงที่เพิ่มขึ้น ถ้าไม่มีการเปลี่ยนแปลงตั้งแต่การรีเฟรชครั้งล่าสุด จะไม่มีการรีเฟรชช่วงเวลาปัจจุบัน สําหรับแบบจําลองที่เผยแพร่ไปยังความจุแบบพรีเมียม คุณยังสามารถระบุคิวรีแบบกําหนดเองได้ เมื่อต้องการเรียนรู้เพิ่มเติม ดู การรีเฟรชแบบเพิ่มหน่วยขั้นสูง - คิวรีแบบกําหนดเองสําหรับการตรวจหาการเปลี่ยนแปลงข้อมูล

    นโยบายของคุณควรมีลักษณะดังนี้ ทั้งนี้ขึ้นอยู่กับการตั้งค่าของคุณ:

    Incremental refresh and real-time data policy dialog showing incremental refresh range.

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

บันทึกและเผยแพร่ไปยังบริการ

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

รีเฟรชแบบจําลอง

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

แปลงวันที่เวลาเป็นจํานวนเต็ม

งานนี้จําเป็นถ้าตารางของคุณใช้คีย์ตัวแทนจํานวนเต็มแทนค่าวันที่/เวลาในคอลัมน์วันที่ที่คุณใช้สําหรับข้อกําหนดตัวกรอง RangeStart และ RangeEnd

ชนิดข้อมูลของพารามิเตอร์ RangeStart และ RangeEnd ต้องเป็นชนิดข้อมูลวันที่/เวลาโดยไม่คํานึงถึงชนิดข้อมูลของคอลัมน์วันที่ อย่างไรก็ตาม สําหรับแหล่งข้อมูลจํานวนมาก ตารางไม่มีคอลัมน์ของชนิดข้อมูลวันที่/เวลา แต่มีคอลัมน์วันที่ของคีย์ตัวแทนจํานวนเต็มในรูปแบบของ yyyymmddแทน โดยทั่วไปคุณไม่สามารถแปลงคีย์ตัวแทนจํานวนเต็มเหล่านี้เป็นชนิดข้อมูลวันที่/เวลาได้ เนื่องจากผลลัพธ์จะเป็นนิพจน์คิวรีแบบไม่พับ แต่คุณสามารถสร้างฟังก์ชันที่แปลงค่าวันที่/เวลาในพารามิเตอร์เพื่อให้ตรงกับคีย์ตัวแทนจํานวนเต็มของตารางแหล่งข้อมูลโดยไม่สูญเสียการพับ จากนั้นจะเรียกใช้ฟังก์ชันในขั้นตอนตัวกรอง จําเป็นต้องใช้ขั้นตอนการแปลงนี้หากตารางแหล่งข้อมูลประกอบด้วย เฉพาะ คีย์ตัวแทนเป็นชนิดข้อมูลจํานวนเต็ม

  1. บนริบบอน หน้าแรก ใน ตัวแก้ไข Power Query ให้เลือกดรอปดาวน์ แหล่งข้อมูลใหม่ จากนั้นเลือก คิวรี่ว่างเปล่า

  2. ในการตั้งค่าคิวรี ่ใส่ชื่อ ตัวอย่างเช่น DateKey จากนั้นในตัวแก้ไขสูตร ให้ใส่สูตรต่อไปนี้:

    = (x as datetime) => Date.Year(x)*10000 + Date.Month(x)*100 + Date.Day(x)

    Power BI function editor showing the integer surrogate DateKey function.

  3. เมื่อต้องการทดสอบสูตร ใน ป้อนพารามิเตอร์ ให้ใส่ค่าวันที่/เวลา จากนั้นเลือก เรียก ถ้าสูตรถูกต้อง ค่าจํานวนเต็มสําหรับวันที่จะถูกส่งกลับ หลังจากตรวจสอบแล้ว ให้ลบคิวรีฟังก์ชันที่เรียกใช้ใหม่นี้

  4. ใน คิวรี ให้เลือกตาราง จากนั้นแก้ไขสูตรคิวรีเพื่อเรียกใช้ฟังก์ชันด้วยพารามิเตอร์ RangeStart และ RangeEnd

    = Table.SelectRows(#"Reordered Column OrderDateKey", each [OrderDateKey] > DateKey(RangeStart) and [OrderDateKey] <= DateKey(RangeEnd))

    Power BI table showing DateKey filter.