云服务器内容精选

  • 身份认证 Console界面本租户 IAM 用户访问LakeFormation。 LakeFormation针对界面下发的HTTPS请求中IAM Token进行认证,识别出租户、IAM用户等身份。认证失败则拒绝请求。 Console界面其他租户IAM用户切换到本租户的委托角色来访问LakeFormation。 LakeFormation针对界面下发的HTTPS请求中IAM Token进行认证,识别出委托方租户、委托、被委托方租户、被委托方IAM用户等身份。认证失败则拒绝请求。 其他云服务(如 MRS )的实例或集群以本租户的委托身份来访问LakeFormation。 LakeFormation针对界面下发的HTTPS请求中IAM Token进行认证,识别出委托方租户(本租户)、委托、被委托方租户(E CS 云服务账号)、被委托方IAM用户(ECS云服务内置用户)等身份。认证失败则拒绝请求。
  • 资产的访问控制 元数据信息的访问控制 LakeFormation实例针对Console或其他云服务的元数据访问请求,在经过身份认证后,首先进行IAM鉴权,检查用户是否具备请求中的元数据操作权限,接着再进行细粒度的鉴权,检查用户是否具备针对请求中的具体元数据的请求操作权限。鉴权失败则拒绝请求。 数据权限策略信息的访问控制 LakeFormation实例针对Console或其他云服务的元数据访问请求,在经过身份认证后,进行IAM鉴权,检查用户是否具备请求中的权限策略操作权限。鉴权失败则拒绝请求。
  • 共享型与独享型LakeFormation对比 LakeFormation提供了不同实例类别,满足不同场景下用户对性能和成本的不同诉求。 独享型特性当前仅针对白名单用户开放。 计费对比 共享型与独享型实例的计费项及计费说明详细介绍请参考计费说明章节中表1。 性能对比 表1 性能对比 类型 共享型实例 独享型实例 部署模式 物理资源共享,实例间逻辑隔离。 物理资源独占,实例的性能不受其他实例的影响,可根据业务需要选择不同规格的实例。 每秒请求数(QPS) 保证2000每秒请求数。 按照用户创建实例时的选择不同。 功能对比 表2 功能对比 类型 描述 共享型实例 独享型实例 Catalog管理 LakeFormation提供 数据湖 中Catalog的元数据创建、修改、删除、查看等功能。 √ √ 数据库管理 LakeFormation提供数据湖中数据库的元数据创建、修改、删除、查看等功能。 √ √ 表管理 LakeFormation提供数据湖中数据表的元数据创建、修改、删除、查看等功能。 √ √ 函数管理 LakeFormation提供数据湖中函数的元数据创建、修改、删除、查看等功能。 √ √ 元数据生命周期管理 LakeFormation支持配置数据的删除策略,节省空间及成本,提升系统的灵活性。 √ √ 元数据权限管理 提供针对元数据的授权、取消、查看等功能。 √ √ 元数据迁移管理 支持将外部服务的元数据全量或增量迁移至当前LakeFormation实例中,对元数据进行统一管理。 √ √ 权限迁移管理 支持将外部服务的元数据权限全量或增量迁移至当前LakeFormation实例中,对元数据的权限进行统一管理。 √ √ 接入客户端管理 提供统一的接入管理能力,用户可以通过创建接入客户端的方式为指定的客户端环境建立网络连接通道,用于其他云服务接入LakeFormation实例。 √ √
  • LakeFormation的IAM权限列表 表3列举了LakeFormation的所有IAM权限。 表3 LakeFormation的IAM权限列表 操作类型 操作项 描述 只读 lakeformation:access:describe 查询接入客户端。 lakeformation:agency:describe 查询委托。 lakeformation:catalog:describe 查询Catalog元数据。 lakeformation:configuration:describe 查询配置。 lakeformation:credential:describe 查询认证信息。 lakeformation:database:describe 查询数据库元数据。 lakeformation:file:describe 查询文件。 lakeformation:function:describe 查询函数元数据。 lakeformation:group:describe 查询用户组以及关联角色关系。 lakeformation:instance:describe 查询实例。 lakeformation:instance:listAuthorizedLocation 查询已授权给LakeFormation服务的OBS路径。 lakeformation:instanceJob:describe 查询实例级任务。 lakeformation:job:describe 查询任务。 lakeformation:metadataEvent:describe 查询元数据事件。 lakeformation:obs:describe 查询OBS桶列表。 lakeformation:part:describe 查询分区。 lakeformation:policy:describe 查询权限策略。 lakeformation:policy:export 批量查询权限策略。 lakeformation:role:describe 查询角色。 lakeformation:table:describe 查询表元数据。 lakeformation:tableFile:describe 查询文件。 lakeformation:tableFileGroup:describe 查询表文件组元数据。 lakeformation:tag:describe 查询资源标签。 lakeformation:user:describe 查询用户以及关联角色关系。 写 lakeformation:access:create 创建接入客户端。 lakeformation:access:delete 删除接入客户端。 lakeformation:agency:create 创建委托。 lakeformation:agency:drop 删除委托。 lakeformation:catalog:alter 修改Catalog元数据。 lakeformation:catalog:create 创建Catalog元数据。 lakeformation:catalog:drop 删除Catalog元数据。 lakeformation:database:alter 修改数据库元数据。 lakeformation:database:create 创建数据库元数据。 lakeformation:database:drop 删除数据库元数据。 lakeformation:dataset:create 创建数据集元数据。 lakeformation:file:create 创建文件。 lakeformation:file:drop 删除文件。 lakeformation:file:alter 修改文件。 lakeformation:function:alter 修改函数元数据。 lakeformation:function:create 创建函数元数据 lakeformation:function:drop 删除函数元数据。 lakeformation:group:alter 修改用户组以及关联角色关系。 lakeformation:instance:access 申请接入服务。 lakeformation:instance:alter 修改实例。 lakeformation:instance:create 创建实例。 lakeformation:instance:drop 删除实例。 lakeformation:instanceJob:alter 修改任务。 lakeformation:instanceJob:create 创建任务。 lakeformation:instanceJob:drop 删除任务。 lakeformation:instanceJob:exec 执行实例级任务。 lakeformation:instance:createSubscriber 创建元数据事件订阅者。 lakeformation:instance:deleteSubscriber 删除元数据事件订阅者。 lakeformation:job:alter 修改任务。 lakeformation:job:create 创建任务。 lakeformation:job:drop 删除任务。 lakeformation:job:exec 执行任务。 lakeformation:model:create 创建模型元数据。 lakeformation:metadata:restore 恢复元数据。 lakeformation:part:alter 修改分区。 lakeformation:part:drop 删除分区。 lakeformation:part:create 创建分区。 lakeformation:policy:create 创建权限策略。 lakeformation:policy:delegate 将权限策略委托给其他授权主体。 lakeformation:policy:drop 删除权限策略。 lakeformation:role:alter 修改角色以及关联用户组关系。 lakeformation:role:create 创建角色。 lakeformation:role:drop 删除角色。 lakeformation:table:alter 修改表元数据。 lakeformation:table:create 创建表元数据。 lakeformation:table:drop 删除表元数据。 lakeformation:tableFile:alter 修改表文件。 lakeformation:tableFile:create 创建表文件。 lakeformation:tableFile:drop 删除表文件。 lakeformation:tableFileGroup:alter 修改表文件组元数据。 lakeformation:tableFileGroup:create 创建表文件组元数据。 lakeformation:tableFileGroup:drop 删除表文件组元数据。 lakeformation:transaction:operate 操作事务。 lakeformation:user:alter 修改用户以及关联角色关系。 权限管理 lakeformation:accessService:grant 授权接入服务。 lakeformation:accessTenant:grant 授权接入租户。 lakeformation:accessAgency:describe 查询接入委托信息。 lakeformation:accessService:describe 查看接入服务。 lakeformation:agreement:describe 查询服务协议授权。 lakeformation:agreement:cancel 取消服务协议授权。 lakeformation:agreement:grant 授权服务协议授权。 lakeformation:instance:authorizeLocation 授权将OBS路径授权给LakeFormation服务。 lakeformation:instance:cancelAuthorizeLocation 取消授权OBS路径。
  • IAM概述 如果您需要对华为云上购买的LakeFormation资源,为企业中的员工设置不同的访问权限,以达到不同员工之间的权限隔离,您可以使用 统一身份认证 服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制华为云资源的访问。 通过IAM,您可以在华为云账号中给员工创建IAM用户,并授权控制其对华为云资源的访问范围。例如您希望其拥有LakeFormation的使用权限,但是不希望其拥有删除数据库等高危操作的权限,那么您可以使用IAM创建用户,通过授予仅能查询LakeFormation实例,但是不允许删除的权限,控制其对云服务资源的使用范围。 如果华为云账号已经能满足您的要求,不需要创建独立的IAM用户进行权限管理,您可以跳过对应权限管理操作。 IAM是华为云提供权限管理的基础服务,无需付费即可使用,您只需要为您账号中的资源进行付费。关于IAM的详细介绍,请参见IAM产品介绍。
  • IAM权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 LakeFormation授权时,在全局级服务中设置权限,不需要切换区域。 权限根据授权精细程度分为角色和策略。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于华为云各服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对LakeFormation服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。
  • IAM系统策略 表1介绍了LakeFormation的默认系统策略。 表1 LakeFormation系统策略 系统角色/策略名称 描述 类别 依赖关系 LakeFormation FullAccess LakeFormation管理员权限,拥有该权限的用户可以操作并使用所有LakeFormation服务功能。 系统策略 IAM AgencyFullAccess OBS OperateAccess VPC FullAccess VPCEndpoint FullAccess LakeFormation ReadOnlyAccess LakeFormation只读权限,拥有该权限的用户可以执行LakeFormation所有查询类功能。 系统策略 IAM ReadOnlyAccess OBS ReadOnlyAccess VPC ReadOnlyAccess VPCEndpoint ReadOnlyAccess LakeFormation CommonOperations LakeFormation基础权限,包含LakeFormation服务协议查看/授权/取消,以及OBS、TMS等周边依赖服务的基础权限集合。 系统策略 IAM ReadOnlyAccess OBS ReadOnlyAccess VPC FullAccess VPCEndpoint FullAccess 表2介绍了lakeFormation常用操作与系统权限的授权关系,您可以参考该表选择合适的系统权限。 表2 LakeFormation常用操作与系统策略的授权关系 操作 LakeFormation FullAccess LakeFormation CommonOperations LakeFormation ReadOnlyAccess 查询LakeFormation实例 √ √ √ 创建LakeFormation实例 √ x x 变更LakeFormation实例 √ √ x 删除LakeFormation实例 √ x x 恢复LakeFormation实例 √ x x 查询租户所有标签 √ √ √ 更新LakeFormation实例的标签 √ √ x 创建元数据迁移/发现任务 √ √ x 修改元数据迁移/发现任务 √ √ x 删除元数据迁移/发现任务 √ √ x 查询元数据迁移/发现任务 √ √ √ 查询元数据迁移/发现任务日志 √ √ √ 运行/停止元数据迁移/发现任务 √ √ x 同意用户协议 √ √ √ 查询用户协议 √ √ √ 删除用户协议 √ √ √ 授权LakeFormation服务创建委托 √ x x 查询LakeFormation服务创建的委托 √ √ √ 删除LakeFormation服务创建的委托 √ x x 授权资源 √ x x 查询授权资源 √ √ √ 取消授权资源 √ x x 查询OBS桶列表 √ √ √ 查询OBS桶对象列表 √ √ √ 创建服务接入客户端 √ √ x 查询服务接入客户端 √ √ √ 删除服务接入客户端 √ √ x 订阅元数据事件 √ √ x 取消订阅元数据事件 √ √ x 查询元数据事件 √ √ √ 查询Catalog元数据 √ √ √ 创建Catalog元数据 √ √ x 修改Catalog元数据 √ √ x 删除Catalog元数据 √ √ x 查询Database元数据 √ √ √ 创建Database元数据 √ √ x 修改Database元数据 √ √ x 删除Database元数据 √ √ x 查询Table元数据 √ √ √ 创建Table元数据 √ √ x 修改Table元数据 √ √ x 删除Table元数据 √ √ x 查询Partition元数据 √ √ √ 创建Partition元数据 √ √ x 修改Partition元数据 √ √ x 删除Partition元数据 √ √ x 查询列统计信息 √ √ √ 创建列统计信息 √ √ x 修改列统计信息 √ √ x 删除列统计信息 √ √ x 查询Function元数据 √ √ √ 创建Function元数据 √ √ x 修改Function元数据 √ √ x 删除Function元数据 √ √ x 查询Model元数据 √ √ √ 创建Model元数据 √ √ x 修改Model元数据 √ √ x 删除Model元数据 √ √ x 查询ModelFile元数据 √ √ √ 创建ModelFile元数据 √ √ x 修改ModelFile元数据 √ √ x 删除ModelFile元数据 √ √ x 查询dataset元数据 √ √ √ 创建dataset元数据 √ √ x 修改dataset元数据 √ √ x 删除dataset元数据 √ √ x 查询元数据数量 √ √ √ 查询授权主体 √ √ √ 创建角色 √ √ x 删除角色 √ √ x 修改角色 √ √ x 查询角色 √ √ √ 将用户/用户组加入角色 √ √ x 将用户/用户组移除角色 √ √ x 更新角色中的用户/用户组 √ √ x 将元数据权限授权给授权主体 √ √ x 取消授权元数据权限给授权主体 √ √ x 查询授权信息 √ √ √ 获取访问数据的STSToken √ √ x LakeFormation系统策略所包含的详细内容如下: LakeFormation FullAccess策略内容 { "Version": "1.1", "Statement": [ { "Action": [ "lakeformation:*:*", "vpc:*:get", "vpc:*:list", "tms:predefineTags:list", "obs:bucket:ListAllMyBuckets", "obs:bucket:ListBucket", "obs:bucket:HeadBucket", "obs:object:GetObject" ], "Effect": "Allow" } ]} LakeFormation CommonOperations策略 {"Version": "1.1","Statement": [{"Effect": "Allow","Action": ["lakeformation:*:describe*","lakeformation:*:list*","lakeformation:policy:export","lakeformation:access:create","lakeformation:access:delete","lakeformation:accessAgency:describe","lakeformation:accessService:describe","lakeformation:accessService:grant","lakeformation:accessTenant:grant","lakeformation:agreement:cancel","lakeformation:agreement:describe","lakeformation:agreement:grant","lakeformation:catalog:alter","lakeformation:catalog:create","lakeformation:catalog:drop","lakeformation:database:alter","lakeformation:database:create","lakeformation:database:drop","lakeformation:dataset:alter","lakeformation:dataset:alterFile","lakeformation:dataset:alterFileGroup","lakeformation:dataset:create","lakeformation:dataset:createFile","lakeformation:dataset:createFileGroup","lakeformation:dataset:drop","lakeformation:dataset:dropFile","lakeformation:dataset:dropFileGroup","lakeformation:function:alter","lakeformation:function:create","lakeformation:function:drop","lakeformation:group:alter","lakeformation:instance:access","lakeformation:instance:alter","lakeformation:instanceJob:alter","lakeformation:instanceJob:create","lakeformation:instanceJob:drop","lakeformation:instanceJob:exec","lakeformation:job:alter","lakeformation:job:create","lakeformation:job:drop","lakeformation:job:exec","lakeformation:model:alter","lakeformation:model:alterFile","lakeformation:model:create","lakeformation:model:createFile","lakeformation:model:drop","lakeformation:model:dropFile","lakeformation:policy:create","lakeformation:policy:drop","lakeformation:role:alter","lakeformation:role:create","lakeformation:role:drop","lakeformation:table:alter","lakeformation:table:create","lakeformation:table:drop","lakeformation:transaction:operate","lakeformation:user:alter","vpc:*:get","vpc:*:list","tms:predefineTags:list","obs:bucket:ListAllMyBuckets","obs:bucket:ListBucket","obs:bucket:HeadBucket","obs:object:GetObject"]}]} LakeFormation ReadOnlyAccess策略 {"Version": "1.1","Statement": [{"Action": ["lakeformation:*:describe*","lakeformation:*:list*","lakeformation:policy:export", "lakeformation:agreement:cancel", "lakeformation:agreement:describe", "lakeformation:agreement:grant","vpc:*:get","vpc:*:list","tms:predefineTags:list","obs:bucket:ListAllMyBuckets","obs:bucket:ListBucket","obs:bucket:HeadBucket","obs:object:GetObject"],"Effect": "Allow"}]}
  • 隐式LakeFormation权限 尽管没有在LakeFormation中进行显式的授权,但是LakeFormation管理员、数据库创建者、表创建者拥有隐式LakeFormation权限。 LakeFormation管理员: LakeFormation管理员指的是拥有LakeFormation FullAccess权限的用户。 对于其账号下的所有元数据具有读写权限。 可以向任何用户、用户组、角色授予或撤销任何元数据的访问权限。 数据库创建者:拥有其创建的数据库的所有数据库权限,拥有其在数据库中创建表的权限,并且可以向同一IAM账号中的其他用户授予在数据库中创建表的权限。数据库创建者对其他人在数据库中创建的表不具有隐式权限。 表创建者: 具有其创建的表的所有权限。 可以向同一IAM账号中的主体授予对其创建的所有表的权限。 可以查看包含自己创建的表的数据库。
  • 与其他服务的关系 LakeFormation服务与其他服务的关系如下表所示。 表1 LakeFormation服务与其他服务的关系 服务名称 LakeFormation服务与其他服务的关系 统一身份认证(Identity and Access Management,IAM) 通过IAM完成对IAM用户或委托的身份认证以及部分访问控制。 云审计 服务(Cloud Trace Service, CTS ) 云审计服务记录LakeFormation服务相关的操作事件,方便用户日后的查询、审计和回溯。 对象存储服务 (Object Storage Service,OBS) LakeFormation服务的元数据所映射的实际业务数据,存储在OBS并行文件系统的目录和文件。 MapReduce服务 (MapReduce Service,MRS) LakeFormation与MRS集群中的Ranger、Hive、Spark对接,实现湖、仓元数据统一管理。 数据仓库 服务 GaussDB (DWS) LakeFormation与DWS对接,实现湖、仓元数据统一管理。
  • LakeFormation权限概述 LakeFormation对于元数据权限和数据权限的管理,使用“粗粒度”的Identity and Access Management(简称IAM)权限和“细粒度”的LakeFormation权限的组合,实现精细访问控制。 “粗粒度”的IAM权限:对于各项操作有更广泛的权限。例如,推荐用户使用“lakeformation:*:create”(即LakeFormation所有元数据的创建权限),而不是使用“lakeformation:table:create”(即LakeFormation数据表的创建权限)来控制用户对于表的创建权限,同时使用“细粒度”LakeFormation权限“CREATE_TABLE”来控制用户是否能够在某个Database下创建一个Table元数据。 “细粒度”的LakeFormation权限:指使用LakeFormation权限,向各个主体(包括用户、用户组、角色等)授予对于元数据、OBS路径以及其中的数据的访问权限。 IAM权限模型由IAM策略组成。LakeFormation权限模型使用LakeFormation定义的权限主体、授权对象、权限组成,详细介绍请参考基本概念。 当用户请求访问元数据或数据时,请求必须通过IAM和LakeFormation的权限检查才能成功。 父主题: 权限管理
  • 更新管理 SSL证书采用SSL协议进行通信,SSL证书部署到服务器后,服务器端的访问将启用HTTPS协议。您的网站将会通过HTTPS加密协议来传输数据,可帮助服务器端和客户端之间建立加密链接,从而保证数据传输的安全。 SSL证书存在有效期限制,证书过期后不被信任,已安装证书的网站业务会受到影响(提示访问不安全或无法访问)。 LakeFormation实例会定期自动更新SSL证书,确保提供持续稳定的HTTPS服务。 父主题: 安全
  • LakeFormation权限 用户可以在管理控制台的LakeFormation实例界面,针对该实例下的所有Catalog、Database、Table等数据资源,授予用户组等主体细粒度的数据访问权限。 经过以上授权操作,形成一条或多条权限策略,权限策略包含授权主体、授权对象、权限、授权权限等。 表1介绍了不同元数据类型的LakeFormation权限: 表1 不同授权类型的操作权限 授权类型 操作类型 权限说明 Catalog ALL Catalog的所有操作权限。 ALTER 修改Catalog。 CREATE_DATABASE 创建数据库。 DROP 删除Catalog。 DESCRIBE 查看Catalog的元数据信息或切换Catalog。 LIST_DATABASE 查看Catalog下资源列表。 数据库 ALL 数据库的所有操作权限。 ALTER 修改数据库。 DROP 删除数据库。 DESCRIBE 查看数据库的元数据信息或切换数据库。 LIST_TABLE 查看数据库下资源列表。 LIST_FUNC 查看某一数据库下的函数。 CREATE_TABLE 在数据库中创建表。 CREATE_FUNC 在数据库中创建函数。 表 ALL 表的所有操作权限。 ALTER 修改表。 DROP 删除表。 DESCRIBE 查看表的元数据信息。 UPDATE 更新表数据。 INSERT 插入表数据。 SELECT 查询表内数据。 DELETE 删除表的数据。 列 SELECT 查询表内的列数据。 函数 ALL 函数的所有操作权限。 ALTER 修改函数。 DROP 删除函数。 DESCRIBE 查看函数的元数据信息。 EXEC 执行函数。 路径 READ 路径下文件的读权限。 WRITE 路径下文件的写权限。
  • 到期与欠费 用户欠费后,可以查看欠费详情。为防止相关资源被停止或者释放,需要用户及时进行充值。如果账户余额不足,账号将进入欠费状态,需要在约定时间内支付欠款,详细操作请参考欠费还款。 如果没有及时地进行续费或充值,将进入宽限期。如宽限期满仍未续费或充值,将进入保留期。在保留期内资源将停止服务。保留期满仍未续费或充值,存储在云服务中的数据将被删除、云服务资源将被释放。详细说明请参考“资源停止服务或逾期释放说明”。宽限期与保留期的具体规则请参考“宽限期保留期”。
  • 约束与限制 建议使用推荐的浏览器登录LakeFormation管理界面: Chrome:94.0及更高版本。 Edge:随Windows操作系统更新。 IAM用户组被删除后,LakeFormation云服务数据权限中的相关权限策略,需要用户手动清理删除。 建库时路径不能为所在Catalog父路径或相同路径,不能为同一Catalog下其他数据库(除default外)路径的父路径、子路径或相同路径。 创建数据库的存储位置必须在所属Catalog的存储位置之下。 用户自定义创建的Catalog对象及其子元数据对象,暂不支持授权和细粒度权限控制。 LakeFormation数据权限单次授权,授权主体不能超过20个,元数据对象不能超过10个。 LakeFormation中,总分区数量不超过1,000,000,000。 LakeFormation不支持跨Region的元数据和权限统一管理。 LakeFormation不支持跨实例的元数据和权限统一管理。 一个数据表中,每个分区所对应的Partition Value组合必须在全表唯一。 由Partition Keys和Partition Values组合构成的Partition Name,总长度不能超过1000字符。 元数据的参数描述中,1个中文字符对应3个字节。 LakeFormation依赖OBS服务的并行文件系统,OBS需要基于大数据存算分离场景进行分离部署;LakeFormation元数据的存储位置对应OBS路径,与存算分离架构的MRS等大数据集群对接。OBS并行文件系统需要支持AccessLabel特性。 LakeFormation中,不同实例的同名角色在授权时对应的OBS AccessLabel相同,不建议在同一个区域中的不同实例创建同名角色。
  • 函数(Function) 在SQL查询中使用函数对数据进行特定处理,包括内置函数和用户自定义函数UDF(User-Defined Functions)。 用户自定义函数分为以下几类: 普通的UDF,用于操作单个数据行,且产生一个数据行作为输出。 用户定义聚集函数UDAF(User-Defined Aggregating Functions),用于接受多个输入数据行,并产生一个输出数据行。 用户定义表生成函数UDTF(User-Defined Table-Generating Functions),用于操作单个输入行,产生多个输出行。