2014年6月23日 星期一

使用sp_testlinkedserver檢查Linked Servers是否正常

        有個需求要建Data Mart,然後我打算用PowerPivot讓User可以自己取得最新資料來分析,那驗證這端怎麼弄,因為有AD就簡單很多,可是來源DB在MySQL上耶,那就想辦法把Data Mart建在SQL Server上囉,因為資料量目前不過百萬筆,預估三年內應該不會破千萬,目前容量也不到1G,使用SQL 2014 Express應該足夠

        因為要ETL到SQL Server上,才發現Express不支援SQL Server Agent,只好用工作排程器加SQLCMD來解決

        在SQL Server上建Linked Server到MySQL很簡單,但在ETL的過程中有時會遇到錯誤


        怪的是時好時壞,才想說有沒有測試Linked Server的工具呢,原來微軟早就提供sp_testlinkedserver啦,怎麼用?如下

BEGIN TRY
    
     EXEC sp_testlinkedserver  N'LK_MEM';

     TRUNCATE TABLE [dbo].[test];
     INSERT INTO [dbo].[test]
     SELECT * FROM OPENQUERY(LK_MEM,'SELECT id FROM test.t1;');

END TRY
BEGIN CATCH
     PRINT ERROR_NUMBER()
     PRINT ERROR_MESSAGE()

END CATCH

        很簡單

2014年6月16日 星期一

[MySQL][ODBC]reading authorization packet, system error 2

        我想在SQL Server上打算建Link Server到MySQL去,要連兩台MySQL,所以建兩個Link Server,測試時先在兩台上建同一組帳密,然後開始在SQL上設ODBC,第一台順利建立完成,但第二台設ODBC時就出現如下錯誤


        看起來像驗證的問題,我原以為密碼錯誤,但是我SQL上用mysql cmd連是OK,MySQL Workbench也OK,也確認ODBC輸入的帳密沒問題

        我想該不會是帳號怪怪的有問題吧,我又建立另一組帳號,只是帳號名稱不同,密碼權限相同,結果另一組帳號可行

        總結一下,在同一台MySQL上,建兩組帳號,除帳號名稱不同外,密碼權限皆相同,在遠端用mysql cmd與Workbench兩個帳號都通過驗證,但odbc卻有一組帳號會出現上面那個錯誤,我以為是帳號名稱太長,但另一台同樣的帳密卻OK,真是活見鬼

        在網上搜尋一下,Bug #28359:Intermitted lost connection at 'reading authorization packet' errors,我覺得應該是Bug

2014年6月8日 星期日

在SQL Server上建立連結伺服器到Oracle

        方法超簡單,首先要SQL Server上安裝ODAC,裝完後記得重開機



        然後展開Linked Servers的Providers,應該要有OraOLEDB.Oracle喔,如上圖

2014年6月4日 星期三

[SSRS][Oracle]Memory Usage Report

        接著分享Memory Usage Report



2014年5月30日 星期五

[PowerPivot]如何從MySQL載入資料

        可參考How to Use MySQL and Microsoft PowerPivot Together此篇的教學

        因為得撰寫SQL來撈取資料,所以可以用SQL組成一個扁平化的大表,那如果想要照星狀結構那樣匯入Dimension及Fact Table何較快速的載入其他資料表呢

        假設已經成功匯入一個Table了,在PowerPivot工具列選[設計]的[現有連接]

2014年5月16日 星期五

Excel另類應用:教你分析正妹粉絲團的相片




        想看效果可直接從4分鐘左右開始看,如要做到影片那樣,Excel必須要安裝下列三個Plugin:
  1. Power Query:用來取得Facebook的資料,像是相簿、貼文及按讚等資料
  2. PowerPivot:建立異質資料之間的關聯,供之後的互動式樞紐分析表使用
  3. PowerView:動態圖表,呈現相片用的
        這三個Plugin有最低Office版本的限制,如下:
  1. Power Query:Office 2010 Standard  + Power Query
  2. PowerPivot:Office 2010 Standard + PowerPivot
  3. PowerView:Office 2013 Pro Plus + 啟用PowerView
        也就是說用Office 2010 Standard可以裝Power Query及PowerPivot,PowerView是不支援的;若是Office 2013 Standard的話,很抱歉三個都不支援;若有Office 2013 Pro Plus的話,恭喜你三個都支援喔;Office 365 Pro Plus版也才有支援喔

        以上版本都沒有也沒關係,去評估 Office Professional Plus 2013,就可以免費試用60天喔,試試又不用錢,像我就用評估的啊

2014年5月14日 星期三

[PowerPivot]無法在要求的方向建立關聯性。當您按一下建立時,將會反轉關聯性的方向。

        情況是這樣的,我不想藉由資料庫去Join資料表,剛好看到PowerPivot似乎可以幫我這個忙,只要建立關聯性後,公式列用RELATED資料表的欄位即可,於是就來試試看,那原本有三張資料表:Source、Transactions及Players,都是由Id欄位建立關聯,請注意箭頭方向,此時我多新增了一張資料表Login