适用于:Azure 数据工厂
Azure Synapse Analytics
本文概述如何使用 Azure 数据工厂或 Synapse Analytics 管道中的复制活动从 Presto 复制数据。 它是基于概述复制活动总体的复制活动概述一文。
支持的功能
此 Presto 连接器支持以下功能:
支持的功能 | 红外线 |
---|---|
复制活动(源/-) | (1) (2) |
Lookup 活动 | (1) (2) |
① Azure 集成运行时 ② 自承载集成运行时
有关复制活动支持作为源/接收器的数据存储列表,请参阅支持的数据存储表。
该服务提供内置的驱动程序用于启用连接,因此使用此连接器无需手动安装任何驱动程序。
入门
若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:
使用 UI 创建一个到 Presto 的链接服务
使用以下步骤在 Azure 门户 UI 中创建一个到 Presto 的链接服务。
浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡并选择“链接服务”,然后单击“新建”:
搜索 Presto 并选择 Presto 连接器。
配置服务详细信息、测试连接并创建新的链接服务。
连接器配置详细信息
对于特定于 Presto 连接器的数据工厂实体,以下部分提供有关用于定义这些实体的属性的详细信息。
链接服务属性
Presto 连接器现在支持版本 2.0。 请参阅本部分,从版本 1.0 升级 Presto 连接器版本。 关于属性详情,请参阅对应部分。
版本 2.0
应用版本 2.0 时,Presto 链接服务支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
类型 | type 属性必须设置为:Presto | 是 |
版本 | 指定的版本。 该值为 2.0 。 |
是 |
主机 | Presto 服务器的 IP 地址或主机名。 (例如 192.168.222.160) | 是 |
目录 | 针对服务器的所有请求的目录上下文。 | 是 |
港口 | Presto 服务器用来侦听客户端连接的 TCP 端口。 默认值为 8443。 | 否 |
验证类型 | 用于连接到 Presto 服务器的身份验证机制。 允许值包括:匿名、LDAP |
是 |
用户名 | 用于连接到 Presto 服务器的用户名。 | 否 |
密码 | 用户名所对应的密码。 将此字段标记为 SecureString 以安全地存储它,或引用 Azure Key Vault 中存储的机密。 | 否 |
启用SSL | 指定是否使用 TLS 加密到服务器的连接。 默认值为真。 | 否 |
启用服务器证书验证 | 指定连接时是否启用服务器 SSL 证书验证。 始终使用系统信任存储。 默认值为真。 |
否 |
timeZoneID | 连接使用的本地时区。 IANA 时区数据库中指定了此选项的有效值。 默认值为 Presto 系统时区。 | 否 |
示例:
{
"name": "PrestoLinkedService",
"properties": {
"type": "Presto",
"version" : "2.0",
"typeProperties": {
"host" : "<host>",
"catalog" : "<catalog>",
"port" : 8443,
"authenticationType" : "LDAP",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"enableSsl": true,
"enableServerCertificateValidation": true,
"timeZoneID" : ""
}
}
}
版本 1.0
应用版本 1.0 时,Presto 链接服务支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
类型 | type 属性必须设置为:Presto | 是 |
主机 | Presto 服务器的 IP 地址或主机名。 (例如 192.168.222.160) | 是 |
服务器版本 | Presto 服务器的版本。 (例如 0.148-t) | 是 |
目录 | 针对服务器的所有请求的目录上下文。 | 是 |
港口 | Presto 服务器用来侦听客户端连接的 TCP 端口。 默认值为 8080。 | 否 |
验证类型 | 用于连接到 Presto 服务器的身份验证机制。 允许值包括:匿名、LDAP |
是 |
用户名 | 用于连接到 Presto 服务器的用户名。 | 否 |
密码 | 用户名所对应的密码。 将此字段标记为 SecureString 以安全地存储它,或引用 Azure Key Vault 中存储的机密。 | 否 |
启用SSL | 指定是否使用 TLS 加密到服务器的连接。 默认值为 false。 | 否 |
信任证书路径 (trustedCertPath) | 包含受信任 CA 证书(通过 TLS 进行连接时用来验证服务器)的 .pem 文件的完整路径。 只有在自承载 IR 上使用 TLS 时才能设置此属性。 默认值是随 IR 一起安装的 cacerts.pem 文件。 | 否 |
useSystemTrustStore | 指定是使用系统信任存储中的 CA 证书还是使用指定 PEM 文件中的 CA 证书。 默认值为 false。 | 否 |
允许主机名CN不匹配 | 指定通过 TLS 进行连接时是否要求 CA 颁发的 TLS/SSL 证书名称与服务器的主机名相匹配。 默认值为 false。 | 否 |
允许自签名服务器证书 | 指定是否允许来自服务器的自签名证书。 默认值为 false。 | 否 |
时区 ID | 连接使用的本地时区。 IANA 时区数据库中指定了此选项的有效值。 默认值为 Azure 数据工厂时区。 | 否 |
示例:
{
"name": "PrestoLinkedService",
"properties": {
"type": "Presto",
"typeProperties": {
"host" : "<host>",
"serverVersion" : "0.148-t",
"catalog" : "<catalog>",
"port" : "<port>",
"authenticationType" : "LDAP",
"username" : "<username>",
"password": {
"type": "SecureString",
"value": "<password>"
},
"timeZoneID" : "Europe/Berlin"
}
}
}
数据集属性
有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Presto 数据集支持的属性列表。
要从 Presto 复制数据,请将数据集的 type 属性设置为“PrestoObject” 。 支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
类型 | 数据集的 type 属性必须设置为:PrestoObject | 是 |
图式 | 架构的名称。 | 否(如果指定了活动源中的“query”) |
表 | 表的名称。 | 否(如果指定了活动源中的“query”) |
表名称 | 具有架构的表的名称。 支持此属性是为了向后兼容。 对于新的工作负荷,请使用 schema 和 table 。 |
否(如果指定了活动源中的“query”) |
示例
{
"name": "PrestoDataset",
"properties": {
"type": "PrestoObject",
"typeProperties": {},
"schema": [],
"linkedServiceName": {
"referenceName": "<Presto linked service name>",
"type": "LinkedServiceReference"
}
}
}
复制活动属性
有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Presto 数据源支持的属性列表。
以 Presto 作为源
要从 Presto 复制数据,请将复制活动中的源类型设置为“PrestoSource” 。 复制活动source部分支持以下属性:
属性 | 描述 | 必需 |
---|---|---|
类型 | 复制活动 source 的 type 属性必须设置为:PrestoSource | 是 |
查询 | 使用自定义 SQL 查询读取数据。 例如:"SELECT * FROM MyTable" 。 |
否(如果指定了数据集中的“tableName”) |
示例:
"activities":[
{
"name": "CopyFromPresto",
"type": "Copy",
"inputs": [
{
"referenceName": "<Presto input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "PrestoSource",
"query": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Presto 的数据类型映射
从 Presto 复制数据时,以下映射从 Presto 的数据类型应用到服务使用的内部数据类型。 若要了解复制活动如何将源架构和数据类型映射到接收器,请参阅架构和数据类型映射。
Presto 数据类型 | 临时服务数据类型(适用于版本 2.0) | 临时服务数据类型(适用于版本 1.0) |
---|---|---|
数组 | 字符串 | 字符串 |
BIGINT | Int64 | Int64 |
布尔 | 布尔型 | 布尔型 |
煳 | 字符串 | 字符串 |
日期 | 日期 | 日期/时间 |
DECIMAL (精度 < 28) | 十进制 | 十进制 |
DECIMAL (精度 >= 28) | 十进制 | 字符串 |
双 | 加倍 | 十进制 |
整数 | Int32 | Int32 |
日到秒间隔 | TimeSpan | 不支持。 |
年到月间隔 (INTERVAL_YEAR_TO_MONTH) | 字符串 | 不支持。 |
IP地址 | 字符串 | 不支持。 |
JSON(JavaScript 对象表示法) | 字符串 | 字符串 |
地图 | 字符串 | 字符串 |
真正 | 单身 | 单身 |
排 | 字符串 | 字符串 |
SMALLINT | Int16 | Int16 |
时间 | 时间 | TimeSpan |
带时区的时间 | 字符串 | 字符串 |
时间戳 | 日期/时间 | 日期/时间 |
带时区的时间戳 | 日期时间偏移量 (Datetimeoffset) | 不支持。 |
TINYINT | SByte | Int16 |
唯一通用识别码 (UUID) | Guid | 不支持。 |
VARBINARY | Byte[] | Byte[] |
VARCHAR | 字符串 | 字符串 |
查找活动属性
若要了解有关属性的详细信息,请查看 Lookup 活动。
升级 Presto 连接器
下面是帮助你升级 Presto 连接器的步骤:
在 “编辑链接服务 ”页中,选择版本 2.0,并通过引用 链接服务版本 2.0 属性配置链接服务。
Presto 链接服务版本 2.0 的数据类型映射不同于版本 1.0 的数据类型映射。 若要了解最新的数据类型映射,请参阅 Presto 的数据类型映射。
Presto 连接器版本 2.0 和版本 1.0 之间的差异
Presto 连接器版本 2.0 提供新功能,并与版本 1.0 的大多数功能兼容。 下表显示了版本 2.0 和版本 1.0 之间的功能差异。
版本 2.0 | 版本 1.0 |
---|---|
不支持 serverVersion 。 |
支持 serverVersion 。 |
默认值 port 为 8443。 |
默认值 port 为 8080。 |
enableSSL 的默认值为 true。支持 enableServerCertificateValidation 。 不支持 trustedCertPath 、useSystemTrustStore 、allowHostNameCNMismatch 和 allowSelfSignedServerCert 。 |
enableSSL 的默认值为 false。不支持 enableServerCertificateValidation 。 trustedCertPath
useSystemTrustStore ,allowHostNameCNMismatch 并且allowSelfSignedServerCert 受支持。 |
timeZoneID 默认值为 Presto 系统时区。 |
timeZoneID 默认值为 Azure 数据工厂时区。 |
以下映射用于从 Presto 数据类型到临时服务数据类型。 DATE -> 日期 DECIMAL(精准率 >= 28)-> 小数 DOUBLE -> 双精度 INTERVAL_DAY_TO_SECOND -> TimeSpan INTERVAL_YEAR_TO_MONTH -> 字符串 IPADDRESS -> 字符串 TIME -> 时间 TIMESTAMPWITHTIMEZONE -> Datetimeoffset TINYINT -> SByte UUID -> Guid |
以下映射用于从 Presto 数据类型到临时服务数据类型。 DATE -> Datetime DECIMAL(精度>≥28)->字符串 DOUBLE -> 小数 TIME -> TimeSpan TINYINT -> Int16 左侧列出的其他版本 2.0 支持的映射在版本 1.0 中不受支持。 |
相关内容
有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储。