2014年8月31日 星期日

函式

物件

雖然 JavaScript 沒有提供 Class 和 Inheritance ,但是它還是可以透過別的方式來實現這些 OOP 的功能。 要實現這些 OO 功能,只要回歸到 JavaScript 物件本身即可,只是 JavaScript 物件與 C# 或 C++ 語言中的物件有不一樣的概念。 這篇文章,主要就是介紹在 JavaScript 語言中的物件概念。

基礎語法

2014年8月27日 星期三

我的 MCSA 認證

使用 UML 進行需求分析

在專案開始開發之前,必須要做的階段就是「需求分析」, 這個階段的主要工作內容包含:資料蒐集、需求分析以及撰寫需求報告書。 本文將依以下內容來說明:

  • 系統領域分析(domain analysis)
  • 如何擷取需求
  • 整理需求分析
  • 撰寫軟體需求規格書 (Software Requirement Specification, SRS)

Ext.Net

抽象、介面、委派、事件

Transformations

Task

事件處理

MVC 多語系

檔案上傳

安裝 eclipse

要建立 Android 開發環境,會用到以下幾個工具軟體:

  • Eclipse:一套用來撰寫 Java 程式語言的開發工具。
  • Android SDK:提供開發 Android 應用程式所需要的 API 類別庫。
  • Android Development Tools (ADT):ADT 是安裝在 Eclipse 中的 plugin 套件,它提供一個強大的整合環境,讓你在 Eclipse 中可以更快速的開發 Android 應用程式。
  • ADT Bundle:ADT Bundle 是 Google 為了降低 Android 入門門檻所包裝而成的開發工具,整合了Android SDK、eclipse、Android Development Tools (ADT),而且只要解壓縮後就可以使用了

2014年6月15日 星期日

WorkFlow 簡介

Windows Workflow Foundation 是在 VS2005 , 也就是 .NET Framework 3.0 時代才被加入的一個功能。 它被整合在 .NET Framework 之中,用來協助在應用程式中開發與工作流程相關的功能。 搭配 VS 的圖型化設計介面,讓您可以在 Windows 上快速建置支援工作流程的應用程式。

DataGridView 控制項(2)

WPF 簡介

DataGridView 控制項(1)

DataGridView 是一種表格樣式的控制項,專門用來顯示資料用的。 不論有沒有基礎資料來源,您都可以使用 DataGridView 控制項來顯示資料。 若沒有指定資料來源,你可以先建立包含資料的資料行和資料列,再將它們加入 DataGridView 。 若使用資料來源,你可以設定 DataSource 和 DataMember 屬性,讓 DataGridView 與資料建立繫結,就可以自動填入資料。

ListView 控制項

2014年4月29日 星期二

使用 UML 建立專案模型

為了讓專案開發團隊也可以使用 UML 模型做為溝通的工具,因此微軟在 VS2010 開發工具中,開始加入了「UML 模型專案」。 你除了可以直接建立新的 UML 模型專案外,你也可以將現有的專案程式碼轉換成 UML 模型,以方便程式的重構。 這個範本中支援五種常用的 UML 模型圖。

  • Use Case diagrams :使用案例圖,主要目的是用來塑模出系統的需求(What)。
  • Activity diagrams :活動圖,主要目的是用來塑模各個案例的工作流程(How)。
  • Sequence diagrams :順序圖,主要目的是用來描述問題領域中物件之間互物的情形。
  • Component diagrams :元件圖,以模組化的方式塑模系統的主要結構。
  • Class diagrams :類別圖,描述物件內的詳細資料結構。
建立模型專案

模型專案範本

2014年3月28日 星期五

效能調校(3)-讓索引變的有用

一般資料庫系統都會針對查詢進行最佳化設計,負責這功能的引擎就稱為查詢最佳化器(Query Optimization) 而 Query Optimizer 就是 SQL Server 的查詢最佳化器, 它會根據查詢條件進行工作計劃(execution plans )評估,並找到最小成本的那個評估計劃來執行。 所以,我們必須調校我們的資料庫,以便讓 Query Optimizer 可以正確使用我們所建立的索引,以取得最佳的執行計畫。

2014年3月5日 星期三

建立索引(2)-資料存放區索引

資料行存放區索引(Columnstore indexs)

  • supported from SQL2012
  • just another nonclustered index on a table
  • it can speed up data warehousing queries by a large factor, from 10 to even 100 times.
  • A columnstore index is stored compressed.
  • Columnstore indexes use their own compression algorithm; you cannot use Row or Page compression on a columnstore index.

2014年2月25日 星期二

Lab16:在SSIS封裝中使用自訂程式碼

這個練習將會使用 Data Profiling Task 去分析資料庫中客戶電子郵件資料的樣版(Pattern)。並將分析結果輸出到 XML 檔案中。 然後再使用 Script Task 來開啟這個檔案,以讀取 XML 文件中樣版的資料。

根據得到的樣版,再使用正規表達式去驗證另一個資料庫中的電子郵件資料,找出不符合這個樣版的郵件。

2014年2月24日 星期一

Lab15:資料模楜比對

在這個 Lab 中,將練習以下二個主題:

  • 如何使用模糊查閱(Fuzzy Lookup),對整批的資料執行識別對應。
  • 如何使用 MDS Add-in for Excel 來清除重複資料。

2014年2月18日 星期二

Lab14:資料比對

這個 Lab 將練習如何使用 DQS Cleansing Transformation ,以及如何使用 DQS 比對原則知識庫進行重複資料的清除。

2014年2月13日 星期四

Lab13:資料清理

在 Lab12 中我們已經建立好知識庫,現在我們要建立一個「DQS 專案」,並使用該知識庫來進行資料清理的工作。

除了 DQS 專案可以用來分析資料品質,另外,如果在 SSIS 封裝中,你也可以利用「 Data Profiling Task 」來分析資料的分佈狀況,以判別是否有淺在的資料品質問題。

2014年2月12日 星期三

Lab12:建立知識庫

這個練習示範如何透過知識探索(knowledge discovery)來建立知識庫(KB),並且在知識庫中進行定義域的維護工作。

2014年1月28日 星期二

資料重覆問題

在企業中,主要資料( Master Data)的來源常常會經由不同系統匯入,此時最大的挑戰就是「識別對應(identity mapping)」和「資料重複(de-duplication)」問題。

例如:來自不同系統的客戶資料,他們使用不同的識別碼,但卻表示同一位客戶,在建置主資料時,你該如何識別它們,以剔除這樣子的重複性。 另一種狀況是像名字或地址這類資料,常常因為輸入打字的原故,彼此之間有些微的不同,但是卻又代表相同的資料,在建置主資料時,也應該要剔除這樣子的重複性。

在 SSIS 中自訂程式碼

在 SSIS 中提供許多工具或元件可以用來執行各種作業需求, 如果這些現成的元件還不能滿足需求話,你也可以利用以下元件,透過自訂程式碼的方式來設計封裝。

  • Script Task :允許在 Control Flow 中執行 .Net 腳本。
  • Script Component :允許在 Data Flow 中執行 .Net 腳本。
  • Custom Components :自訂元件,方便重複使用與部署。

SSIS and Data Mining

2014年1月27日 星期一

資料品質專案

在安裝 Data Quality Services 之後,你就可以開始使用 DQS 提升資料品質。 DQS 中的「資料品質專案(Data Quality Project)」是一種改善來源資料品質的一種專案, 它會利用知識庫(KB)中的資訊,執行「資料比對(matching)」和「資料清理(cleansing)」活動(Activity),然後將執行結果匯出到 SQL Server 資料庫或 .csv 檔案。

下表先簡單整理解決「資料清理(cleansing)」「資料比對(matching)」問題,可用的工具:

2014年1月24日 星期五

Lab10:建立 MDS 模型

這個 Lab 將練習如何建立 MDS 模型及其相關物件。並且在模型中,以手動方式,建立實體的成員。

2014年1月22日 星期三

管理 Master Data

設計 Master Data Services (MDS)

Master Data Services

Master Data Services(MDS)主要用途就是要用來執行主要資料管理(Master Data Management, MDM)。 主要資料指的是單位組織對其非交易之資料進行探索與定義,以便匯編成一份可維護的主要清單。 成功的 MDM 方案可產生可靠的集中式資料,以利資料分析,以便導出更好的商業性決策。

也就是說,MDS 主要用來維護一個精確且集中式的資料(即主要資料),確保整個組織的所有應用程式都能夠共同參考這一份資料。 例如:ERP, HMS, CRM 等不同系統,他們都必參照到"人"的資料,就可以透過 MDS 建立一份人的主要資料,以便當做這些應用程式的中央資料單位。 或者像郵遞區號,通常也都是當做主要資料。

MDM 專案一般包含內部商業程序的評估與重組,以及 MDM 技術的實作。 只要透過適當的訓練,大部分商務使用者應該都可以實作 Master Data Services 方案。 此外,您還可以使用 MDS 管理任何網域(domain);它不是單指管理客戶、產品或帳戶的清單。 首次安裝 MDS 時,它不包含任何網域的結構,但您可以經由建立模型來定義所需要的網域。

安裝與維護 Data Quality Servies (DQS)

企業資訊管理解決方案 (EIM)

SQL Server 2012 在單一產品中提供了有效企業資訊管理 (EIM) 解決方案所需的所有元件。 可幫助您建置 EIM 解決方案的主要 SQL Server 2012 元件包括:

  • SSIS : SQL Server Integration Services
    提供強大的 ETL 功能,整合各種不同的來源資料。
  • MDS : SQL Server Master Data Services
    該服務可用來維護一個精確且集中式的資料集,確保主要資料在不同應用程式之間的完整性和一致性。
  • DQS : SQL Server Data Quality Services
    該服務可讓您清理、比對、標準化及充實資料,籍此維護資料的品質,並確保資料適合其商業用途。

什麼是 Data Quality Services (DQS)

  • DQS 是一種利用知識驅動(knowledge-driven)以提升資料品質的服務。
  • DQS 可讓您建立知識庫,然後使用該知識庫執行各種重要的資料品質工作,包括更正(correction)、充實(enrichment)、標準化(standardization)及刪除重複(de-duplication)資料。
  • 你也可以在 DQS 中使用雲端參考資料當作參考資料提供者,以更執行資料清理
  • DQS 也提供您整合資料品質工作(data-quality tasks),讓您分析資料的完整性。

DQS 包含 Data Quality Server 和 Data Quality Client,兩者都會安裝成 SQL Server 2012 的一部分。

  • Data Quality Server:一個 SQL Server 執行個體功能。其中包含具有資料品質功能與儲存的三個 SQL Server 目錄。
  • Data Quality Client:一個 SQL Server 共用功能。 操作者(商務使用者、資訊工作者以及 IT 專業人員)可以使用該功能來執行電腦輔助的資料品質分析(自動),或者以互動方式來管理資料品質(人工)。

2014年1月8日 星期三

疑難排除與效能調整

封裝執行

有數種方法都可以用來執行封裝,不過這些方法大抵可以被區分二個類別:

  • On-demand:依需求使用人工操作的方法來啟動執行。
  • Automated:由 SSIS Service 自動啟動執行。

2014年1月5日 星期日

動態封裝

有時候為了便方將封裝在不同環境下執行(例如開發、測試和產品等不同環境),這時就必須採用動態方式來設計SSIS封裝。 動態封裝指的就是不用開啟或變更封裝內容,就能夠直接變更執行封裝要使用的設定值。 要達到這樣子的目的,除了原本就有的 Package Configuration 功能外, 在 SQL 2012 中也新引入了 Parameter 和 peoject-level Connection Manager 觀念來達到這樣子的效果。

下面幾個主題,都與動態封裝有關。

2014年1月3日 星期五

強化封裝

SSIS封裝除了可以用來執行資料轉移工作,它還包含許多其它有用的功能,可以用來強化整個封裝。例如:

  • 使用 error handle 來協助封裝測試與問題排除。
  • 使用 transaction 來達到封裝的交易能力。
  • 使用 checkkpoint 來接續封裝上次執行失敗的地方。
  • 利用 event-handling 來補捉各種不同的事件,如 OnWarning, OnError 。

2014年1月2日 星期四

Lab8:異動資料擷取

設計「異動資料擷取」時,通常會將封裝分成二部份:「初始載入」和「遞增載入」封裝。

初始載入」封裝通常只會執行一次, 它和一般的載入封裝沒什麼差別,只不過在 Control Flow 中的最開始和結尾處,各加入一個 CDC Control Task ,用以記錄相關 CDC 狀態。 而資料流程的內容則和一般的 ETL 流程沒什麼不同。

遞增載入」封裝,也是在 Control Flow 中的最開始和結尾處,各加入一個 CDC Control Task ,用以記錄相關 CDC 狀態。 不過,在資料流程中,必須透過 CDC Source 來讀取 CDC 資料, 並利用 CDC Splitter 將新增、修改、刪除的資料分割開來處理。