使用 Azure Data Factory 或 Synapse Analytics 從 ODBC 資料存放區複製資料或將資料複製到該處

適用於:Azure Data Factory Azure Synapse Analytics

提示

試用 Microsoft Fabric 中的 Data Factory,這是適用於企業的全方位分析解決方案。 Microsoft Fabric 涵蓋從資料移動到資料科學、即時分析、商業智慧和報告等所有項目。 了解如何免費啟動新的試用版

本文概述如何使用 Azure Data Factory 中的「複製活動」,從 ODBC 資料存放區複製資料及將資料複製到該處。 本文是根據複製活動概觀一文,該文提供複製活動的一般概觀。

支援的功能

下列功能支援此 ODBC 連接器:

支援的功能 IR
複製活動 (來源/接收)
查閱活動

① 整合執行階段 ② 自我裝載整合執行階段

如需支援做為來源/接收器的資料存放區清單,請參閱支援的資料存放區表格。

具體而言,這個 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 資料存放區的連結服務。

  1. 前往 Azure Data Factory 或 Synapse 工作區的 [管理] 索引標籤,選取 [連結服務],然後按一下 [新增]:

  2. 搜尋 ODBC 並選取 ODBC 連接器。

    Screenshot of the ODBC connector.

  3. 設定服務詳細資料,測試連線,然後建立新的連結服務。

    Screenshot of linked service configuration for an ODBC data store.

連接器設定詳細資料

下列各節提供屬性的相關詳細資料,這些屬性是用來定義 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
            }
        }
    }
]

查閱活動屬性

若要了解屬性的詳細資料,請參閱查閱活動

針對連線能力問題進行疑難排解

若要針對連線問題進行疑難排解,請使用 [整合執行階段組態管理員] 的 [診斷] 索引標籤。

  1. 啟動 [整合執行階段組態管理員]
  2. 切換至 [診斷] 索引標籤。
  3. 在 [測試連線] 區段底下,選取資料存放區的 [類型] (已連結的服務)。
  4. 指定用來連線到資料存放區的 [連接字串],選擇 [驗證],然後輸入 [使用者名稱]、[密碼] 和/或 [認證]
  5. 按一下 [測試連線] 以測試資料存放區連線。

如需複製活動支援作為來源和接收器的資料存放區清單,請參閱支援的資料存放區