使用 Azure Data Factory 或 Synapse Analytics 从 HBase 复制数据

适用于: Azure Data Factory Azure Synapse Analytics

重要

此连接器位于 支持阶段的末尾。 建议通过安装驱动程序迁移到 ODBC 连接器 。

本文概述了如何使用 Azure Data Factory 或 Synapse Analytics 管道中的复制活动从 HBase 复制数据。 它基于 复制活动概述 文章构建,本文概述了复制活动。

支持的功能

以下功能支持此 HBase 连接器:

支持的功能 IR
复制操作 (source/-) ①
查找活动 ①

(1) Azure集成运行时 (2) 自承载集成运行时

有关复制活动支持作为源/接收器的数据存储的列表,请参阅 支持的数据存储 表。

该服务提供内置的驱动程序用于启用连接,因此使用此连接器无需手动安装任何驱动程序。

先决条件

如果数据存储是托管的云数据服务,则可以使用Azure Integration Runtime。 如果访问仅限于防火墙规则中批准的 IP,则可以将 Azure Integration Runtime IP 添加到允许列表。

还可以在 Azure Data Factory 中使用 托管虚拟网络集成运行时功能访问本地网络,而无需安装和配置自承载集成运行时。

有关数据工厂支持的网络安全机制和选项的详细信息,请参阅 数据访问策略。

入门

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建到 HBase 的链接服务

使用以下步骤在 Azure 门户 UI 中创建指向 HBase 的链接服务。

  1. 浏览到Azure Data Factory或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:

  2. 搜索 HBase 并选择 HBase 连接器。

    HBase 连接器的屏幕截图。

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    HBase 的链接服务配置的屏幕截图。

连接器配置详细信息

对于特定于 HBase 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。

关联服务属性

HBase 链接服务支持以下属性:

属性 描述 必需
类型 type 属性必须设置为: HBase 是
主持人 HBase 服务器的 IP 地址或主机名。 (即 [clustername].azurehdinsight.cn、192.168.222.160) 是
移植 HBase 实例用来侦听客户端连接的 TCP 端口。 默认值为 9090。 如果连接到 Azure HDInsights,请将端口指定为 443。 否
httpPath 与 HBase 服务器对应的部分 URL,例如使用 HDInsights 群集时的 /hbaserest0。 否
验证类型 用于连接到 HBase 服务器的身份验证机制。
允许的值为: Anonymous、 Basic
是
用户名 用于连接到 HBase 实例的用户名。 否
密码 用户名所对应的密码。 将此字段标记为 SecureString 以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 否
启用SSL 指定是否使用 TLS 加密到服务器的连接。 默认值为 false。 否
信任证书路径 (trustedCertPath) 包含受信任 CA 证书(通过 TLS 进行连接时用来验证服务器)的 .pem 文件的完整路径。 只有在自承载 IR 上使用 TLS 时才能设置此属性。 默认值是随 IR 一起安装的 cacerts.pem 文件。 否
allowHostNameCNMismatch 指定通过 TLS 进行连接时是否要求 CA 颁发的 TLS/SSL 证书名称与服务器的主机名相匹配。 默认值为 false。 否
allowSelfSignedServerCert 指定是否允许来自服务器的自签名证书。 默认值为 false。 否
connectVia 连接到数据存储时要使用的Integration Runtime。 从 “先决条件 ”部分了解详细信息。 只能使用Azure Integration Runtime。 否

注意

如果群集不支持 HDInsight 等粘性会话,请在 http 路径设置的末尾显式添加节点索引,例如,指定 /hbaserest0 而不是 /hbaserest。

HDInsights HBase 的示例:

{
    "name": "HBaseLinkedService",
    "properties": {
        "type": "HBase",
        "typeProperties": {
            "host" : "<cluster name>.azurehdinsight.cn",
            "port" : "443",
            "httpPath" : "/hbaserest0",
            "authenticationType" : "Basic",
            "username" : "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "enableSsl" : true
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

泛型 HBase 的示例:

{
    "name": "HBaseLinkedService",
    "properties": {
        "type": "HBase",
        "typeProperties": {
            "host" : "<host e.g. 192.168.222.160>",
            "port" : "<port>",
            "httpPath" : "<e.g. /gateway/sandbox/hbase/version>",
            "authenticationType" : "Basic",
            "username" : "<username>",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            },
            "enableSsl" : true,
            "trustedCertPath" : "<trustedCertPath>",
            "allowHostNameCNMismatch" : true,
            "allowSelfSignedServerCert" : true
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

数据集属性

有关可用于定义数据集的部分和属性的完整列表,请参阅 数据集 文章。 本部分提供 HBase 数据集支持的属性列表。

要从 HBase 复制数据,请将数据集的 type 属性设置为“HBaseObject”。 支持以下属性:

属性 描述 必需
类型 数据集的 type 属性必须设置为: HBaseObject 是
表名称 表的名称。 否(如果在活动源中指定了"query")

例

{
    "name": "HBaseDataset",
    "properties": {
        "type": "HBaseObject",
        "typeProperties": {},
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<HBase linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

复制活动 属性

有关可用于定义活动的节和属性的完整列表,请参阅 Pipelines 文章。 本部分提供 HBase 数据源支持的属性列表。

以 HBaseSource 作为源

要从 HBase 复制数据,请将复制活动中的源类型设置为“HBaseSource”。 复制活动 源 部分支持以下属性:

属性 描述 必需
类型 复制活动源的 type 属性必须设置为: HBaseSource 是
查询 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM MyTable"。 否(如果数据集中指定了“tableName”)

例:

"activities":[
    {
        "name": "CopyFromHBase",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<HBase input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "HBaseSource",
                "query": "SELECT * FROM MyTable"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

查找活动属性

若要了解有关属性的详细信息,请查看查找活动。

有关复制活动支持的作为源和接收器的数据存储的列表,请参阅 支持的数据存储。