分享方式:


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

適用於:Azure Data Factory Azure Synapse Analytics

提示

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

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

支援的功能

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

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

① 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 資料存放區的連結服務。

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

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

    ODBC 連接器的螢幕擷取畫面。

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

    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
            }
        }
    }
]

查閱活動屬性

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

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

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

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

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