คิวรีการรีเฟรชแบบเพิ่มหน่วย

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

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

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

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

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

  2. คลิก จัดการ > พารามิเตอร์ใหม่ พารามิเตอร์ใหม่

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

    กําหนดพารามิเตอร์เริ่มต้นช่วงในกล่องโต้ตอบจัดการพารามิเตอร์

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

    กําหนดพารามิเตอร์ช่วงสิ้นสุดในกล่องโต้ตอบจัดการพารามิเตอร์

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

กรองข้อมูล

หมายเหตุ

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

ด้วยพารามิเตอร์ RangeStart และ RangeEnd ที่กําหนดไว้ ใช้ตัวกรอง ตามเงื่อนไข ในพารามิเตอร์ RangeStart และ RangeEnd

  1. ในตัวแก้ไข Power Queryคอลัมน์วันที่ที่คุณต้องการกรอง และจากนั้น คลิกไอคอนตัวกรอง>ตัวกรองแบบปรับแต่ง > เองของ วันที่/เวลา

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

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

    กรองแถว

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

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

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

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

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

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

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

    เมนูบริบทตาราง

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

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

  4. ใน รีเฟรชแถว ที่คอลัมน์ "columnname" อยู่ล่าสุด: ระบุ ช่วงเวลา การรีเฟรช แถวทั้งหมดที่มีวันที่ในช่วงเวลานี้จะถูกรีเฟรชในชุดข้อมูลแต่ละครั้งที่มีดําเนินการรีเฟรชด้วยตนเองหรือตามตารางเวลา

    กล่องโต้ตอบนโยบายการรีเฟรช

  5. เลือกการตั้งค่าเพิ่มเติม:

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

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

  6. คลิก ใช้ทั้งหมด เพื่อเสร็จสิ้นนโยบายการรีเฟรช ไม่ได้โหลดข้อมูลต้นฉบับด้วยขั้นตอนนี้

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

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

รีเฟรชชุดข้อมูล

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

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

งานนี้ เป็นทางเลือก

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

  1. ในตัวแก้ไข Power Queryคลิก รับข้อมูล > คิวรี ว่าง

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

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

    สร้างฟังก์ชัน DateKey

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

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

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

    ใช้ตัวกรอง DateKey

นอกจากนี้ โปรดดู

แก้ไขปัญหาการกําหนดค่าการรีเฟรชแบบเพิ่มหน่วย
การรีเฟรชแบบเพิ่มหน่วยขั้นสูงด้วยจุดสิ้นสุด XMLA
กำหนดค่าการรีเฟรชตามกำหนดเวลา