Azure 教學

Azure 影像識別 (1)

教學目標

初步了解透過 Azure 雲端服務進行自訂視覺服務的基本概念。

重點概念

首先微軟推出自訂視覺的服務,其主要是一個 Microsoft 認知服務,能夠讓我們可讓您輕鬆快速地建置、部署及改善影像分類器,同時自訂視覺服務提供了 REST API 和 Web 介面供您上傳影像和訓練分類器。

接著我們要如何開始使用呢?一開始我們需要先登入至自訂視覺的服務官方網站,透過試用帳號將能夠免費建立二個專案,每專案 5,000 個訓練影像,以及使用 10,000 次預測影像 API ,但若是我們訓練影像超過 5,000 個或預測影像超過 10,000 次時,則建議使用付費專案

再來我們透過自訂視覺的服務操作主要有四個步驟,分別為:

  1. 上傳影像:上傳我們加上標籤的影像,或者上傳之後快速為無標籤的影像加上標籤。
  2. 訓練:使用我們加上標籤的影像,讓自訂視覺的服務學習我們想要的概念。
  3. 評估:使用簡單的 API 呼叫快速標記新的自訂電腦辨識模型中之影像,或者匯出自訂視覺模型,以利即時理解影像。
  4. 主動式學習:透過我們自訂視覺模型評估的影像會成為持續改進迴圈的一部分,以利我們用於持續改進分類器。

最後我們更能夠透過 Python 使用自訂視覺的服務 API 進行圖片的識別應用,請參考以下程式碼,我們實際上傳二萬張圖片進行另外二萬張圖片的分類預測,很可惜準確率僅能夠達到 80% ~ 90%,但是金額卻高達 1,000 元台幣,還好是試用期有 6,100 元台幣額度,若真的要實務應用可能還是自己建立影像識別模型比較適合吧!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from azure.cognitiveservices.vision.customvision.prediction import prediction_endpoint
from azure.cognitiveservices.vision.customvision.prediction.prediction_endpoint import models
training_key = "Training Key"
prediction_key = "Prediction Key"
project_id = "Project ID"
iteration_id = "Iteration ID"
predictor = prediction_endpoint.PredictionEndpoint(prediction_key)
predict_result = []
for n in range(0,10):
test_img_url = "需要進行進行預測的圖片網址"
results = predictor.predict_image_url(project_id, iteration_id, url=test_img_url)
max = 0
tag = ""
for prediction in results.predictions:
if prediction.probability>max:
max = prediction.probability
tag = prediction.tag_name
print(n)
predict_result.append([str(n),tag])
import pandas as pd
df = pd.DataFrame(predict_result)
df.to_csv("輸出預測結果的檔案路徑")
print("done")

相關資源

Azure 資料管理 (3)

教學目標

初步了解 Azure 雲端服務進行巨量資料批次處理與即時處理的基本概念。

重點概念

首先在 Hadoop 平台中我們會透過許多專案的組合解決資料管理的相關問題,主要可以先分為四大類,分別為:

  1. 資料治理和整合:主要是進行資料工作流程、生命週期和治理,其中相關專案主要有 Sqoop、Falcon、Flume、… 等。
  2. 資料存取:主要是在 YARN 和 HDFS 上進行批次、腳本、SQL、NoSQL、串流、搜尋、記憶體運算與資料管理相關的作業,其中相關專案主要有 MapReduce、Pig、Hive、Tez、Hcatalog、Hbase、Storm、Solr、Spark、…等。
  3. 資料安全:主要是針對資料安全進行驗證、授權、帳號控管、資料保護、…等相關作業,其中相關專案主要有 HDFS、YARN、HIVE、FALCON、KNOX、…等。
  4. 資料營運:主要是針對資料營運進行監控和排程,其中相關專案主要有 Ambari、Zookeeper、Oozie、… 等。

因此我們能夠透過資料服務進行資料操作和資料移動,主要透過 Hive、Pig、Sqoop、Hbase、… 等,以及我們還能夠透過營運服務協助管理叢集,像是 Ambari、Oozie、Falcon、… 等。

接著在 Azure 雲端服務中我們除了能夠透過虛擬機器客製 Hadoop 平台進行資料管理之外,更能夠直接使用 Azure HDInsight 服務進行資料管理,所謂 Azure HDInsight 服務主要是用於分析串流或歷史資料的雲端服務,主要提供企業使用完全受控、全方位的開放原始碼分析服務,以利我們更方便的處理巨量資料,並且為企業節省成本,並且支援 ETL、資料倉儲、機器學習、IoT、… 等相關應用。

再來我們也會透過 Azure SQL 資料倉儲服務建立企業資料倉儲、並且透過 PolyBase 整合 Azure SQL 資料倉儲服務和 Azure HDInsight 服務。同時我們能夠透過 Azure Data Lake 服務批次處理非結構化資料並以 PolyBase 進行整合,以及我們能夠透過 Azure Stream Analytics 服務進行即時處理串流資料並以 PolyBase 進行整合。

最後我們還能透過 Azure Data Factory 服務將內部部署和雲端資料應用程式進行資料整合,主要有三個步驟,分別為:

  1. 透過內建的連接器存取資料。
  2. 透過使用者介面建立調整資料流程。
  3. 透過排程進行管線控管和監控活動。

總結根據不同的企業需求,將能夠搭配不同的 Azure 雲端服務,以利更有效率的進行資料管理,更進一步解決企業所面臨的成本問題,或者為企業帶來更多的效益。

相關資源

Azure 資料管理 (2)

教學目標

初步了解 Data Management Gateway 雲端服務建立資料管理閘道的基本概念。

重點概念

首先資料管理閘道主要是一個客戶端代理程式,我們必須在內部部署環境中安裝代理程式,才能夠在內部環境和雲端環境之間複製資料。其中資料管理閘道皆符合加密需求、防火牆需求和傳輸安全性需求,在資料管理閘道中可以加密憑證,並且其中一個主要優勢為不需要針對防火牆進行任何變更,只需要 HTTP 通訊協定,就能夠讓任何使用網際網路公司使用。此外資料管理閘道不必安裝在每個資料伺服器上,建議是將資料閘道安裝至不同處理器上,以利根據需求新增資料,並且提升資料複製的速度。

接著若我們需要實作管線,以利進行資料傳輸,此時則會需要先在 Azure Data Factory 中建立新閘道,設定允許混合通訊的代理程式,並且安裝已撰寫至內部環境的閘道,以利從該內部環境存取資料,同時我們會在資料管理閘道設定中更新憑證,以利透過此閘道進行安全連線,以及應該為輸入和輸出資料集建立連結的服務,以利透過複製活動建立管理活動所使用連結服務的輸入及輸出之資料設定。

再來當我們透過資料管理閘道進行每日整合時,若要符合最佳化需求,則建議在專屬處理器上安裝每個資料管理閘道,並且在專屬處理器上安裝每個資料管理閘道,因為在專屬處理器上安裝每個資料管理主控台將會縮短複製的時間。此外在同一個資料中心中安裝每個資料管理閘道執行個體,以利作為資料來源,並且依照地理位置將資料管理處理站放置在鄰近來源資料的位置,以及視需要為每個資料來源指定多個資料管理閘道,將會縮短複製的時間。

最後我們不應該將資料管理閘道安裝在處理器叢集上,因為不支援此設定,並且不應該將所有資料管理閘道執行個體整合至單一資料中心,因為每個資料管理閘道安裝到盡可能接近處理的資料來源,以及將所有資料庫伺服器整合至單一資料中心,因為將會中繼公司的企業營運作業,因此將會需要在移轉時間內進行停機。

總結透過 Data Management Gateway 雲端服務將能夠安全的管理內部部署資料來源的存取權,以及有效率地移動資料,資料主要會以平行的方式進行傳輸,同時系統將會自動重試與修復網路問題。

相關資源

Azure 資料管理 (1)

教學目標

初步了解 Azure Data Factory 雲端服務建立資料驅動工作流程的基本概念。

重點概念

在巨量資料的現今,我們要如何將現有的資料運用在商業經營上呢?此時我們主要會透過 Azure Data Factory 雲端資料整合服務,能夠讓我們在雲端建立資料驅動的工作流程,以利自動進行資料移動和轉換,主要有三個步驟,分別為:

  1. 連線和收集:主要建立並排程資料驅動的工作流程,又稱為管線,其能夠從不同的資料存放區擷取資料。
  2. 轉換和擴充:主要使用運算服務來處理或轉換資料。
  3. 發佈:主要是將輸出的資料發佈至資料儲存區,以利商業智慧應用程式使用。

首先我們必須先收集原始資料,因巨量資料專案通常會從各種來源收集原始資料。除了收集原始資料之外,我們通常也會參考內部資料,以利進行資料分析。

接著我們必須轉換原始資料,這通常會使用工具進行分析和分類資料,以利進行整理和簡化處理作業,並且會根據資料量將之分為能與多個處理器一起分析的不同區塊。像是我們能夠透過 Azure HDInsight (Hadoop) 處理巨量資料

再來當轉換資料之後,必須將準備分析的處理資料形式儲存至其它位置,像是將資料儲存在 Azure SQL 資料倉儲或 Azure SQL 伺服器中。當儲存資料完成之後,我們就能夠進行查詢和分析,其中 SQL 主要是用於分析資料的命令查詢語言。

最後我們更能夠建立工作流程的平台,以利工作流程能夠從內部環境和雲端環境擷取資料,並且搭配現有運算服務來轉換或處理資料,以及將結果發佈至內部環境或雲端環境,以利透過 Power BI 視覺化資料,也就是將資料分析轉化為實用且易讀的視覺化圖表。

總結 Azure Data Factory 雲端資料整合服務和傳統的 ETL 平台有些不同,比較像先 EL 而後 TL 的平台,以利我們透過資料驅動的工作流程 (管理) 將資料運用在商業經營上。

相關資源

Azure SQL 實作筆記 (1)

教學目標

初步了解如何透過 Microsoft Azure 雲端服務建立 Windows SQL Server 2016 虛擬機器,接著進行安裝系統需求規格的確認,以利後續系統順利進行安裝。

重點概念

目前許多產業伺服器主要還是以 SQL Server 2008、SQL Server 2012/2014 資料庫伺服器為主,然而 SQL 伺服器下一個版本則是 SQL Server 2016,針對系統安裝的前置作業,試著透過 Azure 雲端服務摸擬類似的 SQL Server 2016 環境進行學習。

主要針對下述主題進行教學:

  1. 建立虛擬機器。
  2. 開啟虛擬機器。
  3. 連線資料庫伺服器
  4. 確認資料庫伺服器基本資訊。
  5. 建立資料庫。
  6. 建立資料表。
  7. 設定 ODBC 連線。

建立虛擬機器

開啟 Azure Portal 在左下方點選「虛擬機器」鈕,接著按下右上方的「新增」鈕。

選擇「SQL Server 2016 SP1 Enterprise on Windows Server 2016」的映像檔,接著按下「建立」鈕。

建立虛擬機器主要有五個步驟進行設定,分別為基本設定、選擇虛擬機器大小、設定選擇性功能、SQL Server 設定和摘要確認。

首先基本設定中需要我們進行手動設定主要五項,分別為:

  1. 名稱。
  2. 使用者名稱。
  3. 密碼。
  4. 確認密碼。
  5. 資源群組。

確認內容無誤之後,按下「確定」鈕。

選擇虛擬機器的大小,這會影響價格,請先點選「檢視全部」,接著選擇「DS1_V2 標準」,按下「選取」鈕。

設定選擇性功能,確認網路資訊之後,按下「確定」鈕。

確認 SQL 設定資訊無誤之後,按下「確定」鈕。

確認摘要資訊無誤之後,按下「確定」鈕。

虛擬機器開始建立中。

開啟虛擬機器

按下左上方的「連接」鈕,下載連線檔案。

開啟連線檔案,輸入使用者帳號密碼,按下「OK」鈕。

驗證憑證,按下「Continue」鈕。

連線資料庫伺服器

按下左下方的「開始」鈕,接著點選「Microsoft SQL Server 2016」中的「Microsoft SQL Server Management Studio」選項。

按下「Connect」鈕,進行 Windows 驗證登入。

確認資料庫伺服器基本資訊

點選最上層資料庫,接著按右鍵點選「Properties」選項。

確認「Server Collation」是否正確,確認無誤之後按下「OK」鈕。

建立資料庫

在「Databases」上按右鍵點選「New Database…」選項。

輸入「Database name」的資訊,接著按下「OK」鈕。

建立資料表

在「Tables」上按右鍵點選「New」,接著點選「Table…」選項。

建立資料表中的欄位名稱、資料類型和允許空值等資訊,確認無誤之後,按下「Save」鈕。

輸入資料表名稱。

在「Tables」上按右鍵點選「Refresh」。

在「dbo.user」的資料表上按右鍵點選「Select Top 1000 Rows」選項。

此時會查詢出 dbo.user 資料表的內容結果,理應沒有任何資料。

設定 ODBC 連線

按下左下方的「開始」鈕,接著點選「Windows Administrative Tools」中的「ODBC Data Sources (64-bit)」選項。

點選「System DSN」,按下「Add…」鈕。

點選「ODBC Driver 13 for SQL Server」的選項。

輸入「Name」、「Description」和「Server」等資訊。

按下「Next」鈕,以 Windows 整合驗證為主。

按下「Next」鈕。

按下「Finish」鈕。

按下「Test Data Source…」鈕,進行 ODBC 連線測試。

測試 ODBC 連線成功,按下「OK」鈕。

確認 ODBC 連線設定,確認無誤之後,按下「OK」鈕。

相關資源