SQL Server分析服務協議開發 及 Message Analyzer輔助調試 董琳 & 王維 • 認識一下SSAS • SSAS協議概觀 • SSAS協議文檔的Test Suite 議程 • 演示 • Message Analyzer(MA)概觀 • MA解析器介紹 • SQL Server協議的MA解析器 • 資源及訊息 • Q&A 認識一下SSAS SSAS是哪一位?

功能:決策支援,商業分析職位:分析型資料引擎

企業級 BI應用程式 語義資料模型 DMX Extensions MDX DAX Multidimensional Expressions Data Analysis Expressions SSAS在哪裡? SQL Server BI Platform APPs & Services

SQL Server Excel Analysis Services SharePoint SQL Server SQL Server Integration DBMS SQL Server Reporting Services Power BI Services Data

SQL Server Oracle MySQL JSON File Excel File Ta的能力是? 表格式模型化 Tabular Modeling 多維度模型化 Multidimensional Modeling

資料採礦 Data Mining PowerPivot for SharePoint 為何要使用SSAS? SSAS協議概觀 SSAS協議

MS-SSAS 1/3 Multidimensional

MS-SSAS-T 1/10 Tabular SSAS協議的應用場景

SQL Server Tools MS-SSAS Analysis Server (SSDT, SSMS) MS-SSAS-T

SOAP DirectMS-OLEDBSTR Internet Message 其它程式 XMLA EncapsulationMS-BINXML (DIME) (XML for Analysis) 典型的消息序列

Create Connection

Client AuthenticateNew Session Request (TCP) AuthenticateNew Session Response Response (TCP) Discover / Execute Request

Discover / Execute Response … End of Session Request Server End of Session Response Close Connection SSAS操作

Authenticate Request

Authenticate Response Discover Request

Client Discover Response Server Execute Request

Execute Response 生成一條消息 DIME Record GSS-API TYPE Field (RFC4178)

SOAP TCP Compression? Binary Binary XML? DIME Encryption? Message SSAS Request TCP IP SSAS Response HTTP HTTP

HTTP Header HTTPS Content-Type

解析一條消息 Decode Binary XML? Binary Decode Combine SOAP

TCP Decompress? DIME

Decrypt? Message Records SSAS IP TCP Request SSAS Response HTTP SSAS消息的結構

Scripting Language XMLA SOAP Scripting Language支持

Version Compatibility Multi- Tabular Tabular Tabular Level dimensional 110x 1200 1400

SQL Server 1470 ASSL ASSL TMSL TMSL 2019 Tabular Analysis Model SQL Server 2017 1400 Services Scripting ASSL ASSL TMSL TMSL Scripting Language SQL Server 2016 1200 ASSL ASSL TMSL TMSL Language

SQL Server 2014 1103 ASSL ASSL NA NA

SQL Server 2012 1100 ASSL ASSL NA NA XMLA中的ASSL

ASSL XMLA中的TMSL

TMSL 表格式模型對象

DataSource Column Expression

Table Partition

Relationship Perspective Column Perspective Perspective Server Model Perspective Hierarchy Table Measure Perspective Culture Hierarchy

Role 多維度模型對象

MeasureGroup Server Database Cube Action Dimension

Mining Structure Scala Mining Assembly Mining Structure MeasureGroup Measure Column Structure Column

Dimension TableAggregation Mining Role Dimension MiningKPI Model Aggregation Attribute StructureDesign Column

Mining Structure Trace DataSource MDXScriptHierarchy Partition Permission

DataSourceView Perspective

Cube CubeDimension Account Permission Permission

Cell Assembly Cube Dimension Permission Database Role Permission AMO-TOM元件 SSAS協議文檔的TEST SUITE 我們為什麼要開發Test Suites?

確保微軟開放規範的品質

幫忙評估合作夥伴的實現

加速合作夥伴的開發 Test Suite開發流程

修復錯誤 協議文檔

發現 提取需求 高質量文檔 錯誤

Test Suite Test Suite架構

TestSuite SUT 演示 MESSAGE ANALYZER(MA)概觀 什麼是Microsoft Message Analyzer(MMA)?

顯示和分析 驗證網路數 抓取和追蹤 網絡狀態和 據包與協議 網絡數據 遠端抓包 故障 標準是否相 符

強大的網路分析診斷工具 MMA支持 多源抓取和分析 .cap .pcap .log .evtx SQL Azure Blob Powershell

以及更多! Network Administrator Network Support Analyst Help Desk方案:抓取客戶端數據或 網路故障排除和分析。 聚合來自多個源和不同時區的日誌和 跟踪數據以進行分析。

Protocol Developer Event Tracing Developer MA可以幫助 生成網絡協議代碼后,可以使用 使用ETW技術的應用程序開發,可以 MA作為協議行為,結構,消息 使用MA從ETW Provider抓取和分析 您做什麼? 字段值和狀態的驗證器。 事件訊息。

Tracer 遇到問題的普通用戶,也可以快速的上手抓取本地數據包自 查故障,或者共享給網絡管理員,加快問題的處理進程。 MA強大的過濾器 MA強大的過濾器

TCP.Port == 80

TCP.Port != 3389 // Remove RDP

*PayloadLength > 1000

(TCP.Port == 1234 and HTTP) or SMB

IPv4.Address == 192.168.1.1 MA解析器介紹 協議解析器介紹

OPN解析器 Request

Response

保存為抓包文件 E4074C69736110 協議解析器介紹 E4 07 4C697361 10

識別協議消息 值定義映射 Name= Type = 0xE4 Length = 0x07 Age = 0x10 0x4C697361

Type = Person Length = 6 識別出屬於特 將數據包重新 根據Name微軟 =開放 Lisa 不僅顯示UI中 解碼編碼流以 除了消息語法 定協議的消息。 組合為完整的 規範中定義的Age = 16 已解析的數據, 使其可讀。 驗證之外,解 長消息。 消息語法解析 還顯示微軟開 析器還可以提 原始數據。 放規範中描述 供協議級別限 的數據背後的 制驗證。 定義。 MA的協議解析器

Office and Exchange, Windows SQL SharePoint Skype Parsers Parsers Parsers Parsers

Core and Common Parsers

Microsoft Message Analyzer (MMA) SQL SERVER協議的MA解析器 MS-TDS MS-SSAS MS-SSAS-T SQL Server 協議的 MA解析器

網絡鏈接與應用開發解析器包 數據分析服務解析器包(最新發佈) (Network Connectivity and (Analysis Services parser Application Development package) parse package) Windows Parsers SQL Parsers 從Asset Manager 獲取 中下載安裝

SQL Server 協議的MA解析器 Core and Common Parsers MS-TDS Parser

Microsoft Message Analyzer (MA) 獲取SQL Server協議的MA解析器

點擊后可安裝下載

安裝成功! 資源及訊息 新聞訊息: Analysis Services Team Blog: https://blogs.msdn.microsoft.com/analysisservices/ Open Specifications Dev Center: https://docs.microsoft.com/en-us/openspecs/dev_center/ms- devcentlp/51a0d3ff-9f77-464c-b83f-2de08ed28134

SSAS開發: AMO: https://docs.microsoft.com/en-us/sql/analysis-services/multidimensional-models/analysis- management-objects/amo-classes-introduction?view=-server-2017 TOM: https://docs.microsoft.com/en-us/sql/analysis-services/tabular-model-programming- compatibility-level-1200/tabular-model-programming-for-compatibility-level-1200?view=sql-server- 2017 SQL Server 2016 Feature Pack download page: https://www.microsoft.com/en- us/download/details.aspx?id=52676 SQL Server 2017 Feature Pack download page: https://www.microsoft.com/en- us/download/details.aspx?id=55992 TestSuite Git: https://github.com/Microsoft/ProtocolTestFramework SQL Server Technical Documents: https://docs.microsoft.com/en- us/openspecs/sql_server_protocols/ms-sqlprotlp/3432cb95-3f91-446d-86d7-b9ea0816464e BI用戶: SSDT: https://docs.microsoft.com/en-us/sql/ssdt/sql-server-data-tools?view=sql-server-2017 SSRS: https://docs.microsoft.com/en-us/sql/reporting-services/tools/reporting-services- tools?view=sql-server-2017 Power BI: https://powerbi.microsoft.com/en-us/ Power BI Blog: https://powerbi.microsoft.com/en-us/blog/ Microsoft BI: https://www.microsoft.com/en-us/sql-server/business-intelligence

Microsoft Message Analyzer用戶: 操作指南: https://docs.microsoft.com/en-us/message-analyzer/microsoft-message-analyzer- operating-guide 下載地址: https://www.microsoft.com/en-us/download/details.aspx?id=44226 線上教程: https://docs.microsoft.com/en-us/message-analyzer/message-analyzer-tutorial Q&A 謝謝!