แชร์ผ่าน


แก้ไขปัญหาการรีเฟรชตามกําหนดการในเซิร์ฟเวอร์รายงาน Power BI

บทความนี้อธิบายถึงทรัพยากรที่พร้อมใช้งานเพื่อแก้ไขปัญหากับการรีเฟรชตามกําหนดการใน เซิร์ฟเวอร์รายงาน Power BI

เมื่อมีปัญหาใหม่ ๆ เกิดขึ้น บทความนี้จะถูกอัปเดตด้วยข้อมูลที่จะช่วยคุณได้

ปัญหาทั่วไป

ต่อไปนี้คือปัญหาทั่วไปที่คุณอาจพบเมื่อพยายามกําหนดเวลารีเฟรชสําหรับรายงาน

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

โปรแกรมควบคุมอาจมาในแบบ 32 บิต และ 64 บิต ตรวจสอบให้แน่ใจว่าได้ติดตั้งไดรเวอร์ 64 บิต เนื่องจากเซิร์ฟเวอร์รายงาน Power BI เป็น 64 บิต

โปรดดูที่ผู้ผลิตสําหรับรายละเอียดเกี่ยวกับวิธีการติดตั้ง และกําหนดค่าโปรแกรมควบคุมจากบริษัทอื่น

หน่วยความจําไม่เพียงพอ

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

ถ้าคุณกําลังประสบปัญหาเรื่องหน่วยความจําอยู่เสมอ มันอาจถึงเวลาแล้วที่จะมองไปที่การปรับใช้แบบ scaled out ของเซิร์ฟเวอร์รายงานเพื่อกระจายการใช้ทรัพยากร คุณยังสามารถกําหนดได้ว่าจะใช้เซิร์ฟเวอร์รายงานตัวนั้นสําหรับการรีเฟรชข้อมูลด้วย IsDataModelRefreshService การตั้งค่าภายใน rsreportserver.config หรือไม่ ด้วยการตั้งค่านี้ คุณสามารถกําหนดหนึ่งหรือหลายเซิร์ฟเวอร์ให้เป็นเซิร์ฟเวอร์ front end เพื่อจัดการกับรายงานตามความต้องการ และมีชุดของเซิร์ฟเวอร์อีกชุดที่จะใช้สําหรับรีเฟรชตามกําหนดการเท่านั้น

สําหรับข้อมูลเกี่ยวกับวิธีการตรวจสอบอินสแตนซ์ Analysis Services ดู ตรวจสอบอินสแตนซ์ Analysis Services

สําหรับข้อมูลเกี่ยวกับการตั้งค่าหน่วยความจําภายใน Analysis Services ดู คุณสมบัติหน่วยความจํา

การกําหนดค่า Kerberos

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

ปัญหาที่ทราบกันดี

ข้อมูลเกี่ยวกับปัญหาที่ทราบแล้วจะแสดงอยู่ที่นี่เมื่อมีข้อมูลพร้อมให้บริการ

การตั้งค่าการกำหนดค่า

การตั้งค่าต่อไปนี้จะมีผลต่อการรีเฟรชตามกําหนดเวลา การตั้งค่าตั้งค่าภายใน SQL Server Management Studio (SSMS) จะมีผลกับทุก ๆ เซิร์ฟเวอร์รายงานภายในการปรับใช้แบบขยาย การตั้งค่ากําหนดค่าภายใน rsreportserver.config มีไว้สําหรับเซิร์ฟเวอร์เฉพาะที่ถูกตั้งค่า

การตั้งค่าภายใน SSMS:

การตั้งค่า รายละเอียด
MaxFileSizeMb ขนาดไฟล์สูงสุดสําหรับรายงานที่อัปโหลด ค่าเริ่มต้นคือ 1000 เมกะไบต์ (1 GB) ค่าสูงสุดคือ 2000 เมกะไบต์ (2 GB)
ModelCleanupCycleMinutes กําหนดความถี่ในการตรวจสอบแบบจําลองเพื่อขับออกจากหน่วยความจํา ค่าเริ่มต้นคือ 15 นาที
ModelExpirationMinutes กําหนดว่าเวลานานเท่าใดจนกว่าแบบจําลองจะหมดอายุโดยยึดตามการใช้งานครั้งล่าสุดและขับออกไป ค่าเริ่มต้นคือ 60 นาที
ScheduleRefreshTimeoutMinutes กําหนดว่าการรีเฟรชข้อมูลสามารถใช้เวลานานแค่ไหนสําหรับแต่ละโหมด ค่าเริ่มต้นคือ 120 นาที ไม่มีขีดจํากัดสูงสุด

การตั้งค่าภายใน rsreportserver.config:

<Configuration>
    <Service>
        <PollingInterval>10</PollingInterval>
        <IsDataModelRefreshService>false</IsDataModelRefreshService>
        <MaxQueueThreads>0</MaxQueueThreads>
    </Service>
</Configuration>

เครื่องมือสําหรับการแก้ไขปัญหา

บันทึกที่เกี่ยวข้องกับการรีเฟรชตามกําหนดการของรายงาน Power BI

แฟ้มบันทึกที่เก็บข้อมูลเกี่ยวกับการรีเฟรชตามกําหนดการคือบันทึก RSPowerBI_ บันทึกดังกล่าวอยู่ในโฟลเดอร์ LogFiles ของตําแหน่งการติดตั้งเซิร์ฟเวอร์รายงานของคุณ

C:\Program Files\Microsoft Power BI Report Server\PBIRS\LogFiles\RSPowerBI_*.log

เงื่อนไขข้อผิดพลาด

2017-10-20 02:00:09.5188|ERROR|744|Error Processing Data Model Refresh: SessionId: e960c25e-ddd4-4763-aa78-0e5dceb53472, Status: Error Model can not be refreshed because not all the data sources are embedded, Exception Microsoft.PowerBI.ReportServer.AsServer.InvalidDataSourceException: Model can not be refreshed because not all the data sources are embedde
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.AnalysisServicesDataRefresh.CanModelRefresh(IEnumerable`1 dataSources)
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.DataRefreshScope.<>c__DisplayClass7.<ExecuteActionWithLogging>b__5()
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.DataRefreshScope.<ExecuteFuncWithLogging>d__1`1.MoveNext()

การรีเฟรชที่สําเร็จ

2017-10-25 15:23:41.9370|INFO|6|Handling event with data: TimeEntered: 10/25/2017 8:23:41 PM, Type: Event, SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, EventType: DataModelRefresh
2017-10-25 15:23:41.9370|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Data Refresh.
2017-10-25 15:23:41.9370|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Retrieving PBIX AsDatabaseInfo.
2017-10-25 15:23:42.7134|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Verifying all the data sources are embedded.
2017-10-25 15:23:42.7134|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Verifying connection strings are valid.
2017-10-25 15:23:42.7134|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Streaming model to Analysis Server.
2017-10-25 15:23:42.7603|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Refreshing the model.
2017-10-25 15:23:51.5258|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Removing credentials from the model.
2017-10-25 15:23:51.6508|INFO|6|Processing Data Model Refresh: SessionId: 46d398db-0b1f-49d8-b7bd-c5461c07ec7a, Status: Starting Saving model to the catalog.

ข้อมูลประจําตัวไม่ถูกต้อง

2017-10-20 08:22:01.5595|INFO|302|Processing Data Model Refresh: SessionId: 22cd9ec3-b21a-4eb1-81ae-15fac8d379ea, Status: Starting Refreshing the model.
2017-10-20 08:22:02.3758|ERROR|302|Error Processing Data Model Refresh: SessionId: 22cd9ec3-b21a-4eb1-81ae-15fac8d379ea, Status: Error Failed to refresh the model, Exception Microsoft.AnalysisServices.OperationException: Failed to save modifications to the server. Error returned: 'The credentials provided for the SQL source are invalid. (Source at rosecatalog;reportserver.). The exception was raised by the IDbCommand interface.
'.
   at Microsoft.AnalysisServices.Tabular.Model.SaveChanges(SaveOptions saveOptions)
   at Microsoft.PowerBI.ReportServer.AsServer.TOMWrapper.RefreshModel(Database database)
   at Microsoft.PowerBI.ReportServer.AsServer.AnalysisServicesServer.RefreshDatabase(String databaseName, IEnumerable`1 dataSources)
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.AnalysisServicesDataRefresh.RefreshDatabase(AsDatabaseInfo asDatabaseInfo)
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.DataRefreshScope.<>c__DisplayClass7.<ExecuteActionWithLogging>b__5()
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.DataRefreshScope.<ExecuteFuncWithLogging>d__1`1.MoveNext()
2017-10-20 08:22:02.4588|ERROR|302|Error Processing Data Model Refresh: SessionId: 22cd9ec3-b21a-4eb1-81ae-15fac8d379ea, Status: Error Failed Data Refresh, Exception Microsoft.AnalysisServices.OperationException: Failed to save modifications to the server. Error returned: 'The credentials provided for the SQL source are invalid. (Source at rosecatalog;reportserver.). The exception was raised by the IDbCommand interface.
'.
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.DataRefreshScope.ExecuteActionWithLogging(Action methodToExecute, String description, String localizedDescription, String messageInFailure, RefreshInfo refreshInfo, DataAccessors dataAccessors, ReportEventType operation, Int64 size, Boolean isDataRetrieval, Boolean showInExecutionLog)
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.AnalysisServicesDataRefresh.RefreshData(RefreshInfo refreshInfo)
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.DataRefreshScope.<>c__DisplayClass7.<ExecuteActionWithLogging>b__5()
   at Microsoft.PowerBI.ReportServer.WebHost.EventHandler.DataRefreshScope.<ExecuteFuncWithLogging>d__1`1.MoveNext()

เปิดใช้งานการบันทึกแบบอย่างละเอียด

เปิดใช้งานการบันทึกแบบอย่างละเอียดใน เซิร์ฟเวอร์รายงาน Power BI จะเหมือนกับใน SQL Server Reporting Services

  1. เปิด <install directory>\PBIRS\ReportServer\bin\ReportingServicesService.exe.config
  2. ภายใต้ <system.diagnostics>เปลี่ยน DefaultTraceSwitch เป็น 4
  3. ภายใต้ <RStrace>เปลี่ยน Components เป็น all:4

ล็อกการดําเนินการ

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

รายการบันทึกการดําเนินการสําหรับรายงาน Power BI แตกต่างจากรายการสําหรับรายงานชนิดอื่น

  • คอลัมน์ TimeRendering จะเป็น 0 เสมอ การแสดงผลของรายงาน Power BI เกิดขึ้นในเบราว์เซอร์ ไม่ได้อยู่ในเซิร์ฟเวอร์
  • มีค่า Request Types ได้ 2 แบบและการดําเนินการที่เกิดขึ้นต่อมา:
    • แบบโต้ตอบ: เมื่อใดก็ตามที่มีการดูรายงาน
      • ASModelStream: เมื่อรูปแบบข้อมูลถูกสตรีมไปยัง Analysis Services จากแค็ตตาล็อก
      • ConceptualSchema: เมื่อผู้ใช้คลิกดูรายงาน
      • QueryData: เมื่อใดก็ตามที่มีการร้องขอข้อมูลจากไคลเอ็นต์
    • รีเฟรชแคช: เมื่อใดก็ตามที่มีการดําเนินการตามแผนการรีเฟรชตามกําหนดเวลา
      • ASModelStream: เมื่อใดก็ตามที่รูปแบบข้อมูลถูกสตรีมไปยัง Analysis Services จากแค็ตตาล็อก
      • DataRefresh: เมื่อใดก็ตามที่มีการรีเฟรชข้อมูลจากแหล่งข้อมูลหนึ่งหรือหลายแหล่ง
      • SaveToCatalog: เมื่อใดก็ตามที่รูปแบบข้อมูลกําลังถูกบันทึกกลับไปยังแค็ตตาล็อก

Analysis Services

อาจมีบางครั้งที่คุณต้องการปรับเปลี่ยน Analysis Services เพื่อวินิจฉัยปัญหา หรือปรับค่าขีดจํากัดหน่วยความจํา

สำคัญ

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

ตําแหน่งที่ติดตั้ง

ตําแหน่งที่ตั้งเริ่มต้นสําหรับเซิร์ฟเวอร์รายงาน Power BI และ Analysis Services มีดังนี้

C:\Program Files\Microsoft Power BI Report Server\PBIRS\ASEngine

การกําหนดค่าการตั้งค่า Analysis Services (msmdsrv.ini)

ใน <install directory>\PBIRS\ASEngine ไดเรกทอรี คุณจะพบ แฟ้ม msmdsrv.ini ซึ่งคุณสามารถใช้เพื่อควบคุมการตั้งค่าที่แตกต่างกันของ Analysis Services ได้ เมื่อคุณเปิดไฟล์นี้คุณจะเห็นได้ทันทีว่าไฟล์นี้ไม่มีการตั้งค่าทั้งหมดที่คุณคาดหวังในไฟล์ msmdsrv.ini

ทั้งนี้เนื่องจากกระบวนการ Analysis Services จริงที่เรียกใช้โดยเซิร์ฟเวอร์รายงาน Power BI จะเปิดใช้งานใน<install directory>\PBIRS\ASEngine\workspaces ในโฟลเดอร์นั้น คุณจะเห็นแฟ้ม msmdsrv.ini แบบเต็มที่คุณคุ้นเคย สิ่งสําคัญคือต้องไม่ปรับเปลี่ยนแฟ้มภายในโฟลเดอร์พื้นที่ทํางาน เนื่องจากมีการเขียนใหม่เมื่อใดก็ตามที่เปิดใช้ Analysis Services หากคุณต้องการควบคุมการตั้งค่า โปรดแก้ไข msmdsrv.ini ใน <install directory>\PBIRS\ASEngine ไดเรกทอรี

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

  • การกําหนดค่าการตั้งค่า\PrivateProcess
  • การกําหนดค่าการตั้งค่า\DataDir
  • การกําหนดค่าการตั้งค่า\LogDir
  • การกําหนดค่าการตั้งค่า\TempDir
  • การกําหนดค่าการตั้งค่า\BackupDir
  • การกําหนดค่าการตั้งค่า\AllowedBrowsingFolders
  • การกําหนดค่าการตั้งค่า\CrashReportsFolder
  • การกําหนดค่าการตั้งค่า\ExtensionDir
  • การกําหนดค่าการตั้งค่า\พอร์ต
  • การกําหนดค่าการตั้งค่า\DeploymentMode
  • การกําหนดค่าการตั้งค่า\ServerLocation
  • การกําหนดค่าการตั้งค่า\TMCompatabilitySKU
  • Configuration การตั้งค่า\FlightRecorder\TraceDefinitionFile

การทําโพรไฟล์กระบวนการ Analysis Services ภายในเครื่อง

การติดตาม SQL Profiler สามารถเรียกใช้ได้ในเครื่องของ Analysis Services สําหรับการวินิจฉัยปัญหา เมื่อต้องการเชื่อมต่อกับอินสแตนซ์ Analysis Services ภายในเครื่อง ให้ทําสิ่งต่อไปนี้

การติดตาม SQL Server Profiler จะรวมอยู่ใน การดาวน์โหลด SQL Server Management Studio (SSMS) แล้ว

  1. เริ่มต้น SQL Server Profiler ในฐานะผู้ดูแล
  2. เลือก ปุ่มการติดตาม ใหม่
  3. ในกล่องโต้ตอบ เชื่อมต่อเซิร์ฟเวอร์ เลือก Analysis Services และป้อน localhost:5132 สําหรับชื่อเซิร์ฟเวอร์
  4. ในกล่องโต้ตอบคุณสมบัติการติดตาม เลือกเหตุการณ์คุณต้องการบันทึก และเลือกเรียกใช้

สิทธิพิเศษ Windows ในการล็อกหน้าในหน่วยความจํา

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

มีคำถามเพิ่มเติมหรือไม่? ลองถามชุมชน Power BI