Author Archives: byronhu

小心 MAX

image

廣告

知識工作者合作產生的問題能靠制度解決嗎

最近的領悟是,不能。

制度是預設值,代表的是期待的方向。但知識工作者的特性是思考,找問題(漏洞),創造需求(漏洞),利用優勢(漏洞),進入下一代。預設值(制度)追不上變化,只代表累積到現在的問題的局部解釋。

人的問題,特別是知識工作者,只有人能解。

越是上位者,需要越廣地看到問題、越大的包容力,以橫向聯繫,支持參與單項工作的同仁有整體觀。

但人理解問題的能力,包容力卻不知如何養成…

而團隊的凝聚力(競爭力)似乎與上位者的包容力息息相關

 

 

IT 的問題就是人的問題,不是技術問題

異鄉異客

image

image

 

image

image

透過 OData feed 以 Reporting Services Shared Dataset 提供資料給 PowerBI

https://docs.microsoft.com/en-us/power-bi/report-server/access-dataset-odata

REST API 的定義:

https://msdn.microsoft.com/en-us/library/mt704264(v=sql.105).aspx

REST API 的格式約略如下:

http://localhost/ReportS/api/v2.0/datasets(479DDB25-5D68-4EE3-A2E0-10E22C525BA7)/data

image

若要查 dataset 的 ID,可以透過

select Name,ItemID from ReportServer.dbo.Catalog
where type=8

選取資料源為 OData feed

image

image

取得紀錄

image

點選 More Columns 取得其他欄位

image

點選設定,去掉 Default column name prefix

image

image

SSMS 查詢文字結果過長

雖然 Grid 設定 Max 可達 64K,但實際 4 萬多字可能就被截斷了,最好是轉成 XML 呈現。

OPENROWSET 取 Tab 分隔檔

SQL 2017 以前的做法

SELECT * 
FROM OPENROWSET(
    'Microsoft.ACE.OLEDB.12.0', 
    'Text; HDR=YES; Database=C:\Text', 
    'SELECT * FROM testupload2.txt')

In C:\Text\schema.ini:

[testupload2.txt]
ColNameHeader=True
Format=TabDelimited
MaxScanRows=0

https://dba.stackexchange.com/questions/29306/can-i-query-a-tab-delimited-file-from-ssms

https://docs.microsoft.com/en-us/sql/odbc/microsoft/schema-ini-file-text-file-driver

髒資料髒進髒出

image

image

企業內透過 RS 整合 Power BI 的解決方案可用了

2017年 11/1 的更新可能標誌著 Power BI 可以用在企業內 Solution 了,幾個期待已久的功能都做進來

以下是相關的連結:

https://powerbi.microsoft.com/en-us/blog/new-version-of-power-bi-report-server-now-available/

使用 Power BI 報表伺服器的內部部署報表 https://powerbi.microsoft.com/zh-tw/report-server/

image

Microsoft Power BI Desktop (最佳化後十分適合搭配 Power BI 報表伺服器 – 2017 年 10 月 使用) https://www.microsoft.com/zh-tw/download/details.aspx?id=56136

除了以往 Power BI 友善的互動外,這一版新增且企業非常需要的功能:

鑽研篩選

多種 Data Source

  • 非侷限 AS
  • 以 OData  吃 RS 的 Shared DataSet
  • 排程更新 Data Source

image

以 REST API 跟 RS 溝通

透過 URL 內嵌 PBI 時,可以帶過濾條件,例如:https://reportserver/reports/powerbi/Store Sales?rs:Embed=true&filter= Store/Territory eq ‘NC’ and Store/Chain eq ‘Fashions Direct’

 

 

 

 

另外,註記一下,一台機器現在偷偷跑起來的 AS 服務真多

image

從上到下,透過使用者名稱可以得知分別為獨立的 AS、Power BI Desktop 使用的 AS 和 RS 使用的 AS,後兩者是 Power BI Desktop 和 RS 利用來建立與解釋 Model,取得與更新資料用。

是否啟用壓縮

SELECT ix.name,st.name,schema_name(st.schema_id)
FROM sys.partitions SP
JOIN sys.tables ST ON st.object_id = sp.object_id
left JOIN sys.sysindexes IX ON sp.object_id = ix.id and sp.index_id = ix.indid
WHERE sp.data_compression = 0

取得 Power BI 後的 Model

感謝微軟 Egg 告知,Power BI Desktop 是在背後起一個 AS 服務,以如下的 Power BI Desktop 為例:

image

透過 PowerShell 查該 msmdsrv 的 Processid 後,透過 netstat –o 查聽的 port

image

而後透過 SSMS 連結 AS

imageP

就可以透過物件總管觀察該 Tabular Model

image

透過 SSDT 從 Server 讀回該 Model 定義會有如下的錯誤

image

可以產生 TMSL Script

image

而後再到 AS Tabular 貼上語法執行時,因為會多出 .tables[1].isPrivate、 model.tables[2].columns[3].variations…等屬性而無法部署到獨立的 AS 上,得到的錯誤訊息如下:

正在執行查詢 …
JSON DDL 要求失敗,並出現下列錯誤: Unrecognized JSON property: isPrivate. Check path ‘model.tables[1].isPrivate’, line 251, position 25.。
執行完成