匯出至 Azure SQL Database
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
本文說明如何在機器學習 Studio (傳統) 的「匯出資料」模組中使用 [匯出至] Azure SQL Database選項。 當您想要將資料從機器學習實驗匯出至 Azure SQL Database 或 Azure SQL Data Warehouse 時,此選項非常有用。
匯出至 SQL 資料庫在許多機器學習案例中很有用:例如,您可能想要儲存中繼結果、儲存分數或保存設計功能的資料表。 雖然在 Azure SQL Database 或 Azure SQL Data Warehouse 中儲存資料的成本可能比在 Azure 中使用資料表或 blob 更昂貴,但 SQL 資料庫不會產生任何交易費用。 此外,資料庫儲存體非常適合用來快速撰寫較少量的常用資訊,以便在實驗之間共用資料,或是用於報告結果、預測和計量。
另一方面,您可以儲存在資料庫中的資料量可能會有限制,視您的訂用帳戶類型而定。 您也應該考慮使用與機器學習工作區位於相同區域的資料庫和帳戶。
若要匯出資料,請提供儲存資料所在的實例名稱和資料庫名稱,並使用具有寫入權限的帳戶來執行模組。 您也必須指定資料表名稱,並將實驗中的資料行對應至資料表中的資料行。
如何將資料匯出至 Azure SQL Database
在 Studio (傳統) 中,將「 匯出資料 」模組新增至您的實驗。 您可以在 [ 資料輸入] 和 [輸出 ] 分類中找到此模組。
連線將資料匯出至模組,以產生您要匯出的資料。
針對 [資料目的地],選取 [ Azure SQL Database]。 此選項也支援 Azure SQL Data Warehouse。
指出 Azure SQL Database 中的伺服器和資料庫名稱,或 Azure SQL Data Warehouse。
資料庫伺服器名稱:輸入 Azure 所產生的伺服器名稱。 其格式通常為
<generated_identifier>.database.windows.net
。資料庫名稱:在您剛剛指定的伺服器上輸入現有資料庫的名稱。 「 匯出資料 」模組無法建立資料庫。
伺服器使用者帳戶名稱:輸入具有資料庫存取權限之帳戶的使用者名稱。
伺服器使用者帳戶密碼:提供指定之使用者帳戶的密碼。
指定要匯出的資料行,以及是否要重新命名資料行。
要儲存的資料行清單(以逗號分隔):輸入您想要寫入資料庫之實驗中的資料行名稱。
資料表名稱:輸入用來儲存資料的資料表名稱。
針對 Azure SQL Database,如果資料表不存在,就會建立新的資料表。
針對 Azure SQL Data Warehouse,資料表必須已經存在且具有正確的架構,因此請務必事先建立。
Datatable 資料行的逗號分隔清單:輸入您想要在目的地資料表中顯示的資料行名稱。
針對 Azure SQL Database,您可以變更資料行名稱,但您必須將資料行的順序保持在您列出要匯出的資料行的相同順序中,並以逗號分隔的資料行清單儲存。
針對 Azure SQL Data Warehouse,資料行名稱必須與已經在目的地資料表架構中的名稱相符。
每個 SQL Azure 作業所寫入的資料列數目:此選項會指定要在每個批次中寫入目的地資料表的資料列數目。
根據預設,值會設定為50,這是 Azure SQL Database 的預設批次大小。 但是,如果您有大量的資料列要寫入,您應該增加這個值。
針對 Azure SQL Data Warehouse,建議您將此值設定為1。 如果您使用較大的批次大小,傳送至 Azure SQL Data Warehouse 的命令字串大小可能會超過允許的字串長度,而導致錯誤。
使用快取的結果:選取此選項可避免在每次執行實驗時寫入新的結果。 如果模組參數沒有其他變更,則實驗只會在第一次執行模組時寫入資料。 但是,如果 匯出資料 中有變更結果的任何參數,一律會執行新的寫入。
執行實驗。
範例
如需如何使用「 匯出資料 」模組的範例,請參閱 Azure AI 資源庫:
零售預測步驟1之 6-資料前置處理:零售預測範本會根據 Azure SQLDB 中儲存的資料來說明機器學習工作。 它會示範實用的技巧,例如使用 Azure SQL 資料庫在不同帳戶的實驗之間傳遞資料集、儲存和合併預測,以及如何建立僅供機器學習使用的 Azure SQL 資料庫。
使用 azure vm 上的 SQL Server 來建立和部署機器學習模型:本文將逐步引導您使用 azure vm 中裝載的 SQL Server 資料庫作為儲存定型資料和預測的來源。 它也會說明如何使用關係資料庫來進行特徵工程和特徵選取。
如何搭配使用 Azure ML 與 Azure SQL Data Warehouse:示範如何使用 Azure SQL Data Warehouse 中的資料來建立群集模型。
搭配使用機器學習與 SQL Data Warehouse:示範如何使用 Azure SQL Data Warehouse 中的資料來建立回歸模型來預測價格。
技術說明
本節包含實作詳細資料、提示和常見問題集的解答。
常見問題
在不同的地理區域中使用資料庫
如果 Azure SQL Database 或 SQL Data Warehouse 與機器學習服務帳戶位於不同的區域,寫入可能會較慢。
此外,如果計算節點與儲存體帳戶位於不同的區域,則會向您收取在訂用帳戶上的資料輸入和輸出費用。
為什麼輸出資料中的某些字元未正確顯示
機器學習支援 utf-8 編碼。 如果您資料庫中的字串資料行使用不同的編碼方式,則可能無法正確儲存字元。
此外,機器學習無法輸出資料類型(例如 money
)。
模組參數
名稱 | 範圍 | 類型 | 預設 | 描述 |
---|---|---|---|---|
資料來源 | List | 資料來源或接收 | Azure Blob 儲存體 | 資料來源可以是 HTTP、FTP、匿名 HTTPS 或 FTPS、azure BLOB 儲存體中的檔案、azure 資料表、Azure SQL Database 或 Azure SQL Data Warehouse、Hive 資料表或 OData 端點。 |
資料庫伺服器名稱 | 任意 | String | 無 | |
資料庫名稱 | 任意 | String | 無 | |
伺服器使用者帳戶名稱 | 任意 | String | 無 | |
伺服器使用者帳戶密碼 | 無 | |||
要儲存之資料行的逗號分隔清單 | 無 | |||
資料表名稱 | 任意 | String | 無 | |
Datatable 資料行的逗號分隔清單 | String | String | 無 | String |
每個 SQL Azure 作業寫入的資料列數目 | String | 整數 | 50 | String |
使用快取的結果 | TRUE/FALSE | Boolean | FALSE | 只有在有效的快取不存在時才會執行模組;否則,請使用先前執行的快取資料。 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0027 | 當兩個物件的大小必須相同但卻不同時,就會發生例外狀況。 |
錯誤 0003 | 如果一或多個輸入是 Null 或空白,就會發生例外狀況。 |
錯誤 0029 | 傳遞無效的 URI 時,就會發生例外狀況。 |
錯誤 0030 | 無法下載檔案時,就會發生例外狀況。 |
錯誤 0002 | 如果有一或多個參數無法剖析或從指定的類型轉換成目標方法所需的類型,就會發生例外狀況。 |
錯誤 0009 | 如果指定的 Azure 儲存體帳戶名稱或容器名稱不正確,就會發生例外狀況。 |
錯誤 0048 | 無法開啟檔案時,就會發生例外狀況。 |
錯誤 0015 | 如果資料庫連線失敗,就會發生例外狀況。 |
錯誤 0046 | 無法在指定的路徑上建立目錄時,就會發生例外狀況。 |
錯誤 0049 | 無法剖析檔案時,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。