华为云用户手册

  • 什么是 视频直播 服务 视频直播服务(Live)依托华为云,凭借在视频领域的长期技术积累,快速敏捷地为行业提供高并发、低延迟、超清流畅、安全可靠的端到端音视频直播解决方案。为了更好地服务于不同的直播应用场景,视频直播提供了标准直播与低时延直播两种服务。标准直播致力于为常规的大规模实时观看场景提供更加稳定、高效的直播流媒体传输服务及功能强大的实时 媒体处理 能力。低时延直播将直播端到端延迟降低至毫秒级,并且弱网抗性更强,适用于直播延迟敏感,内容同步性要求高的直播场景。 视频直播服务包含如下子产品: 云直播(Cloud Live):流式直播服务,提供灵活易用,功能丰富的直播加速能力,适用娱乐、电商、教育等场景。 云直播又包含如下2个场景,区别如表1所示。 标准直播(Cloud Stream Live):致力于为常规的大规模实时观看场景提供更加稳定、高效的直播流媒体传输服务及功能强大的实时媒体处理能力。 低时延直播(Low Latency Live):支持低时延、高并发、低卡顿的视频直播场景,在直播基础上,通过传输协议优化、链路动态优选、低时延转码等技术手段,将直播时延降低到毫秒级,满足直播延时敏感业务的诉求。 媒体直播(Media Live):广播级直播服务,支持频道管理、内容加密等特性,适用于媒资,广电等场景。 表1 云直播子场景对比 云直播子场景 标准直播 低时延直播 播放协议 支持RTMP、HTTP-FLV、HLS协议流的播放。 支持WebRTC协议流的播放。 端到端延迟 RTMP、HTTP-FLV协议的流延迟大于3秒。 HLS协议的流延迟大于6秒。 端到端延迟小于800ms。 抗弱网能力 抗弱网能力一般。 抗弱网能力强,在弱网环境下可以流畅播放。 适用场景 以观众观看为主,且对于网络差异导致的延迟不敏感的直播场景。 互动场景,对延迟及画面同步有较高要求的直播场景。 通用能力 具备实时转码、直播录制、实时截图、内容加密、认证鉴权、统计分析等全功能。 加速节点广泛,当前拥有国内加速节点2800+,海外加速节点800+,全球加速保障极致业务体验。
  • H.265 H.265是ITU-T VCEG继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。H.264由于算法优化,可以低于1Mbps的速度实现标清(分辨率在1280P*720以下)数字图像传送。H.265则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280*720)普通高清音视频传送。
  • H.264 H.264,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准,同时也是MPEG-4第十部分。 H.264标准的主要目标是:与其它现有的视频编码标准相比,在相同的带宽下提供更加优秀的图像质量。它既保留了以往压缩技术的优点和精华又具有其他压缩技术无法比拟的许多优点。
  • 与其它服务的关系 若您需要使用直播服务的 消息通知 功能、直播录制和截图功能,您还需要开通其它依赖服务,如表1所示。 表1 与其它服务的关系 交互功能 相关服务 位置 使用消息通知服务( SMN )发布直播推流开始、推流结束及录制相关的消息。 消息通知服务(Simple Message Notification,SMN) 配置直播消息通知 使用 视频点播 服务存储视频直播录制文件。 视频点播服务(Video on Demand,VOD) - 将直播截图或录制文件存储到OBS桶中。 对象存储服务 (Object Storage Service,OBS) 创建桶 上传文件
  • 数据保护技术 Live通过多种数据保护手段和特性,保障存储在Live中的数据安全可靠。 表1 Live的数据保护手段和特性 数据保护手段 简要说明 详细介绍 传输加密(HTTPS) 支持HTTP和HTTPS两种传输协议,为保证数据传输的安全性,推荐您使用更加安全的HTTPS协议。 HTTPS配置方法 敏感 数据加密 保护 对租户配置的敏感数据(如防盗链Key)使用安全的加密算法进行保存。 - 父主题: 安全
  • 基于华为云的责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS各类各项云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类各项云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型
  • 基于视频直播服务的责任共担 视频直播服务使用场景中,如下角色需要共同参与和责任共担。各个角色的安全责任边界说明,如下所示: 华为云租户 负责直播管理,包括如下安全责任: 直播平台与直播APP的应用和数据安全。 直播活动安全运营。 最终用户(主播或观众)安全管理,包括:直播视频内容的安全监管等。 监管机构响应能力。 视频直播服务 Live的安全责任,如下所示: 传输网络的基础设施安全,完成视频内容的安全传输和处理。 租户数据安全配置。 提供相应技术,如:截图、录制等,支撑租户监管视频内容。 监管机构响应能力。 最终用户 主播和观众负责视频生产和消费视频内容的安全。
  • Live FullAccess策略内容 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "live:*:*" ] } ]}
  • Live ReadOnlyAccess策略内容 { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "live:*:get*", "live:*:list*" ] } ]}
  • 身份认证 您可以通过Live控制台、API、SDK访问Live,无论访问方式封装成何种形式,其本质都是通过Live提供的REST风格的API接口进行请求。 Live的接口请求需要经过认证后才可以访问成功。其中,调用接口有以下两种认证方式,您可以选择其中一种进行认证鉴权。 Token认证:通过Token认证调用请求。 AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。推荐使用AK/SK认证,其安全性比Token认证要高。 关于认证鉴权的详细介绍及获取方式,请参见认证鉴权。
  • 访问控制 Live支持通过 IAM 权限、防盗链进行访问控制。 表1 Live访问控制 访问控制方式 简要说明 详细介绍 Live基于IAM权限控制 IAM权限是作用于云资源的,IAM权限定义了允许和拒绝的访问操作,以此实现云资源权限访问控制。管理员创建IAM用户后,需要将用户加入到一个用户组中,IAM可以对这个组授予Live所需的权限,组内用户自动继承用户组的所有权限。 Live权限管理 防盗链 为了防止用户在Live的数据被其他人盗链,Live为您提供了Referer防盗链、Key防盗链和IP黑白名单鉴权机制,对访问者的身份进行识别和过滤,符合规则的才可使用Live。 防盗链介绍
  • 解密敏感配置 在微服务业务代码的application.yml文件中配置敏感配置项,样例如下: nuwa: security: config: sensitiveWords: spring.redis.password,org.app.protocol-login.oauth.clientSecret,org.app.jwt-key 启动敏感配置项自动解密。 在微服务的启动类中添加@EnableStsEncryptableProperties注解。
  • 访问凭据管理服务功能介绍 访问凭据管理服务(Access Credential Management Service,简称ACMS,也称为Security Token Service,简称STS)为云服务业务提供了以下两个功能: 微服务之间请求认证 ACMS为每个接入的微服务,颁发了用于通信中进行认证的STS认证凭据,两个微服务之间通信时,可以使用该认证凭据,进行STS认证。 为了让微服务可以安全地获取到STS认证凭据,STS给每个接入的微服务颁发了一张身份证书,该证书中包含了微服务的名称等信息。该证书在微服务部署时,安装到微服务所在的虚拟机或容器里。微服务使用该证书,就可以到STS-Server上获取认证凭据。 两个微服务之间通信时,被调用方(Provider)需要在ACMS管理台上给调用方(Consumer)配置访问权限(Access Control List,简称ACL),开通后,Consumer就可以使用STS下发的认证凭据,用于消息的签名和加密。 敏感配置的托管和分发功能 ACMS为每个接入的微服务都分配了一个用于加密敏感数据的密钥(KEK),对服务也分配了加密敏感数据的密钥(ServiceKEK)。同一个服务下的所有微服务,ServiceKEK是相同的。 利用这两个密钥,微服务可以将一些敏感配置托管到STS,STS会使用KEK或ServiceKEK对数据进行加密,在微服务部署时,由部署平台将敏感数据密文下发到微服务部署的环境上。 微服务启动时,利用微服务身份证书,可以同时获取KEK和ServiceKEK,从而把敏感数据明文解密出来。 父主题: 配置访问凭据管理服务
  • 更多操作 隔离域规划创建后,您还可以对隔离域规划进行以下操作。 表2 相关操作 操作名称 操作步骤 导出全量隔离域规划信息 在隔离域规划列表,单击“导出”,导出隔离域规划信息。 导出指定隔离域规划信息 在“隔离域规划”页签,输入筛选条件,并单击“查询”。 单击“导出”,导出隔离域规划信息。 删除隔离域规划 在隔离域规划列表,单击待删除隔离域规划所在行“操作”列的“删除”。 批量删除隔离域规划 在隔离域规划列表,勾选待删除隔离域规划,然后单击列表左上方的“删除”。
  • 弹性网络服务 弹性网络服务(ENS)通过引入“隔离域”这一网络资源概念,将业务使用的底层网络资源进行封装,为具有相同安全保护需求并相互信任的服务提供访问策略的安全分组。当服务器加入到隔离域后,即受到这些访问规则的保护。访问规则继承自选定的安全区域(安全域),并根据租户声明的服务依赖关系自动生成。 图1 ENS与原有模式差异 隔离域内部是在虚机子网或者容器网段上加安全域包装在一起的,当建立了隔离域后,业务层只感知隔离域与隔离域之间的互通关系。 图2 业务感知差异
  • 运维中心基本概念 基本概念 说明 资源 资源是具备一定功能和作用的实例,是部署服务的管理对象,如WiseCloud::MicloudService::NuwaContainer实例、WiseCloud::Cache::D CS 实例等。 组件 组件是一个具有相同资源的集合,组件具备以下特点: 可以在组件中声明资源以及资源之间的依赖关系。 同一个资源只能属于一个组件。 组件下的所有资源上下文一致。 环境 环境是一个具有相同组件的集合,环境具有以下特点: 部署服务代码中的environment-id是“环境”的唯一索引。 不同环境下的组件和资源可以同名,同一环境下的资源和组件名称需要保证唯一。 一个组件只能属于一个环境,一个环境下会有多个组件。 环境变更的本质是环境下组件的变更。 流水线 流水线是将多个组件的变更组合起来的流程描述,描述各个组件变更的方式和次序。 变更工单 变更工单是实施现网变更的授权许可,业务需要发起现网变更时,通常会由研发人员提交变更电子流,并附上对应的变更文档。该电子流被审批通过后,会在变更工单管理中,创建一条对应的变更工单,运维人员可使用变更工单实施变更。 变更计划 变更计划是部署服务发起具体变更动作前的风险影响评估过程。通过风险影响评估过程可以得到,本次变更可能导致的资源动作和属性差异变化,以及可能的风险项。 变更风险项 变更风险项是某个资源的具体变更的风险认定。其描述了认定为风险变更的属性变化,以及能够审批允许的审批人列表。 变更电子流 变更电子流是用于无人值守变更的高度自动化的变更方式,是在部署服务基础上,尽可能将所有的运维手工选择操作前移到提交电子流之前。 Terraform Terraform是HashiCorp公司开发的基础设施即代码(Infrastructure-as-Code,IaC)软件,它能自动化的进行 资源编排 ,用于安全高效地预览、配置和管理云基础架构和资源,并提供自定义解决方案。 监控 是采集、汇总和分析IT基础设施、服务组件以及程序应用的运行指标,以了解其当前状态和运行状况,判断是否安全可靠的过程,是保证业务持续稳定运行的重要手段。 告警 告警是监控系统的响应组件,它根据指标值的变化按照既定的策略执行响应操作,其主要目的是引起人们对系统当前状态的关注。告警定义包含基于指标的条件或阈值以及当指标值达到或超出定义条件时要执行的操作。 告警通知 告警的通知在所有的告警处理的链路结束以后才会发生。告警处理模块会根据上报告警的上下文获取告警的值班配置,值班配置由业务预置。 告警屏蔽 为您提供短时间的屏蔽功能,可以通过设置告警屏蔽的规则,告警将在屏蔽的时间内不再触发任何通知,规则结束后,将会被再次唤醒,屏蔽期间告警被清除后,将不再触发任何通知,减少您的处理频度。 告警过滤 告警过滤是直接在接入的阶段就将告警屏蔽,告警仍然会进入Bypass的数据库但不会再向下发送给告警处理模块。 告警收敛 多个维度的告警,通过特定的条件将它们变为一条告警,只需要配置自定义的收敛规则,就可以将重复告警收敛到一起,还有默认的规则帮助用户维护告警。 告警标记 告警标记的作用是为一段时间内的告警打上标签,例如现网变更或者现网演练时,由于要模拟大量异常请求和其他操作会造成大量无用告警上报,标记的作用就是为这一段时间的告警打上标签与正常告警进行区分。 告警定义 对于繁琐复杂的告警上报字段感到困惑,使用统一定义,将会自动下发到业务对应的agent,更加人性化的界面设计,使告警上报更加统一、准确。 告警修复 设置特定的命中条件,告警在发送通知之前会执行预置的修复脚本,进行修复操作,自动帮你修复简单的告警。 语音值班配置 当告警生成时,配置对应的责任人,通过 WeLink 、短信、电话等多种形式,快速将异常情况通知到责任人。 日志 日志是指设备、系统或服务程序在运作时都会产生的事件记录,每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。一般系统会有各种各样的日志文件,如应用程序日志,安全日志、系统日志、Scheduler服务日志、WWW日志、DNS服务器日志等。 日志项目 日志项目是一个包含多个日志服务配置的整体,可以看作是一个微服务实例。 同一个微服务实例下的日志服务配置应当包含在一个日志项目中。 不同微服务实例使用完全相同的日志服务配置时,也可以共用同一个日志项目。 日志空间 日志空间是日志服务为微服务的日志分配的使用空间。 业务须在日志接入页面填写日志相关信息并提交申请日志空间,日志空间支持定义空间内日志的结构化格式信息,此时要求所有使用此空间的日志都满足该日志格式。 日志采集配置 日志采集配置是日志服务采集端在采集微服务实例中日志时所需的配置,一种日志对应一项采集配置。 日志采集配置须归属于一个日志项目,并使用一个已分配好的日志空间。 日志采集配置之间可以共用日志空间,此时需要关注日志空间的日志格式要求,未定义日志格式的空间可不用关注。 事件 事件是指IT基础设施、服务组件以及程序应用等运行过程中发生的问题。事件可通过监控系统自动生成、客户报障生成或SRE主动巡检生成等。监控系统生成事件首先要采集和分析运行数据,然后根据预定规则判断是否需要生成事件。 HCW HW Cloud Watch,AppStage运维中心提供的监控系统,也称为云眼,可以提供监控、告警功能。 HCW Agent 监控系统的采集框架,需要在每台主机上部署,部署路径为/opt/huawei/HCW_Agent。 EAP 事件自动化平台(Event & Action Platform,EAP),通过集成各系统动作,解决复杂运维场景的操作编排功能。 流程 可以通过EAP平台所提供的各种动作组合来编排解决具体运维场景的流程。 动作 各服务的操作(例如部署任务、执行作业、确认告警等)封装。 标签 对某一类特定群体或对象的某项特征进行的抽象分类和概括,其值(标签值)具备可分类性。 标签树 标签树负责标签的管理,包括标签的创建,删除,修改。系统标签由系统管理员统一进行管理,业务自定义标签由业务人员进行管理。 逻辑主体 逻辑主体是业务实体的抽象,是基于物理表(MPPDB、ClickHouse、Influxdb)创建。逻辑主体和物理表之间存在映射关系,逻辑主体的字段名称和物理表可以不一样,这也是为了实现业务属性和物理表之间的解耦。 一个逻辑主体可以映射多种物理实体,当底层数据物理表变更,上层的指标逻辑定义可以不用发生变化。 指标 指标是指在被观测系统中观察和收集的资源使用或行为的测量值,可能是原始采集的数据,也可能是后期经过各种计算和统计方法得到的数值。 令牌 令牌是使用数据源的鉴权方式,只有通过对应业务的token的鉴权,才能使用对应的数据源。 视图 指标本身包含了业务计算规则,只有结合数据源才能真正被查询。视图,就是指标 + 物理表的结合,也是监控大盘上直接可被查询的对象。视图可以包含一个或多个指标,例如折线图只需要单指标的视图,但是表格就需要多指标的视图。 查询视图(Query View)。直接作用于物理表的查询视图,大多用在druid实时监控场景。 长期存储视图(Long Term View)。基于查询视图,可以创建长期存储视图。如果觉得某个查询视图值得被长期持久化,就可以使用该能力。长期存储视图会自动创建三个聚合任务,分别是5分钟粒度、小时粒度、天粒度。 持久化视图(Persistent View)。基于查询视图,可以创建持久化视图。部分视图需要出日报,就可以使用该能力。该视图会自动创建一个汇聚任务。 异常检测视图(Anomaly Detect View)。基于查询视图,可以创建异常检测视图,用来为异常检测任务提供数据。 插件 可在机器上执行并采集各项参数的二进制文件或者脚本。 微服务 微服务是云原生应用的最佳架构, 它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个微服务运行在其独立的进程中, 微服务与微服务间采用轻量级的通信机制互相沟通。每个微服务由全功能团队独立构建、独立测试,并且能够被独立地部署到生产环境。微服务的特点:组件化、松耦合、服务自治、去中心化。 应用 完成某项完整业务场景的软件系统。应用一般由多个微服务组成,应用里面的微服务能够相互发现和调用。 NUWA框架 NUWA提供一个完整的微服务开发框架,是一个开箱即用的应用级容器,以插件的形式汇聚云服务平台能力,让开发把时间更多的花在业务代码逻辑上。 Kubernetes Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署、规划、更新、维护的一种机制。 Pod Pod是Kubernetes创建或部署的最小单位。一个Pod封装一个或多个容器、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。 Node Node是一个执行具体工作的机器,可以是虚拟机或者物理机。Pod是部署在Node节点上的,如果Node故障,整个Pod会被调度到集群中的另外可用的Node节点上去。 工作负载 工作负载是在Kubernetes上运行的应用程序。无论您的工作负载是单个组件还是协同工作的多个组件,您都可以在Kubernetes上的一组Pod中运行它。在Kubernetes中,工作负载是对一组Pod的抽象模型,用于描述业务的运行载体,包括Deployment、StatefulSet、DaemonSet、Job、CronJob等多种类型。 无状态工作负载:即Kubernetes中的“Deployment”,无状态工作负载支持弹性伸缩与滚动升级,适用于实例完全独立、功能相同的场景,如:nginx、wordpress等。 有状态工作负载:即Kubernetes中的“StatefulSet”,有状态工作负载支持实例有序部署和删除,支持持久化存储,适用于实例间存在互访的场景,如ETCD、mysql-HA等。 创建守护进程集:即Kubernetes中的“DaemonSet”,守护进程集确保全部(或者某些)节点都运行一个Pod实例,支持实例动态添加到新节点,适用于实例在每个节点上都需要运行的场景,如ceph、fluentd、Prometheus Node Exporter等。 普通任务:即Kubernetes中的“Job”,普通任务是一次性运行的短任务,部署完成后即可执行。使用场景为在创建工作负载前,执行普通任务,将镜像上传至镜像仓库。 定时任务:即Kubernetes中的“CronJob”,定时任务是按照指定时间周期运行的短任务。使用场景为在某个固定时间点,为所有运行中的节点做时间同步。 父主题: 运维中心简介
  • 日志接入场景 表1 日志接入场景说明 场景 说明 日志接入方式 虚拟机日志 日志存储在虚拟机下的文件路径中。 虚拟机日志接入 容器hostPath日志 主机文件系统上的文件或目录挂载到容器上,使用主机文件系统存储容器日志。 容器日志接入 容器标准输出日志 标准输出是Kubernetes社区推荐的日志输出方式。 虚拟机日志接入同时开启软连接 容器共享存储日志 容器日志挂载在共享存储上。 容器归属的虚拟机没有挂载此共享存储,则无法采集对应的容器日志,需要将共享存储挂载在虚拟机上。 将共享存储挂载在虚拟机上,然后使用虚拟机日志接入方式
  • 更多操作 您还可以对已创建的日志清理作业进行以下操作。 表2 相关操作 操作名称 操作步骤 停用日志清理作业 在日志清理作业列表中,单击日志清理作业所在行“启用”列的,当变为时,表示已停用该作业。 启用日志清理作业 在日志清理作业列表中,单击日志清理作业所在行“启用”列的,当变为时,表示已启用该作业。 查看执行历史 在定时作业列表中,单击日志清理作业所在行“操作”列的“执行历史”,进入“作业清单”页面查看执行历史。 编辑日志清理作业 在定时作业列表中,单击日志清理作业所在行“操作”列的“编辑”。 编辑日志清理作业信息,单击“保存”。 启用中的作业不支持编辑,要停用作业后才能编辑。 删除日志清理作业 在日志清理作业列表中,单击日志清理作业所在行“操作”列的“删除”。 单击“确定”。 启用中的作业不支持删除,要停用作业后才能删除。
  • 应用场景 使用SLB为高访问量业务进行流量分发 对于业务量访问较大的业务,可以通过SLB设置相应的分配策略,将访问量均匀的分到多个后端服务器处理。例如大型门户网站,移动应用市场等。 使用SLB消除单点故障 对可靠性有较高要求的业务,可以在SLB上添加多个后端服务器。SLB会通过健康检查及时发现并屏蔽有故障的服务器,并将流量转发到其他正常运行的后端服务器,确保业务不中断,例如官网,计费业务,Web业务等。 使用SLB跨可用区特性实现业务容灾部署 对可靠性和容灾有很高要求的业务,SLB可将流量跨可用区进行分发,建立实时的业务容灾部署。即使出现某个可用区网络故障,SLB仍可将流量转发到其他可用区的后端服务器进行处理,例如银行业务,警务业务,大型应用系统等。
  • 功能介绍 数据库管理 WiseDBA为用户提供统一的数据库管理平台,支持用户级的管理、监控、可视化的数据库交互等功能,为用户节省50%以上的管理成本,提高数据库运维效率。 数据查询 数据查询工具可以帮助业务简化现网的SQL查询流程,避免SRE直接操作数据库。 SQL变更 SQL变更工具可以帮助业务简化现网的SQL变更流程。 实时诊断 WiseDBA为数据库实例提供运维全生命的智能分析服务,让用户既可以直观地感知数据库实例的实时运行状况,也可以定位实时异常,并根据WiseDBA建议进行系统优化。
  • 词典概述 词典用于定义停用词(stop words),即全文检索时不搜索哪些词。 词典还可以用于对同一词的不同形式进行规范化,这样同一个词的不同派生形式都可以进行匹配。规范化后的词称为词位(lexeme)。 除了提高检索质量外,词的规范化和删除停用词可以减少文档tsvector格式的大小, 从而提高性能。词的规范化和删除停用词并不总是具有语言学意义,用户可以根据应用环境在词典定义文件中自定义规范化和删除规则。 一个词典是一个程序,接收标记(token)作为输入,并返回: 如果token在词典中已知,返回对应lexeme数组(注意,一个标记可能对应多个lexeme)。 一个lexeme。一个新token会代替输入token被传递给后继词典(当前词典可被称为过滤词典)。 如果token在词典中已知,但它是一个停用词,返回空数组。 如果词典不能识别输入的token,返回NULL。 GaussDB (DWS)提供了多种语言的预定义词典,同时提供了五种预定义的词典模板,分别是Simple,Synonym,Thesaurus,Ispell,和Snowball,可用于创建自定义参数的新词典。 在使用全文检索时,建议用户: 可以在文本搜索配置中定义一个解析器,以及一组用于处理该解析器的输出标记词典。对于解析器返回的每个标记类型,可以在配置中指定不同的词典列表进行处理。当解析器输出一种类型的标记后,在对应列表的每个词典中会查阅该标记,直到某个词典识别它。如果它被识别为一个停用词, 或者没有任何词典识别,该token将被丢弃,即不被索引或检索到。通常情况下,第一个返回非空结果的词典决定了最终结果,后继词典将不会继续处理。但是一个过滤类型的词典可以依据规则替换输入token,然后将替换后的token传递给后继词典进行处理。 配置词典列表的一般规则是,第一个位置放置一个应用范围最小的、最具体化定义的词典,其次是更一般化定义的词典, 最后是一个普适定义的词典,比如Snowball词干词典或Simple词典。在下面例子中,对于一个针对天文学的文本搜索配置astro_en,可以定义标记类型asciiword(ASCII词)对应的词典列表为:天文术语的Synonym同义词词典, Ispell英语词典和Snowball英语词干词典。 12 ALTER TEXT SEARCH CONFIGURATION astro_en ADD MAPPING FOR asciiword WITH astro_syn, english_ispell, english_stem; 过滤类型的词典可以放置在词典列表中除去末尾的任何地方,放置在末尾时是无效的。使用这些词典对标记进行部分规范化,可以有效简化后继词典的处理。 父主题: 词典
  • 示例 Synonym词典可用于解决语言学相关问题,例如,为避免使单词"Paris"变成"pari",可在Synonym词典文件中定义一行"Paris paris",并将该词典放置在预定义的english_stem词典之前。 认证用的AK和SK硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全。 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738394041 SELECT * FROM ts_debug('english', 'Paris'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+----------------+--------------+--------- asciiword | Word, all ASCII | Paris | {english_stem} | english_stem | {pari}(1 row)CREATE TEXT SEARCH DICTIONARY my_synonym ( TEMPLATE = synonym, SYNONYMS = my_synonyms, FILEPATH = 'obs://bucket01/obs.example.com accesskey=xxxxx secretkey=xxxxx region=cn-north-1');ALTER TEXT SEARCH CONFIGURATION english ALTER MAPPING FOR asciiword WITH my_synonym, english_stem;SELECT * FROM ts_debug('english', 'Paris'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+---------------------------+------------+--------- asciiword | Word, all ASCII | Paris | {my_synonym,english_stem} | my_synonym | {paris}(1 row)SELECT * FROM ts_debug('english', 'paris'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+---------------------------+------------+--------- asciiword | Word, all ASCII | Paris | {my_synonym,english_stem} | my_synonym | {paris}(1 row)ALTER TEXT SEARCH DICTIONARY my_synonym ( CASESENSITIVE=true);SELECT * FROM ts_debug('english', 'Paris'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+---------------------------+------------+--------- asciiword | Word, all ASCII | Paris | {my_synonym,english_stem} | my_synonym | {paris}(1 row)SELECT * FROM ts_debug('english', 'paris'); alias | description | token | dictionaries | dictionary | lexemes -----------+-----------------+-------+---------------------------+------------+--------- asciiword | Word, all ASCII | Paris | {my_synonym,english_stem} | my_synonym | {pari}(1 row) 其中,同义词词典文件全名为my_synonyms.syn,所在目录为 'obs://bucket01/obs.example.com accesskey=xxxxx secretkey=xxxxx region=cn-north-1'。关于创建词典的语法和更多参数,请参见CREATE TEXT SEARCH DICTIONARY。 星号(*)可用于词典文件中的同义词结尾,表示该同义词是一个前缀。在to_tsvector()中该星号将被忽略,但在to_tsquery()中会匹配该前缀并对应输出结果(参照处理tsquery一节)。 假设词典文件synonym_sample.syn内容如下: 12345 postgres pgsqlpostgresql pgsql postgre pgsql gogle googl indices index* 创建并使用词典: 1 2 3 4 5 6 7 8 91011121314151617181920212223242526272829303132333435363738 CREATE TEXT SEARCH DICTIONARY syn ( TEMPLATE = synonym, SYNONYMS = synonym_sample);SELECT ts_lexize('syn','indices'); ts_lexize ----------- {index}(1 row)CREATE TEXT SEARCH CONFIGURATION tst (copy=simple);ALTER TEXT SEARCH CONFIGURATION tst ALTER MAPPING FOR asciiword WITH syn;SELECT to_tsvector('tst','indices'); to_tsvector ------------- 'index':1(1 row)SELECT to_tsquery('tst','indices'); to_tsquery ------------ 'index':*(1 row)SELECT 'indexes are very useful'::tsvector; tsvector --------------------------------- 'are' 'indexes' 'useful' 'very'(1 row)SELECT 'indexes are very useful'::tsvector @@ to_tsquery('tst','indices'); ?column? ---------- t(1 row)
  • pg_stat_get_stream_replications() 描述:显示当前DN上所有的复制统计信息。 返回值类型:record 函数返回信息如下: 表5 pg_stat_get_stream_replications() 名称 类型 描述 local_role text 本地的角色 static_connections integer 连接统计 db_state text 数据库状态 detail_information text 详细信息 示例: 12345 SELECT * FROM pg_stat_get_stream_replications(); local_role | static_connections | db_state | detail_information------------+--------------------+----------+-------------------- Normal | 0 | Normal | Normal(1 row)
  • pg_stat_xlog_space() 描述:显示当前DN上Xlog空间使用信息。 返回值类型:record 函数返回信息如下: 表6 pg_stat_xlog_space() 名称 类型 描述 xlog_files bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的数目。 xlog_size bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的文件大小之和,单位为MB。 other_size bigint pg_xlog目录下backup、archive_status等子目录文件的大小之和,单位为MB。 示例: 12345 SELECT * FROM pg_stat_xlog_space(); xlog_files | xlog_size | other_size------------+-----------+------------ 79 | 1264 | 0(1 row)
  • pgxc_stat_xlog_space() 描述:显示所有主DN上Xlog空间使用信息。 返回值类型:record 函数返回信息如下: 表7 pgxc_stat_xlog_space() 名称 类型 描述 node_name name 节点名称 xlog_files bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的数目。 xlog_size bigint pg_xlog目录下,去除backup、archive_status等子目录,所有识别为xlog文件的文件大小之和,单位为MB。 other_size bigint pg_xlog目录下backup、archive_status等子目录文件的大小之和,单位为MB。 示例: 1 2 3 4 5 6 7 8 910 SELECT * FROM pgxc_stat_xlog_space(); node_name | xlog_files | xlog_size | other_size--------------+------------+-----------+------------ dn_6001_6002 | 73 | 1168 | 0 dn_6003_6004 | 73 | 1168 | 0 dn_6005_6006 | 73 | 1168 | 0 cn_5003 | 79 | 1264 | 0 cn_5001 | 72 | 1152 | 0 cn_5002 | 73 | 1168 | 0(6 rows)
  • pg_stat_get_wal_receiver() 描述:显示当前DN上所有的WAL复制接收线程的统计信息。 返回值类型:record 函数返回信息如下: 表4 pg_stat_get_wal_receiver() 名称 类型 描述 receiver_pid integer 当前receiver的pid local_role text 本地的角色 peer_role text 远端的角色 peer_state text 远端的状态 state text 当前receiver的复制状态 sender_sent_location text 发送端发送的LSN位置 sender_write_location text 发送端write的LSN位置 sender_flush_location text 发送端flush的LSN位置 sender_replay_location text 发送端replay的LSN位置 receiver_received_location text 接收端received的LSN位置 receiver_write_location text 接收端write的LSN位置 receiver_flush_location text 接收端flush的LSN位置 receiver_replay_location text 接收端replay的LSN位置 sync_percent text 同步百分比 channel text WALReceiver的信道信息
  • pg_logical_slot_peek_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value') 描述:解码并不推进流复制槽(下次解码可以再次获取本次解出的数据)。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 LSN 日志的LSN,表示只解码小于等于此LSN的日志。 取值范围:字符串(LSN,格式为xlogid/xrecoff),如'1/2AAFC60'。为NULL时表示不对解码截止的日志位置做限制。 upto_nchanges 解码条数(包含begin和commit)。假设一共有三条事务,分别包含3、5、7条记录,如果upto_nchanges为4,那么会解码出前两个事务共8条记录。解码完第二条事务时发现解码条数记录大于等于upto_nchanges,会停止解码。 取值范围:非负整数。 LSN和upto_nchanges中任一参数达到限制,解码都会结束。 options:此项为可选参数。 include-xids 解码出的data列是否包含xid信息。 取值范围:0或1,默认值为1。 0:设为0时,解码出的data列不包含xid信息。 1:设为1时,解码出的data列包含xid信息。 skip-empty-xacts 解码时是否忽略空事务信息。 取值范围:0或1,默认值为0。 0:设为0时,解码时不忽略空事务信息。 1:设为1时,解码时会忽略空事务信息。 include-timestamp 解码信息是否包含commit时间戳。 取值范围:0或1,默认值为0。 0:设为0时,解码信息不包含commit时间戳。 1:设为1时,解码信息包含commit时间戳。 返回值类型:text, uint, text 备注:函数返回解码结果,每一条解码结果包含三列,对应上述返回值类型,分别表示LSN位置、xid和解码内容。
  • pg_logical_slot_get_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value') 描述:解码并推进流复制槽。 参数说明: 与pg_logical_slot_peek_changes一致,详细内容请参见pg_logical_slot_peek_changes('slot_name', 'LSN', upto_nchanges, 'options_name', 'options_value')。
  • pg_stat_get_wal_senders() 描述:显示当前DN上所有的WAL复制发送线程的统计信息。 返回值类型:record 函数返回信息如下: 表3 pg_stat_get_wal_senders()字段 名称 类型 描述 pid bigint 线程pid sender_pid integer 当前sender的pid local_role text 本地的角色 peer_role text 对端的角色 peer_state text 对端的状态 state text 当前sender的复制状态 catchup_start timestamp with time zone catchup启动的时间 catchup_end timestamp with time zone catchup结束的时间 sender_sent_location text 发送端发送的LSN位置 sender_write_location text 发送端write的LSN位置 sender_flush_location text 发送端flush的LSN位置 sender_replay_location text 发送端replay的LSN位置 receiver_received_location text 接收端received的LSN位置 receiver_write_location text 接收端write的LSN位置 receiver_flush_location text 接收端flush的LSN位置 receiver_replay_location text 接收端replay的LSN位置 sync_percent text 同步百分比 sync_state text 同步状态(异步复制,同步复制,还是潜在同步者) sync_priority integer 同步复制的优先级(0表示异步) sync_most_available text 在备机同步失败时,是否阻塞主机 channel text WALSender的信道信息
  • pg_create_physical_replication_slot ('slot_name', isDummyStandby) 描述:创建物理复制槽。 参数说明: slot_name 流复制槽名称。 取值范围:字符串,不支持除字母,数字,以及(_?-.)以外的字符。 isDummyStandby 复制槽是否为从备。 取值范围:布尔值,支持true或false。 返回值类型:name, text 备注:第一个返回值表示slot_name,第二个返回值表示该物理复制槽解码的起始LSN位置。
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全