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

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

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

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

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

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

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

Graphic representing a rolling window pattern.

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

ข้อกำหนด

ส่วนถัดไปจะอธิบายแผนและแหล่งข้อมูลที่ได้รับการสนับสนุน

แผนที่ได้รับการสนับสนุน

การรีเฟรชแบบเพิ่มหน่วยได้รับการสนับสนุนสําหรับแบบจําลอง Power BI Premium, Premium ต่อผู้ใช้, Power BI Pro และ Power BI Embedded

การรับข้อมูลล่าสุดแบบเรียลไทม์ด้วย DirectQuery ได้รับการสนับสนุนสําหรับแบบจําลอง Power BI Premium, Premium ต่อผู้ใช้ และ Power BI Embedded เท่านั้น

แหล่งข้อมูลที่ได้รับการสนับสนุน

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

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

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

let 
    strRangeStart = DateTime.ToText(RangeStart,[Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"]),
    strRangeEnd = DateTime.ToText(RangeEnd,[Format="yyyy-MM-dd'T'HH:mm:ss'Z'", Culture="en-US"]),
    Source = Json.Document(Web.Contents("https://api.applicationinsights.io/v1/apps/<app-guid>/query", 
    [Query=[#"query"="traces 
    | where timestamp >= datetime(" & strRangeStart &") 
    | where timestamp < datetime("& strRangeEnd &")
    ",#"x-ms-app"="AAPBI",#"prefer"="ai.response-thinning=true"],Timeout=#duration(0,0,4,0)])),
    TypeMap = #table(
    { "AnalyticsTypes", "Type" }, 
    { 
    { "string",   Text.Type },
    { "int",      Int32.Type },
    { "long",     Int64.Type },
    { "real",     Double.Type },
    { "timespan", Duration.Type },
    { "datetime", DateTimeZone.Type },
    { "bool",     Logical.Type },
    { "guid",     Text.Type },
    { "dynamic",  Text.Type }
    }),
    DataTable = Source[tables]{0},
    Columns = Table.FromRecords(DataTable[columns]),
    ColumnsWithType = Table.Join(Columns, {"type"}, TypeMap , {"AnalyticsTypes"}),
    Rows = Table.FromRows(DataTable[rows], Columns[name]), 
    Table = Table.TransformColumnTypes(Rows, Table.ToList(ColumnsWithType, (c) => { c{0}, c{3}}))
in
Table

เมื่อมีการกําหนดค่าการรีเฟรชแบบเพิ่มหน่วย นิพจน์ Power Query ที่มีตัวกรองวันที่/เวลาที่ยึดตามพารามิเตอร์ RangeStart และ RangeEnd จะได้รับการดําเนินการกับแหล่งข้อมูล ถ้ามีการระบุตัวกรองในขั้นตอนคิวรีหลังจากคิวรีแหล่งข้อมูลเริ่มต้น เป็นสิ่งสําคัญที่การพับคิวรีจะรวมขั้นตอนคิวรีเริ่มต้นด้วยขั้นตอนอ้างอิงพารามิเตอร์ RangeStart และ RangeEnd ตัวอย่างเช่น ในนิพจน์คิวรีต่อไปนี้ จะ Table.SelectRows พับเนื่องจากเป็นไปตาม Sql.Database ขั้นตอนทันทีและ SQL Server รองรับการพับ:

let
  Source = Sql.Database("dwdev02","AdventureWorksDW2017"),
  Data  = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
  #"Filtered Rows" = Table.SelectRows(Data, each [OrderDateKey] >= Int32.From(DateTime.ToText(RangeStart,[Format="yyyyMMdd"]))),
  #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each [OrderDateKey] < Int32.From(DateTime.ToText(RangeEnd,[Format="yyyyMMdd"])))
  
in
  #"Filtered Rows1"

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

let
  Query = "select * from dbo.FactInternetSales where OrderDateKey >= '"& Text.From(Int32.From( DateTime.ToText(RangeStart,"yyyyMMdd") )) &"' and OrderDateKey < '"& Text.From(Int32.From( DateTime.ToText(RangeEnd,"yyyyMMdd") )) &"' ",
  Source = Sql.Database("dwdev02","AdventureWorksDW2017"),
  Data = Value.NativeQuery(Source, Query, null, [EnableFolding=false])
in
  Data

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

เนื่องจากการสนับสนุนสําหรับการพับคิวรีจะแตกต่างกันสําหรับแหล่งข้อมูลชนิดต่าง ๆ ควรดําเนินการตรวจสอบเพื่อให้แน่ใจว่าตรรกะตัวกรองรวมอยู่ในคิวรีที่กําลังเรียกใช้กับแหล่งข้อมูล ในกรณีส่วนใหญ่ Power BI Desktop พยายามดําเนินการตรวจสอบนี้สําหรับคุณเมื่อกําหนดนโยบายการรีเฟรชแบบเพิ่มหน่วย สําหรับแหล่งข้อมูลที่ใช้ SQL เช่นฐานข้อมูล SQL, Azure Synapse, Oracle และ Teradata การตรวจสอบนี้เชื่อถือได้ อย่างไรก็ตาม แหล่งข้อมูลอื่น ๆ อาจไม่สามารถตรวจสอบได้โดยไม่ต้องติดตามคิวรี ถ้า Power BI Desktop ไม่สามารถยืนยันคิวรีคําเตือนจะแสดงในกล่องโต้ตอบการกําหนดค่านโยบายการรีเฟรชแบบเพิ่มหน่วย

Screenshot of the query folding warning

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

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

แหล่งข้อมูลเดียว

เมื่อคุณกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยและข้อมูลแบบเรียลไทม์โดยใช้ Power BI Desktop หรือกําหนดค่าโซลูชันขั้นสูงโดยใช้ Tabular Model Scripting Language (TMSL) หรือ Tabular Object Model (TOM) ผ่านตําแหน่งข้อมูล XMLA พาร์ติชันทั้งหมด ไม่ว่าจะนําเข้าหรือ DirectQuery ต้องคิวรีข้อมูลจากแหล่งข้อมูลเดียว

แหล่งข้อมูลชนิดอื่น

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

ขีดจํากัดเวลา

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

หมายเหตุ

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

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

คิวรียังสามารถถูกจํากัดตามขีดจํากัดเวลาเริ่มต้นสําหรับแหล่งข้อมูล แหล่งข้อมูลเชิงสัมพันธ์ส่วนใหญ่จะอนุญาตการแทนที่ขีดจํากัดเวลาในนิพจน์ Power Query M ตัวอย่างเช่น นิพจน์ด้านล่างใช้ ฟังก์ชัน เข้าถึงข้อมูล SQL Server เพื่อตั้งค่า CommandTimeout เป็น 2 ชั่วโมง แต่ละช่วงเวลาที่กําหนดโดยนโยบายจะส่งคิวรีที่สังเกตการตั้งค่าการหมดเวลาคําสั่ง:

let
    Source = Sql.Database("myserver.database.windows.net", "AdventureWorks", [CommandTimeout=#duration(0, 2, 0, 0)]),
    dbo_Fact = Source{[Schema="dbo",Item="FactInternetSales"]}[Data],
    #"Filtered Rows" = Table.SelectRows(dbo_Fact, each [OrderDate] >= RangeStart and [OrderDate] < RangeEnd)
in
    #"Filtered Rows"

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

วันที่และเวลาปัจจุบัน

วันที่และเวลาปัจจุบันจะขึ้นอยู่กับวันที่ของระบบณ เวลาที่รีเฟรช ถ้ามีการเปิดใช้งานการรีเฟรชตามกําหนดการสําหรับแบบจําลองในบริการ โซนเวลาที่ระบุจะถูกนํามาพิจารณาเมื่อพิจารณาวันที่และเวลาปัจจุบัน การรีเฟรชทั้งรายบุคคลและตามกําหนดการผ่านบริการจะสังเกตโซนเวลาถ้ามี ตัวอย่างเช่น การรีเฟรชที่เกิดขึ้นในเวลา 20:00 น. เวลาแปซิฟิก (สหรัฐอเมริกาและแคนาดา) โดยมีโซนเวลาที่ระบุจะกําหนดวันที่และเวลาปัจจุบันตามเวลาแปซิฟิก ไม่ใช่เวลามาตรฐานสากล (UTC) ซึ่งจะส่งกลับในวันถัดไป การดําเนินการรีเฟรชที่ไม่ได้เรียกใช้ผ่านบริการของ Power BI เช่น คําสั่งรีเฟรช TMSL ไม่ต้องพิจารณาโซนเวลาการรีเฟรชตามกําหนดการ

Screenshot of Scheduled refresh dialog showing the Time zone input field

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

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

การกําหนดค่าการรีเฟรชแบบเพิ่มหน่วยจะดําเนินการใน Power BI Desktop สําหรับแบบจําลองส่วนใหญ่ จําเป็นต้องใช้งานบางอย่างเท่านั้น อย่างไรก็ตาม โปรดคํานึงถึงประเด็นต่อไปนี้:

  • หลังจากเผยแพร่ไปยังบริการของ Power BI คุณไม่สามารถเผยแพร่แบบจําลองเดียวกันอีกครั้งจาก Power BI Desktop การเผยแพร่ใหม่จะลบพาร์ติชันและข้อมูลที่มีอยู่ใดๆ ที่มีอยู่แล้วในแบบจําลอง ถ้าคุณกําลังเผยแพร่ไปยังความจุแบบพรีเมียม การเปลี่ยนแปลง Schema ของเมตาดาต้าที่ตามมาสามารถทําได้ด้วยเครื่องมือเช่น ALM Toolkit แบบโอเพนซอร์ส หรือโดยใช้ TMSL หากต้องการเรียนรู้เพิ่มเติม โปรดดู การปรับใช้แบบเพิ่มหน่วยขั้นสูง - การปรับใช้เมตาดาต้าเท่านั้น
  • หลังจากเผยแพร่ไปยังบริการของ Power BI แล้ว คุณจะไม่สามารถดาวน์โหลดแบบจําลองกลับเป็น .pbix ไปยัง Power BI Desktop ได้ เนื่องจากแบบจําลองในบริการสามารถขยายใหญ่ขึ้นได้ จึงไม่สามารถดาวน์โหลดและเปิดแบบจําลองบนคอมพิวเตอร์เดสก์ท็อปทั่วไปได้
  • เมื่อได้รับข้อมูลแบบเรียลไทม์ด้วย DirectQuery คุณไม่สามารถเผยแพร่แบบจําลองไปยังพื้นที่ทํางานที่ไม่ใช่ Premium ได้ การรีเฟรชแบบเพิ่มหน่วยด้วยข้อมูลแบบเรียลไทม์ได้รับการสนับสนุนด้วย Power BI Premium เท่านั้น

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

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

ตัวอย่างเช่น ตารางแหล่งข้อมูล FactInternetSales เฉลี่ยแถวใหม่ 10,000 แถวต่อวัน เมื่อต้องการจํากัดจํานวนแถวที่โหลดลงในแบบจําลองใน Power BI Desktop ในเบื้องต้น ให้ระบุระยะเวลาสองวันระหว่าง RangeStart และRangeEnd

Screenshot of the Manage Parameters dialog showing the RangeStart and RangeEnd parameters.

กรองข้อมูล

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

Screenshot of column context menu with Custom Filter selected

ด้วยตัวอย่าง FactInternetSales ของเรา หลังจากสร้างตัวกรองที่ยึดตามพารามิเตอร์และใช้ขั้นตอนสองวันของข้อมูล (ประมาณ 20,000 แถว) จะถูกโหลดลงในแบบจําลอง

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

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

Screenshot of the Incremental refresh and real-time data dialog showing the Incrementally refresh this table option on.

Table

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

การตั้งค่าที่จําเป็น

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

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

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

การ รีเฟรชข้อมูลแบบเพิ่มหน่วยที่เริ่มต้นก่อนการตั้งค่าวันที่ รีเฟรชจะกําหนดระยะเวลาการรีเฟรชแบบเพิ่มหน่วยซึ่งแถวทั้งหมดที่มีวันที่/เวลาในรอบระยะเวลานั้นจะรวมอยู่ในพาร์ติชันรีเฟรชและรีเฟรชด้วยการดําเนินการรีเฟรชแต่ละครั้ง

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

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

การตั้งค่าที่เลือกได้

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

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

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

โปรดทราบว่า เว้นแต่ว่ามีการกําหนดค่าการรีเฟรชตามกําหนดการสําหรับโซนเวลาที่ไม่ใช่ UTC การดําเนินการรีเฟรชในบริการที่เรียกใช้ภายใต้เวลา UTC ซึ่งสามารถกําหนดวันที่มีผลบังคับใช้และช่วงเวลาที่สมบูรณ์ได้

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

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

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

ในบางกรณี การเปิดใช้งาน ตัวเลือก ตรวจหาการเปลี่ยนแปลงข้อมูล* สามารถปรับปรุงเพิ่มเติมได้ ตัวอย่างเช่น คุณอาจต้องการหลีกเลี่ยงการยืนยันคอลัมน์ที่อัปเดตล่าสุดในแคชในหน่วยความจํา หรือเปิดใช้งานสถานการณ์ที่มีการจัดเตรียมตารางการกําหนดค่า/คําสั่งด้วยกระบวนการ extract-transform-load (ETL) สําหรับการตั้งสถานะเฉพาะพาร์ติชันที่จําเป็นต้องรีเฟรช ในกรณีเช่นนี้ สําหรับความจุแบบพรีเมียม ให้ใช้ TMSL และ/หรือ TOM เพื่อแทนที่ลักษณะการทํางานของการเปลี่ยนแปลงข้อมูลการตรวจหา เมื่อต้องการเรียนรู้เพิ่มเติม ดู การรีเฟรชแบบเพิ่มหน่วยขั้นสูง - คิวรีแบบกําหนดเองสําหรับการตรวจหาการเปลี่ยนแปลงข้อมูล

เผยแพร่

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

หมายเหตุ

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

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

สำคัญ

หลังจากที่ Power BI Desktop เผยแพร่แบบจําลองไปยังบริการแล้ว คุณจะไม่สามารถดาวน์โหลด .pbix นั้นกลับมาได้อีก

รีเฟรช

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

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

การรีเฟรชรายงานโดยอัตโนมัติ

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

การรีเฟรชแบบเพิ่มหน่วยขั้นสูง

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

ชุมชน

Power BI มีชุมชนที่มีสีสันซึ่ง MVP, BI pros และเพื่อนร่วมงานแชร์ความเชี่ยวชาญในกลุ่มการอภิปราย วิดีโอ บล็อก และอื่นๆ เมื่อเรียนรู้เกี่ยวกับการรีเฟรชแบบเพิ่มหน่วย โปรดดูแหล่งข้อมูลเหล่านี้: