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

แชร์ผ่าน


ปัญหาที่พบบ่อย

Power Query

การรักษาการเรียงลําดับ

คุณอาจสันนิษฐานว่า ถ้าคุณเรียงลําดับข้อมูลของคุณ การดําเนินการปลายทางใด ๆ จะรักษาลําดับการจัดเรียงไว้

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

เนื่องจากวิธีการที่ Power Query ปรับลําดับการจัดเรียงให้เหมาะสม รวมถึงการข้ามหรือการถ่ายโหลดไปยังแหล่งข้อมูล (ซึ่งอาจมีลักษณะการทํางานในการเรียงลําดับที่ไม่ซ้ํากันของตัวเอง) ลําดับการจัดเรียงจึงไม่รับประกันว่าจะเก็บรักษาไว้ผ่านการรวม (เช่น Table.Group), ผสาน (เช่น Table.NestedJoin) หรือการลบซ้ํา (เช่น Table.Distinct)

มีหลายวิธีในการแก้ไขปัญหานี้ ต่อไปนี้เป็นข้อเสนอแนะสองสามข้อ:

  • ดําเนินการเรียงลําดับ หลังจาก ใช้การดําเนินการปลายทาง ตัวอย่างเช่น เมื่อจัดกลุ่มแถว ให้เรียงลําดับตารางที่ซ้อนกันในแต่ละกลุ่มก่อนที่จะใช้ขั้นตอนเพิ่มเติม นี่คือตัวอย่างรหัส M บางตัวที่แสดงวิธีการนี้: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • บัฟเฟอร์ข้อมูล (โดยใช้ Table.Buffer) ก่อนที่จะใช้การดําเนินการปลายทาง ในบางกรณี การดําเนินการนี้ทําให้เกิดการดําเนินการปลายทางเพื่อรักษาลําดับการจัดเรียงที่ถูกบัฟเฟอร์
  • ใช้การจัดอันดับ ตัวอย่างเช่น แทนที่จะใช้ Table.Distinctคุณสามารถเรียงลําดับตามคอลัมน์ที่มีค่าที่ซ้ํากัน จัดอันดับโดยยึดตามคอลัมน์ตัวแบ่งความสัมพันธ์ (เช่น modified_date) จากนั้นกรองเพื่อให้จัดอันดับเพียง 1 แถว

การอนุมานชนิดข้อมูล

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

ตัวอย่างเช่น ลองนึกถึงคอลัมน์ที่มีจํานวนเต็มใน 200 แถวแรก (เช่น ศูนย์ทั้งหมด) แต่ประกอบด้วยตัวเลขทศนิยมหลังจากแถว 200 ในกรณีนี้ Power Query อนุมานชนิดข้อมูลของคอลัมน์เป็นจํานวนเต็ม (Int64.Type) การอนุมานนี้ส่งผลให้ส่วนทศนิยมของตัวเลขที่ไม่ใช่จํานวนเต็มถูกตัดทอน

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

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

การเชื่อมต่อถูกปิดโดยโฮสต์ระยะไกล

เมื่อเชื่อมต่อกับ API ต่าง ๆ คุณอาจได้รับคําเตือนต่อไปนี้:

Data source error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

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

ไม่ว่าจะทําซ้ํากับข้อมูลใด ๆ หรือมีขนาดข้อมูลที่ใหญ่ขึ้นเท่านั้น อาจเป็นไปได้ว่ามีการหมดเวลาบนเครือข่ายที่ใดที่หนึ่งบนเส้นทาง หากมีเพียงข้อมูลขนาดใหญ่เท่านั้น ลูกค้าควรปรึกษากับเจ้าของแหล่งข้อมูลเพื่อดูว่า API รองรับการแบ่งหน้าหรือไม่ เพื่อให้พวกเขาสามารถแยกคําขอของพวกเขาเป็นกลุ่มขนาดเล็กลงได้ หากล้มเหลว ควรทําตามวิธีอื่นในการแยกข้อมูลจาก API (ตามแนวทางปฏิบัติที่ดีที่สุดสําหรับแหล่งข้อมูลต่อไปนี้)

ชุดการเข้ารหัส TLS RSA เลิกใช้งานแล้ว

ตั้งแต่วันที่ 30 ตุลาคม 2020 ชุดการเข้ารหัสต่อไปนี้จะเลิกใช้งานจากเซิร์ฟเวอร์ของเรา

  • "TLS_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_RSA_WITH_AES_256_CBC_SHA256"
  • "TLS_RSA_WITH_AES_128_CBC_SHA256"

รายการต่อไปนี้คือชุดการเข้ารหัสที่รองรับ:

  • "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"

ชุดการเข้ารหัสใช้เพื่อเข้ารหัสข้อความเพื่อรักษาความปลอดภัยการเชื่อมต่อเครือข่ายระหว่างไคลเอนต์/เซิร์ฟเวอร์ และเซิร์ฟเวอร์อื่นๆ เรากำลังนำรายการของชุดการเข้ารหัสด้านบนออก เพื่อให้สอดคล้องกับโปรโตคอลการรักษาความปลอดภัยปัจจุบันของเรา ตั้งแต่วันที่ 1 มีนาคม 2021 ลูกค้าสามารถใช้งาน ชุดการเข้ารหัสมาตรฐาน ของเราเท่านั้น

ต่อไปนี้คือชุดการเข้ารหัสเซิร์ฟเวอร์ที่คุณเชื่อมต่อต้องสนับสนุนการเชื่อมต่อจาก Power Query Online หรือ Power BI

ใน Power Query Desktop (Power BI, Excel) เราจะไม่ควบคุมชุดการเข้ารหัสของคุณ หากคุณพยายามเชื่อมต่อกับ Power Platform (ตัวอย่างเช่น กระแสข้อมูล Power Platform) หรือบริการของ Power BI คุณต้องมีหนึ่งในชุดการเข้ารหัสเหล่านั้นที่เปิดใช้งานบนระบบปฏิบัติการของคุณ คุณสามารถอัพเกรด รุ่น Windows หรืออัปเดต รีจิสทรีของ Windows TLS เพื่อให้แน่ใจว่าจุดสิ้นสุดเซิร์ฟเวอร์ของคุณสนับสนุนหนึ่งในการเข้ารหัสเหล่านี้

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

ลูกค้าต้องอัปเกรดเซิร์ฟเวอร์ของพวกเขา ก่อนวันที่ 1 มีนาคม 2021 สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าลำดับ TLS Cipher Suite โปรดดู จัดการ Transport Layer Security (TLS)

การเพิกถอนใบรับรอง

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

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

ไม่แนะนําให้ใช้ แต่ผู้ใช้สามารถปิดการตรวจสอบการเพิกถอนทั้งหมดได้ต่อไป

ข้อผิดพลาด: การประเมินถูกยกเลิก

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

ข้อผิดพลาด: คีย์ไม่ตรงกับแถวใด ๆ ในตาราง

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

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

ข้อจํากัด: ข้อกําหนดการเข้าร่วมโดเมนสําหรับเครื่องเกตเวย์เมื่อใช้การรับรองความถูกต้องของ Windows

การใช้การรับรองความถูกต้องของ Windows กับเกตเวย์ภายในองค์กรจะต้องใช้เครื่องเกตเวย์เพื่อเข้าร่วมโดเมน ซึ่งนําไปใช้กับการเชื่อมต่อใด ๆ ที่ตั้งค่าด้วย "การรับรองความถูกต้องของ Windows ผ่านเกตเวย์* บัญชีผู้ใช้ Windows ที่ใช้ในการเข้าถึงแหล่งข้อมูลอาจจําเป็นต้องมีการเข้าถึงแบบอ่านในคอมโพเนนต์ที่ใช้ร่วมกันในไดเรกทอรี Windows และการติดตั้งเกตเวย์

ข้อจํากัด: การรีเฟรช OAuth2 ข้ามผู้เช่าไม่ได้รับการสนับสนุนใน บริการของ Power BI

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

ข้อจํากัด: จุดสิ้นสุดการรับรองความถูกต้อง AD FS แบบกําหนดเองไม่ได้รับการสนับสนุนใน บริการของ Power BI

ความสามารถในการใช้จุดสิ้นสุดการรับรองความถูกต้องแบบบริการการเข้าใช้งานเว็บรวมของ Active Directory แบบกําหนดเอง (AD FS) ไม่ได้รับการสนับสนุนในบริการของ Power BI ผู้ใช้อาจพบข้อผิดพลาดต่อไปนี้: บริการโทเค็นที่รายงานโดยทรัพยากรไม่น่าเชื่อถือ

ข้อจํากัด: บัญชีผู้เยี่ยมชมไม่ได้รับการสนับสนุน

การใช้บัญชีผู้เช่าของผู้เช่าเพื่อเชื่อมต่อกับข้อมูลโดยใช้ตัวเชื่อมต่อ Power Query ไม่ได้รับการสนับสนุนในขณะนี้

Expression.Error: การประเมินส่งผลให้เกิดสแตกเกินและไม่สามารถดําเนินการต่อได้

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

let f = (x) => @f(x + 1) in f(0)

ต่อไปนี้เป็นวิธีทั่วไปในการแก้ไขการเรียงซ้อนเกินในรหัส M ของคุณ

  • ตรวจสอบให้แน่ใจว่าฟังก์ชันแบบเรียกใช้ซ้ําของคุณยุติการทํางานจริงเมื่อถึงเงื่อนไขสิ้นสุดที่คาดไว้
  • แทนที่การเกิดซ้ําด้วยการเกิดซ้ํา (ตัวอย่างเช่น โดยใช้ฟังก์ชันเช่น List.Transform, List.Generate หรือ List.Accumulate)

Expression.Error: การประเมินมีหน่วยความจําไม่เพียงพอและไม่สามารถดําเนินการต่อได้

ข้อผิดพลาด "หน่วยความจําไม่เพียงพอ" (หรือ OOMs) อาจเกิดจากการดําเนินการใช้หน่วยความจํามากเกินไปกับตารางที่มีขนาดใหญ่มาก ตัวอย่างเช่น รหัส M ต่อไปนี้สร้าง OOM เนื่องจากพยายามโหลดแถวหนึ่งพันล้านแถวลงในหน่วยความจําครั้งเดียว

Table.Buffer(Table.FromList({1..1000000000}, Splitter.SplitByNothing()))

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

กระแสข้อมูล

ยกเลิกการรีเฟรชกระแสข้อมูล

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

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