使用 Azure Data Factory 或 Synapse Analytics 從 ODBC 資料存放區複製資料或將資料複製到該處
適用於:Azure Data Factory Azure Synapse Analytics
提示
試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告的所有項目。 了解如何免費啟動新的試用版!
本文概述如何使用 Azure Data Factory 中的「複製活動」,從 ODBC 資料存放區複製資料及將資料複製到該處。 本文是根據複製活動概觀一文,該文提供複製活動的一般概觀。
支援的功能
下列功能支援此 ODBC 連接器:
支援的功能 | IR |
---|---|
複製活動 (來源/接收) | 5 |
查閱活動 | 5 |
① Azure 整合執行階段 ② 自我裝載整合執行階段
如需支援做為來源/接收器的資料存放區清單,請參閱支援的資料存放區表格。
具體而言,這個 ODBC 連接器支援使用 Basic (基本) 或 Anonymous (匿名) 驗證,從任何 ODBC 相容的資料存放區複製資料或將資料複製到該處。 需要 64 位元 ODBC 驅動程式。 針對 ODBC 接收,服務支援 ODBC 2.0 版標準。
必要條件
若要使用這個 ODBC 連接器,您必須:
- 設定一個「自我裝載 Integration Runtime」。 如需詳細資料,請參閱自我裝載 Integration Runtime 一文。
- 安裝 Integration Runtime 機器上安裝資料存放區的 64 位元 ODBC 驅動程式。
開始使用
若要透過管線執行複製活動,您可以使用下列其中一個工具或 SDK:
使用 UI 建立 ODBC 資料存放區的連結服務
使用下列步驟,在 Azure 入口網站 UI 中建立 ODBC 資料存放區的連結服務。
前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:
搜尋 ODBC 並選取 ODBC 連接器。
設定服務詳細資料,測試連線,然後建立新的連結服務。
連接器設定詳細資料
下列各節提供屬性的相關詳細資料,這些屬性是用來定義 ODBC 連接器專屬的 Data Factory 實體。
連結服務屬性
以下是針對 ODBC 已連結服務支援的屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 類型屬性必須設定為:Odbc | Yes |
connectionString | 不包含認證部分的連接字串。 您可以用 Driver={SQL Server};Server=Server.database.windows.net; Database=TestDatabase; 模式指定連接字串,或使用您在 Integration Runtime 電腦上以 DSN=<name of the DSN on IR machine>; 設定的系統 DSN (資料來源名稱) (仍需要據此指定連結的服務中的認證部分)。您也可以將密碼放在 Azure Key Vault 中,並從連接字串中提取 password 設定。 如需詳細資訊,請參閱在 Azure Key Vault 中儲存認證。 |
Yes |
authenticationType | 用來連接到 ODBC 資料存放區的驗證類型。 允許的值為:Basic (基本) 和 Anonymous (匿名)。 |
Yes |
userName | 如果您要使用 Basic 驗證,請指定使用者名稱。 | No |
password | 指定您為 userName 指定之使用者帳戶的密碼。 將此欄位標記為 SecureString 以便安全儲存,或參考 Azure Key Vault 中儲存的祕密。 | No |
認證 (credential) | 以驅動程式特定「屬性-值」格式指定之連接字串的存取認證部分。 範例:"RefreshToken=<secret refresh token>;" 。 請將此欄位標示為 SecureString。 |
No |
connectVia | 用於連線到資料存放區的 Integration Runtime。 如必要條件所述,必須要有一個「自我裝載 Integration Runtime」。 | Yes |
範例 1:使用 Basic (基本) 驗證
{
"name": "ODBCLinkedService",
"properties": {
"type": "Odbc",
"typeProperties": {
"connectionString": "<connection string>",
"authenticationType": "Basic",
"userName": "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
範例 2:使用 Anonymous (匿名) 驗證
{
"name": "ODBCLinkedService",
"properties": {
"type": "Odbc",
"typeProperties": {
"connectionString": "<connection string>",
"authenticationType": "Anonymous",
"credential": {
"type": "SecureString",
"value": "RefreshToken=<secret refresh token>;"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
資料集屬性
如需可用來定義資料集的區段和屬性完整清單,請參閱資料集一文。 本節提供 ODBC 資料集所支援的屬性清單。
若要從 ODBC 相容的資料存放區複製資料或將資料複製到該處,以下是支援的屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 資料集的 type 屬性必須設定為:OdbcTable | Yes |
tableName | ODBC 資料存放區中資料表的名稱。 | 就來源而言為非必要 (如果已指定活動來源中的「查詢」); 就接收器而言為必要 |
範例
{
"name": "ODBCDataset",
"properties": {
"type": "OdbcTable",
"schema": [],
"linkedServiceName": {
"referenceName": "<ODBC linked service name>",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "<table name>"
}
}
}
如果您使用 RelationalTable
具型別資料集,雖然仍照現狀支援,但建議您往後使用新的版本。
複製活動屬性
如需可用來定義活動的區段和屬性完整清單,請參閱管線一文。 本節提供 ODBC 來源所支援的屬性清單。
ODBC 作為來源
若要從 ODBC 的相容資料存放區複製資料,複製活動「來源」區段中支援下列屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 複製活動來源的 type 屬性必須設定為:OdbcSource | Yes |
query | 使用自訂 SQL 查詢來讀取資料。 例如: "SELECT * FROM MyTable" 。 |
否 (如果已指定資料集中的 "tableName") |
範例:
"activities":[
{
"name": "CopyFromODBC",
"type": "Copy",
"inputs": [
{
"referenceName": "<ODBC input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "OdbcSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
如果您使用 RelationalSource
具型別來源,雖然仍照現狀支援,但建議您往後使用新的版本。
ODBC 作為接收器
若要將資料複製到 ODBC 相容的資料存放區,請將複製活動中的接收器類型設定為 OdbcSink。 複製活動的 sink 區段支援下列屬性:
屬性 | 描述 | 必要 |
---|---|---|
type | 複製活動接收器的類型屬性必須設定為:OdbcSink | Yes |
writeBatchTimeout | 在逾時前等待批次插入作業完成的時間。 允許的值為:時間範圍。 範例:"00:30:00" (30 分鐘)。 |
No |
writeBatchSize | 當緩衝區大小達到 writeBatchSize 時,將資料插入 SQL 資料表中 允許的值為:整數 (資料列數目)。 |
No (預設值為 0 - 自動偵測) |
preCopyScript | 指定一個供「複製活動」在每次執行時將資料寫入到資料存放區前執行的 SQL 查詢。 您可以使用此屬性來清除預先載入的資料。 | No |
注意
針對 "writeBatchSize",如果未設定 (自動偵測),複製活動會先偵測驅動程式是否支援批次作業,如果支援,就將其設定為 10000,如果不支援,則將其設定為 1。 如果您將此值明確設定為 0 以外的值,複製作業會採用該值,並於驅動程式不支援批次作業時,在執行階段發生失敗。
範例:
"activities":[
{
"name": "CopyToODBC",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<ODBC output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "OdbcSink",
"writeBatchSize": 100000
}
}
}
]
查閱活動屬性
若要了解屬性的詳細資料,請參閱查閱活動。
針對連線能力問題進行疑難排解
若要針對連線問題進行疑難排解,請使用 [整合執行階段組態管理員] 的 [診斷] 索引標籤。
- 啟動 [整合執行階段組態管理員]。
- 切換至 [診斷] 索引標籤。
- 在 [測試連線] 區段底下,選取資料存放區的 [類型] (已連結的服務)。
- 指定用來連線到資料存放區的 [連接字串],選擇 [驗證],然後輸入 [使用者名稱]、[密碼] 和/或 [認證]。
- 按一下 [測試連線] 以測試資料存放區連線。
相關內容
如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區。