อ่านในภาษาอังกฤษ

แชร์ผ่าน


ทําไมคิวรีของฉันจึงเรียกใช้หลายครั้ง

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

เมื่อมีคําขอหลายรายการ

ส่วนต่อไปนี้อธิบายบางอินสแตนซ์เมื่อ Power Query สามารถส่งคําขอหลายรายการไปยังแหล่งข้อมูลได้

การออกแบบตัวเชื่อมต่อ

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

คิวรีหลายรายการที่อ้างอิงแหล่งข้อมูลเดียว

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

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

  • แหล่งข้อมูลไม่ได้ถูกแคช (ตัวอย่างเช่น ไฟล์ CSV ภายในเครื่อง)
  • คําขอไปยังแหล่งข้อมูลแตกต่างจากคําขอที่ถูกแคชไว้เนื่องจากการดําเนินการปลายทาง (ซึ่งสามารถเปลี่ยนการพับ)
  • แคชมีขนาดเล็กเกินไป (ซึ่งค่อนข้างไม่น่า)
  • คิวรีจะทํางานในเวลาเดียวกันอย่างคร่าว ๆ

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

พับ

ในบางครั้งเลเยอร์พับของ Power Query สามารถสร้างคําขอได้หลายรายการไปยังแหล่งข้อมูลตามการดําเนินการที่กําลังดําเนินการอยู่ด้านล่าง ในกรณีดังกล่าว คุณอาจหลีกเลี่ยงคําขอหลายรายการโดยใช้Table.Buffer ข้อมูลเพิ่มเติม: บัฟเฟอร์ตารางของคุณ

การโหลดไปยังแบบจําลอง Power BI Desktop

ใน Power BI Desktop Analysis Services (AS) จะรีเฟรชข้อมูลโดยใช้การประเมินสองรายการ: หนึ่งรายการเพื่อดึงข้อมูลสคีมา ซึ่งจะดําเนินการโดยการขอแถวศูนย์ และอีกหนึ่งรายการเพื่อดึงข้อมูล หากการคํานวณสคีมาแบบไม่มีแถวต้องการดึงข้อมูล ก็สามารถทําการร้องขอแหล่งข้อมูลซ้ําได้

การวิเคราะห์ความเป็นส่วนตัวของข้อมูล

ความเป็นส่วนตัวของข้อมูลทําการประเมินของแต่ละคิวรีเพื่อพิจารณาว่าคิวรีนั้นปลอดภัยที่จะทํางานร่วมกันหรือไม่ ในบางครั้งการประเมินนี้อาจทําให้เกิดคําขอหลายรายการไปยังแหล่งข้อมูลได้ เครื่องหมายบอกข่าวสารว่าคําขอที่กําหนดมาจากการวิเคราะห์ความเป็นส่วนตัวของข้อมูลคือมีเงื่อนไข "TOP 1000" (แม้ว่าจะไม่ใช่แหล่งข้อมูลทั้งหมดที่จะสนับสนุนเงื่อนไขดังกล่าว) โดยทั่วไป การปิดใช้งานความเป็นส่วนตัวของข้อมูล—สมมติว่าเป็นที่ยอมรับได้—จะขจัดคําขอที่เกี่ยวข้องกับความเป็นส่วนตัวของข้อมูลหรือ "TOP 1000" หรือคําขออื่น ๆ ที่เกี่ยวข้องกับความเป็นส่วนตัวของข้อมูลในระหว่างการรีเฟรช ข้อมูลเพิ่มเติม: ปิดใช้งานไฟร์วอลล์ความเป็นส่วนตัวของข้อมูล

การดาวน์โหลดข้อมูลพื้นหลัง (หรือที่เรียกว่า "การวิเคราะห์พื้นหลัง")

คล้ายกับการประเมินที่ทํากับความเป็นส่วนตัวของข้อมูล ตัวแก้ไข Power Query ตามค่าเริ่มต้นจะดาวน์โหลดตัวอย่างของ 1,000 แถวแรกของแต่ละขั้นตอนคิวรี การดาวน์โหลดแถวเหล่านี้ช่วยให้แน่ใจว่าการแสดงตัวอย่างข้อมูลพร้อมแสดงทันทีที่เลือกขั้นตอน แต่ก็สามารถทําให้เกิดคําขอแหล่งข้อมูลที่ซ้ํากันได้ ข้อมูลเพิ่มเติม: ปิดใช้งานการวิเคราะห์พื้นหลัง

งานพื้นหลังของตัวแก้ไข Power Query เบ็ดเตล็ด

งานพื้นหลังของตัวแก้ไข Power Query ต่าง ๆ ยังสามารถทริกเกอร์คําขอแหล่งข้อมูลเพิ่มเติมได้ (ตัวอย่างเช่น การวิเคราะห์การพับคิวรี การทําความเข้าใจคอลัมน์ การรีเฟรชอัตโนมัติของการแสดงตัวอย่าง 1000 แถวที่ Power Query ทริกเกอร์หลังจากโหลดผลลัพธ์ไปยัง Excel และอื่นๆ)

การแยกหลายคิวรี

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

  • ในตัวแก้ไข Power Query
  • เมื่อไฟร์วอลล์ถูกปิดใช้งาน
  • ด้วยการวิเคราะห์พื้นหลังถูกปิดใช้งาน
  • เมื่อ ปิดใช้งานการทํา โปรไฟล์คอลัมน์และงานพื้นหลังอื่นๆ
  • [ไม่บังคับ] การทํา Table.Buffer

ในตัวอย่างนี้ คุณมีการประเมิน M เดียวเท่านั้นที่เกิดขึ้นเมื่อคุณรีเฟรชตัวอย่างตัวแก้ไข Power Query ถ้าคําขอที่ซ้ํากันเกิดขึ้นในตอนนี้ คําขอเหล่านั้นจะทํางานในลักษณะที่คิวรีถูกสร้างขึ้นอย่างใด หากไม่เป็นเช่นนั้น และหากคุณเปิดใช้งานการตั้งค่าที่อธิบายไว้ก่อนหน้านี้ทีละหนึ่ง คุณสามารถตรวจสอบได้ว่าคําขอซ้ําจะเริ่มเกิดขึ้นณจุดใด

ส่วนต่อไปนี้อธิบายขั้นตอนเหล่านี้ในรายละเอียดเพิ่มเติม

ตั้งค่าตัวแก้ไข Power Query

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

ปิดใช้งานไฟร์วอลล์ความเป็นส่วนตัวของข้อมูล

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

โปรดแน่ใจว่าได้เลิกทําขั้นตอนนี้แล้วก่อนที่จะกลับมาทดสอบตามปกติ

ปิดใช้งานการวิเคราะห์พื้นหลัง

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

รูปภาพแสดงตัวเลือกคิวรีใน Excel ซึ่งการวิเคราะห์พื้นหลังถูกปิดใช้งาน

บัฟเฟอร์ตารางของคุณ

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

  1. ในแถบสูตรของตัวแก้ไข Power Query เลือก ปุ่ม fx เพื่อเพิ่มขั้นตอนใหม่

    รูปภาพที่มีตําแหน่งที่ตั้งของปุ่ม fx ที่เน้น

  2. ในแถบสูตร ล้อมรอบชื่อของขั้นตอนก่อนหน้าด้วย Table.Buffer(<ชื่อขั้นตอนก่อนหน้าจะอยู่ที่นี่>) ตัวอย่างเช่น ถ้าขั้นตอนก่อนหน้ามีชื่อว่า Sourceแถบสูตรจะแสดง= Source แก้ไขขั้นตอนในแถบสูตรเพื่อพูดว่า= Table.Buffer(Source)

ข้อมูลเพิ่มเติม: Table.Buffer

เรียกใช้การทดสอบ

เมื่อต้องการเรียกใช้การทดสอบ ให้ทําการรีเฟรชในตัวแก้ไข Power Query

รูปภาพที่มีตําแหน่งที่ตั้งของปุ่มรีเฟรชจะถูกเน้น