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 的平台,以利我們透過資料驅動的工作流程 (管理) 將資料運用在商業經營上。

相關資源

雲端服務 AWS vs Azure (1)

教學目標

初步了解分析與大數據之應用對應的雲端服務。

重點概念

首先目前許多企業已經開始採用雲端服務,像是 AWS 雲端服務或 Azure 雲端服務,然而不同雲端服務將會不同的服務進行分析和大數據之應用。

接著根據 Azure 官方文件,我們可以了解分析和大數據之應用的雲端服務主要可以分為八大範圍,不同範圍皆有對應的雲端服務,請參考下表。

範圍 AWS 服務 Azure 服務
資料倉儲 Redshift SQL Data Warehouse
資料處理 Elastic MapReduce (EMR) HDInsight
資料整合 Data Pipeline Data Factory
資料分析 Kinesis Analytics Stream Analytics、Data Lake Analytics、Data Lake Store
資料視覺化 QuickSight PowerBI
資料搜尋 Elasticsearch Service、Cloud Search Marketplace-Elasticsearch、Azure Search
機器學習 Machine Learning Machine Learning
資料探索 Amazon Athena Data Catalog

再來為了完成分析和大數據之應用,僅僅靠上述範圍所對應的雲端服務是非常不足夠,此時我們還會針對不同的功能採用適當的雲端服務,根據 Azure 官方文件主要有十三大功能類別,分別為:

  1. 市集
  2. 計算
  3. 儲存
  4. 網路和內容交付
  5. 資料庫
  6. 分析和大數據
  7. 智慧
  8. 物聯網
  9. 管理和監控
  10. 行動服務
  11. 安裝、識別和存取
  12. 開發工具
  13. 企業整合

最後我們針對不同分析和大數據之應用範圍採用對應的雲端服務,同時針對不同功能類別採用適當的雲端服務之外,理應就能夠滿足大部分企業分析與大數據之應用的需求。

總結未來將會是雲端的時代,資訊人員將要學習如何針對企業的需求評估最適當的雲端服務之解決方案,同時許多內部系統之解決方案是否能夠移至雲端進行管理將會是未來的一大挑戰,若是順利移轉成功,將能夠有效為企業節省許多伺服器維護的人力成本,資訊人員將有更多機會透過雲端服務整合應用解決企業所面臨的問題與痛點。

相關資源