云服务器内容精选

  • 响应方案 针对以上背景, 安全云脑 提供的HSS文件隔离查杀剧本,自动隔离查杀恶意软件。 “HSS文件隔离查杀”剧本已匹配“HSS文件隔离查杀”流程,当有恶意软件和勒索软件告警生成时,通过判断受攻击资产HSS防护版本,版本为专业版或者高于专业版但未开启自动隔离查杀的就满足隔离查杀条件,人工审批进行隔离查杀,就会通过HSS文件隔离查杀进行告警处置,隔离软件成功,关闭告警。隔离失败,添加手动处理的评论,提示需要进行手动操作。 图1 HSS文件隔离查杀
  • 事件响应 获取、保护、记录证据。 根据您华为云环境的配置,通过主机安全服务配置可通过AV检测和HIPS检测帮助您发现资产中的安全威胁,检测到恶意软件和勒索软件。 可通过SSH等方法访问云服务器,查看实例状态和监控等信息,查看是否有异常。或者通过其他方式收到攻击信息或勒索信息请求发现潜在威胁。 一旦确认攻击是事件,需要评估受影响范围、受攻击机器和受影响业务及数据信息。 通过安全云脑“转事件”能力,持续跟踪对应事件,记录所有涉及事件信息。详细操作请参见告警转事件。 同时可通过日志信息溯源,通过“安全分析”能力审核所有相关日志信息,在“事件管理”中记录存档,便于后续跟踪运营。 控制事件。 通过告警和日志信息,确定攻击类型、影响主机和业务进程信息。 通过HSS文件隔离查杀脚本对涉及进程软件进行进程查杀、软件隔离操作。降低后续影响。 排查感染范围,有感染风险都需要进行排查,一旦有沦陷及时处理控制。 同时也可使用其他剧本流程进行风险控制,比如“主机隔离”,通过安全组策略,从访问控制方面隔离受感染机器,隔离网络传播风险。 消除事件。 评估受影响机器是否需要加固恢复。如果已经沦陷,需要通过溯源结果加固恢复机器。如安全凭证泄露造成的攻击,则删除任何未经授权的 IAM 用户、角色和策略,并吊销凭据等操作进行主机加固。 对受感染机器可以进行风险排查,排查是否有漏洞、过时的软件、未修补的漏洞等,这些都可能会造成后续机器的持续沦陷,可以通过“漏洞管理”排查和修复处理对应机器漏洞;排查是否有风险配置,可以通过“基线检查”排查机器配置,针对有风险配置进行及时处理修复。 评估影响范围,如果已经有其他机器沦陷,需要同步处理所有影响主机。 从事故中恢复。 确定从备份执行的所有还原操作的还原点。 查看备份策略,以确定是否可以恢复所有对象和文件,这取决于在资源上应用的生命周期策略。 使用取证方法确认数据在恢复之前是安全的,然后从备份中恢复数据,或者恢复到E CS 实例的早期快照。 如果您已成功使用任何开源解密工具恢复数据,请从实例中删除该数据,并执行必要的分析以确认数据是安全的。然后,恢复实例,终止或隔离实例并创建新的实例,并将数据还原至新实例中。 如果从备份恢复或解密数据都不可行,请评估在新环境中重新开始的可能性。 事故后活动。 通过整个告警处理流程中分析告警发生详细信息,持续运营优化模型,提升模型告警准确率。如判断是业务相关的,无风险的告警可以直接通过模型进行筛选。 通过溯源告警发生,更好的了解事件的整个流程,持续优化资产防护策略,降低资源风险,收缩攻击面。 通过告警事件处理,结合自己业务实际场景,优化自动化处理剧本流程,例如,通过分析之后告警准确率提升可替换人工审核策略,以全自动化替代,提升处理效率,更快速的对风险进行处理。 风险分析可结合所有同类恶意软件和勒索软件攻击点,进行风险前置,在未发生事件之前进行风险控制处理。
  • 背景说明 恶意软件攻击是指通过电子邮件、远程下载、恶意广告等多种手段,向用户传播恶意软件(如病毒、蠕虫、木马、勒索软件等),并在目标主机上执行恶意程序,从而实现对远程主机的控制、攻击网络系统、窃取敏感信息或进行其他恶意行为。这类攻击对计算机系统、网络和个人设备的安全构成了严重威胁,可能导致数据泄露、系统崩溃、个人隐私泄露、金融损失以及其他安全风险。 针对以上问题,通过程序特征、行为检测,结合AI图像指纹算法以及云查杀,能有效识别后门、木马、挖矿软件、蠕虫和病毒等恶意程序,检测出主机中未知的恶意程序和病毒变种,也可检测来自网页、软件、邮件、存储介质等介质捆绑、植入的勒索软件。因此,当有此类攻击发生的时候如何预防降低风险就至关重要。 本文档就恶意软件和勒索软件隔离查杀进行详细介绍。
  • 响应方案 攻击者攻击 域名 成功之后会对后端服务器进行攻击,因此针对此链路攻击的路径,安全云脑提供了攻击链路分析告警通知剧本。当攻击者通过层层攻击到主机之后,进行告警,通知运营人员进行处置。 “攻击链路分析告警通知”剧本已匹配“攻击链路分析告警通知”流程,该流程需要使用 消息通知 服务(Simple Message Notification, SMN )来创建安全云脑告警通知主题,并完成订阅即可接收到告警通知。 “攻击链路分析告警通知”流程是通过资产关联,查询对应HSS告警影响资产所关联的网站资产列表,流程预置默认查询最多3条网站资产。 如果有关联网站资产,则每条网站资产查询3小时前到现在这个时间段内对应的WAF告警数据(告警类型为XSS、SQL注入、命令注入、本地文件包含、远程文件包含、Webshell、漏洞攻击),同样的,最多查询3条告警数据。 如果有对应WAF告警,则将WAF告警数据与本条HSS告警数据进行关联,并通过SMN通知到邮箱。 图1 攻击链路分析告警通知
  • 背景说明 攻击链路在网络安全领域中是一个重要的概念,它主要指的是攻击者为了达成攻击目的,在目标网络或系统中采取的一系列攻击步骤和路径。这些步骤和路径构成了攻击链路,通过它们,攻击者能够逐步深入目标系统,最终实现其攻击目标。 攻击链路对目标网络或系统的危害是巨大的。一旦攻击者成功构建了攻击链路,并突破了目标系统的防御措施,就可以对目标系统进行任意操作,包括窃取敏感信息、破坏系统数据、瘫痪系统服务等。这些危害不仅会导致经济损失,还可能对国家安全和社会稳定造成严重影响。
  • 事件响应 获取、保护、记录证据。 根据您华为云环境的配置,通过主机安全服务(HSS)以及 Web应用防火墙 (WAF)来源检测相关类型的告警。 可通过SSH等方法访问云服务器,查看实例状态和监控等信息,查看是否有异常。或者通过其他方式收到的告警信息。 一旦确认攻击是事件,需要评估受影响范围、攻击机器和受影响业务及数据信息。 通过安全云脑“转事件”能力,持续跟踪对应事件,记录所有涉及事件信息。详细操作请参见告警转事件。 同时可通过日志信息溯源,通过“安全分析”能力审核所有相关日志信息,在“事件管理”中记录存档,便于后续跟踪运营。 控制事件。 通过告警和日志信息,确定攻击类型、影响主机和业务进程信息。 通过隔离查杀,策略阻断等脚本对涉及进程软件进行进程查杀、软件隔离等操作,降低后续影响。 排查感染范围,有感染风险都需要进行排查,一旦有沦陷及时处理控制。 同时也可使用其他剧本流程进行风险控制,比如“主机隔离”,通过安全组策略,从访问控制方面隔离受感染机器,隔离网络传播风险。 消除事件。 评估受影响机器是否需要加固恢复。如果已经沦陷,需要通过溯源结果加固恢复机器。如安全凭证泄露造成的攻击,则删除任何未经授权的IAM用户、角色和策略,并吊销凭据等操作进行主机加固。 对受感染机器可以进行风险排查,排查是否有漏洞、过时的软件、未修补的漏洞等,这些都可能会造成后续机器的持续沦陷,可通过“漏洞管理”排查和修复处理对应机器漏洞;排查是否有风险配置,可以通过“基线检查”排查机器配置,针对有风险配置进行及时处理修复。 评估影响范围,如果已经有其他机器沦陷,需要同步处理所有影响主机。 从事故中恢复。 确定从备份执行的所有还原操作的还原点。 查看备份策略,以确定是否可以恢复所有对象和文件,这取决于在资源上应用的生命周期策略。 使用取证方法确认数据在恢复之前是安全的,然后从备份中恢复数据,或者恢复到ECS实例的早期快照。 如果您已成功使用任何开源解密工具恢复数据,请从实例中删除该数据,并执行必要的分析以确认数据是安全的。然后,恢复实例,终止或隔离实例并创建新的实例,并将数据还原至新实例中。 如果从备份恢复或解密数据都不可行,请评估在新环境中重新开始的可能性。 事故后活动。 通过整个告警处理流程中分析告警发生详细信息,持续运营优化模型,提升模型告警准确率。如判断是业务相关的,无风险的告警可以直接通过模型进行筛选。 通过溯源告警发生,更好的了解事件的整个流程,持续优化资产防护策略,降低资源风险,收缩攻击面。 通过告警事件处理,结合自己业务实际场景,优化自动化处理剧本流程,例如,通过分析之后告警准确率提升可替换人工审核策略,以全自动化替代,提升处理效率,更快速的对风险进行处理。 通过风险分析,结合攻击链路告警分析,进行风险前置,在未发生事件之前进行风险控制处理。
  • 事件类型:勒索软件攻击 勒索软件(Ransomware)又称勒索病毒,是一种特殊的恶意软件,属于“阻断访问式攻击”(denial-of-access attack)的一种。它通过技术手段限制受害者访问自己的系统或系统内的数据,如文档、邮件、数据库、源代码等,以此达到勒索钱财的目的。 一旦勒索软件对系统攻击成功后,再对系统实行中断攻击并减轻损害的措施是有限,并且极具挑战性的。因此,关注预防措施以减少此类攻击显得至关重要。 本文档介绍了一系列旨在有效管理和应对勒索软件攻击的步骤和策略。
  • 事件响应流程 获取、保存、记录证据。 根据您的华为云环境的配置情况,您可能通过各种来源了解到潜在的勒索软件事件: 某IT员工反馈,通过SSH及其他类似方式无法访问ECS实例。 ECS实例创建正常,华为云的 云监控 (Cloud Eye)或其他监控工具也没有上报告警,但依然无法访问ECS实例。 由ECS实例的异常指标或异常日志触发生成一个工单在您的工单系统中。 ECS实例在华为云控制台或云监控的告警中上报网络异常问题。 攻击者通过其他通信渠道(如电子邮件)收到勒索软件的请求。 通过华为 云安全 服务或其他安全工具发现ECS实例遭受到攻击。 您的华为云或者其他第三方监控系统发出告警或显示指标异常。 当确认某个事件为安全事件后,评估其影响范围至关重要,包括受影响资源的数量和所涉及数据的敏感性。 排查是否有任何已知事件可能导致服务中断或影响实例指标,例如,由于正在进行的事件导致云监控中的网络指标增加。 使用云监控或其他应用程序性能监控工具将记录的应用程序的性能基线指标与当前异常指标进行对比,判断是否存在异常行为。 确定存储在ECS实例、OBS桶或其他存储中的数据的分类级别。 请确保已为该事件创建工单。如果未创建,请手动创建一个。 如果为已有工单,请确定当前指示问题的告警或指标是什么。 如果工单是由告警或指标触发自动生成的工单,可明确其自动生成工单的什么的原因;如果工单非自动生成,则记录导致识别问题的告警或通知。确认服务中断是由已知事件还是其他原因造成的,如果不能判断,则记录攻击的实际媒介。 使用日志搜索来确定勒索攻击发生的时间。 可以使用华为云的 云审计 服务(Cloud Trace Service)服务,它提供对各种云资源操作记录的收集、存储和查询功能。 确定并记录对最终用户的影响及其体验。 如果用户受到影响,请在工单中记录导致攻击事件的详细步骤,以帮助识别攻击媒介并制定适当的缓解策略。 根据您企业/组织的事件响应计划确定事件涉及的角色。通知相关角色,包括法务人员、技术团队和开发人员,并确保他们被添加到工单和WarRoom中持续响应该事件。 确保您的组织的法律顾问了解并参与到事件的内部响应和外部沟通中,并将负责公共或外部沟通的同事添加到工单中,以便他们能够及时履行其沟通职责。如果地方或联邦法规要求报告此类事件,请通知有关当局,并向其法律顾问或执法部门寻求关于收集证据和保存监管链的指导。如果法规没有要求,向开放数据库、政府机构或非政府组织报告此类事件也可能有助于推进响应此事件。 控制事件。 尽早检测异常用户行为或网络活动是减少勒索软件事件影响的关键。可以参考以下步骤来帮助您控制事件。如果以下步骤适用,请与您的企业/组织的法律和合规团队合作,采取任何必要的响应措施,并继续进行事件响应流程。 确定攻击事件中涉及的勒索软件的类型。常见的勒索软件类型如下: 加密勒索软件:加密文件和对象。 锁定勒索软件:锁定对设备的访问。 其他类型:新类型或以前未记载的类型。 受攻击影响的工作负载,对于已识别出的与其相关联的华为云资源,可以通过修改安全组、OBS桶策略或相关身份和访问管理策略来隔离网络或互联网连接,以最大限度地减少感染传播的机会,或最大限度地减少攻击者访问这些资源的机会。 请注意,由于连接跟踪,有时修改安全组可能不会达到预期效果。 评估ECS实例是否需要恢复。如果该实例属于弹性伸缩组,则请从组中移除该实例。此外,如果事件与主机操作系统中的漏洞有关,请更新系统并确保已修补漏洞。 通过云审计服务查看操作日志,查看是否存在未经授权的活动,例如,创建未经授权的IAM用户、策略、角色或临时安全凭证。如果有,请删除任何未经授权的IAM用户、角色和策略,并撤销所有临时凭据。 如果攻击媒介是由未修补的软件、操作系统更新、过期的恶意软件或防病毒工具造成的,请确保所有ECS实例都更新到最新版本的操作系统,所有软件包和补丁程序都是最新的,并且所有ECS实例上的病毒特征码和定义文件都是最新的。您可以通过如下方式进行处理:针对可变架构,请立即进行修补;针对不可变架构,请进行重新部署。 根据5中的更新,删除被识别为有感染风险的所有剩余资源(可能访问了下载勒索软件的同一媒介,无论是通过电子邮件、访问受感染的网站,还是其他方式)。对于通过弹性伸缩管理的资源,重点识别攻击媒介,并采取措施防止其他资源通过同一媒介受到感染。 消除事件。 评估事件的影响是否仅限于环境的特定部分。如果能从备份或快照中恢复被勒索的数据,请参考备份或快照进行恢复。 请注意,在隔离的环境下调查事件以进行根本原因分析,对于实施控制措施以防止将来发生类似事件具有极大价值。 考虑使用最新的防病毒或防恶意软件来消除勒索软件。 请谨慎此操作,因为此操作可能会向攻击者发出警报。建议在隔离的取证环境中查看被锁定或加密的对象,例如,从受感染的ECS实例中删除网络访问权限。 删除在取证分析过程中识别到的所有恶意软件,并识别入侵指标。 如果已确定勒索软件毒种,请检查是否有可用的第三方解密工具或其他可能有助于解密数据的在线资源。 从事故中恢复。 确定从备份执行的所有还原操作的还原点。 查看备份策略,以确定是否可以恢复所有对象和文件,这取决于在资源上应用的生命周期策略。 使用取证方法确认数据在恢复之前是安全的,然后从备份中恢复数据,或者恢复到ECS实例的早期快照。 如果您已成功使用任何开源解密工具恢复数据,请从实例中删除该数据,并执行必要的分析以确认数据是安全的。然后,恢复实例,终止或隔离实例并创建新的实例,并将数据还原至新实例中。 如果从备份恢复或解密数据都不可行,请评估在新环境中重新开始的可能性。 事故后活动。 将在模拟和现场事件中吸取的经验教训记录并应用到后续的流程和程序中,可以使受害方更好地了解事件是如何在系统配置和流程中发生的(例如,哪里存在弱点、哪里的自动化可能出现故障、哪里缺乏可见性),以及如何加强其整体安全态势。 如果您已经确定了最初的攻击媒介或进入点,请如何降低风险再次发生的最佳方法。 例如,如果恶意软件最初通过一个未修补的面向公众的ECS实例进入,并且您已将缺失的补丁程序应用于所有当前实例,请考虑如何改进补丁程序管理流程,旨在更快速和一致地测试和应用补丁程序,以防止将来出现类似问题。 如果您已经制定了解决特定威胁的技术步骤,请评估当检测到相关威胁时自动执行这些步骤的几率。使用自动化处理,可以帮助更快地减轻威胁,从而最大限度地减少影响的范围和严重性。 向响应过程中的所有角色收集其获得的经验教训,并根据需要更新您的事件响应计划、灾难恢复计划和本响应方案。同时,酌情考虑和资助新的技术能力和人员技能,以弥补已发现的差距。
  • 剧本说明 安全云脑提供的高危漏洞自动通知剧本,当新增主机漏洞,且等级为高危时,自动通知运营人员。 “高危漏洞自动通知”剧本已匹配“高危漏洞自动通知”流程,该流程需要使用消息通知服务(Simple Message Notification,SMN)来创建安全云脑告警通知主题,并完成订阅即可接收到告警通知。 当新增HSS的高危漏洞时,会通过SMN服务对运营人员发送漏洞通知。 图1 高危漏洞自动通知流程
  • 剧本说明 安全云脑提供的自动更改告警名称剧本,支持用户按照不同维度自定义告警名称。 “自动更改告警名称”剧本已匹配“自动更改告警名称”流程,配置该剧本,需要对流程及流程中的插件进行适配。 “自动更改告警名称”流程共四个插件节点:获取告警类型id、获取告警详情、SecMasterBiz、告警名称更新。本流程只需配置SecMasterBiz插件节点,该节点用来定制告警名称的。 图1 自动更改告警名称流程
  • 保留关键字 目前,由于SecMaster SQL特性功能还在不断更新完善中,其中有一些字符串的组合已被预留为关键字在后续功能特性中使用,因此,如果您需要使用这些字符串作为字段名,请使用反引号将字段名进行包装,例如,`value`, `count`。 具体保留关键字如下: 表1 保留关键字 首字母 安全云脑保留关键字 A A, ABS, ABSOLUTE, ACTION, ADA, ADD, ADMIN, AFTER, ALL, ALLOCATE, ALLOW, ALTER, ALWAYS, AND, ANALYZE, ANY, ARE, ARRAY, AS, ASC, ASENSITIVE, ASSERTION, ASSIGNMENT, ASYMMETRIC, AT, ATOMIC, ATTRIBUTE, ATTRIBUTES, AUTHORIZATION, AVG B BEFORE, BEGIN, BERNOULLI, BETWEEN, BIGINT, BINARY, BIT, BLOB, BOOLEAN, BOTH, BREADTH, BY, BYTES C C, CALL, CALLED, CARDINALITY, CASCADE, CASCADED, CASE, CAST, CATA LOG , CATALOG_NAME, CEIL, CEILING, CENTURY, CHAIN, CHAR, CHARACTER, CHARACTERIS TICS , CHARACTERS, CHARACTER_LENGTH, CHARACTER_SET_CATALOG, CHARACTER_SET_NAME, CHARACTER_SET_SCHEMA, CHAR_LENGTH, CHECK, CLASS_ORIGIN, CLOB, CLOSE, COALESCE, COBOL, COLLATE, COLLATION, COLLATION_CATALOG, COLLATION_NAME, COLLATION_SCHEMA, COLLECT, COLUMN, COLUMNS, COLUMN_NAME, COMMAND_FUNCTION, COMMAND_FUNCTION_CODE, COMMIT, COMMITTED, CONDITION, CONDITION_NUMBER, CONNECT, CONNECTION, CONNECTION_NAME, CONSTRAINT, CONSTRAINTS, CONSTRAINT_CATALOG, CONSTRAINT_NAME, CONSTRAINT_SCHEMA, CONSTRUCTOR, CONTAINS, CONTINUE, CONVERT, CORR, CORRESPONDING, COUNT, COVAR_POP, COVAR_SAMP, CREATE, CROSS, CUBE, CUME_DIST, CURRENT, CURRENT_CATALOG, CURRENT_DATE, CURRENT_DEFAULT_TRANSFORM_GROUP, CURRENT_PATH, CURRENT_ROLE, CURRENT_SCHEMA, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_TRANSFORM_GROUP_FOR_TYPE, CURRENT_USER, CURSOR, CURSOR_NAME, CYCLE D DATA, DATABASE, DATE, DATETIME_INTERVAL_CODE, DATETIME_INTERVAL_PRECISION, DAY, DEALLOCATE, DEC, DECADE, DECIMAL, DECLARE, DEFAULT, DEFAULTS, DEFERRABLE, DEFERRED, DEFINED, DEFINER, DEGREE, DELETE, DENSE_RANK, DEPTH, DEREF, DERIVED, DESC, DESCRIBE, DESCRIPTION, DESCRIPTOR, DETERMINISTIC, DIAGNOSTICS, DISALLOW, DISCONNECT, DISPATCH, DISTINCT, DOMAIN, DOUBLE, DOW, DOY, DROP, DYNAMIC, DYNAMIC_FUNCTION, DYNAMIC_FUNCTION_CODE E EACH, ELEMENT, ELSE, END, END-EXEC, EPOCH, EQUALS, ESCAPE, EVERY,EXCEPT, EXCEPTION, EXCLUDE, EXCLUDING, EXEC, EXECUTE, EXISTS, EXP, EXPLAIN, EXTEND, EXTERNAL, EXTRACT F FALSE, FETCH, FILTER, FINAL, FIRST, FIRST_VALUE, FLOAT, FLOOR, FOLLOWING, FOR, FOREIGN, FORTRAN, FOUND, FRAC_SECOND, FREE, FROM, FULL, FUNCTION, FUSION G G, GENERAL, GENERATED, GET, GLOBAL, GO, GOTO, GRANT, GRANTED, GROUP, GROUPING H HAVING, HIERARCHY, HOLD, HOUR I IDENTITY, IMMEDIATE, IMPLEMENTATION, IMPORT, IN, INCLUDING, INCREMENT, INDICATOR, INITIALLY, INNER, INOUT, INPUT, INSENSITIVE, INSERT, INSTANCE, INSTANTIABLE, INT, INTEGER, INTERSECT, INTERSECTION, INTERVAL, INTO, INVOKER, IS, ISOLATION J JAVA, JOIN K K, KEY, KEY_MEMBER, KEY_TYPE L LABEL, LANGUAGE, LARGE, LAST, LAST_VALUE, LATERAL, LEADING, LEFT, LENGTH, LEVEL, LIBRARY, LIKE, LIMIT, LN, LOCAL, LOCALTIME, LOCALTIMESTAMP, LOCATOR, LOWER M M, MAP, MATCH, MATCHED, MAX, MAXVALUE, MEMBER, MERGE, MESSAGE_LENGTH, MESSAGE_OCTET_LENGTH, MESSAGE_TEXT, METHOD, MICROSECOND, MILLENNIUM, MIN, MINUTE, MINVALUE, MOD, MODIFIES, MODULE, MODULES, MONTH, MORE, MULTISET, MUMPS N NAME, NAMES, NATIONAL, NATURAL, NCHAR, NCLOB, NESTING, NEW, NEXT, NO, NONE, NORMALIZE, NORMALIZED, NOT, NULL, NULLABLE, NULLIF, NULLS, NUMBER, NUMERIC O OBJECT, OCTETS, OCTET_LENGTH, OF, OFFSET, OLD, ON, ONLY, OPEN, OPTION, OPTIONS, OR, ORDER, ORDERING, ORDINALITY, OTHERS, OUT, OUTER, OUTPUT, OVER, OVERLAPS, OVERLAY, OVERRIDING P PAD, PA RAM ETER, PARAMETER_MODE, PARAMETER_NAME, PARAMETER_ORDINAL_POSITION, PARAMETER_SPECIFIC_CATALOG, PARAMETER_SPECIFIC_NAME, PARAMETER_SPECIFIC_SCHEMA, PARTIAL, PARTITION, PASCAL, PASSTHROUGH, PATH, PERCENTILE_CONT, PERCENTILE_DISC, PERCENT_RANK, PLACING, PLAN, PLI, POSITION, POWER, PRECEDING, PRECISION, PREPARE, PRESERVE, PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC Q QUARTER R RANGE, RANK, RAW, READ, READS, REAL, RECURSIVE, REF, REFEREN CES , REFERENCING, REGR_AVGX, REGR_AVGY, REGR_COUNT, REGR_INTERCEPT, REGR_R2, REGR_SLOPE, REGR_SXX, REGR_SXY, REGR_SYY, RELATIVE, RELEASE, REPEATABLE, RESET, RESTART, RESTRICT, RESULT, RETURN, RETURNED_CARDINALITY, RETURNED_LENGTH, RETURNED_OCTET_LENGTH, RETURNED_SQLSTATE, RETURNS, REVOKE, RIGHT, ROLE, ROLLBACK, ROLLUP, ROUTINE, ROUTINE_CATALOG, ROUTINE_NAME, ROUTINE_SCHEMA, ROW, ROWS, ROW_COUNT, ROW_NUMBER S SAVEPOINT, SCALE, SCHEMA, SCHEMA_NAME, SCOPE, SCOPE_CATALOGS, SCOPE_NAME, SCOPE_SCHEMA, SCROLL, SEARCH, SECOND, SECTION, SECURITY, SELECT, SELF, SENSITIVE, SEQUENCE, SERIALIZABLE, SERVER, SERVER_NAME, SESSION, SESSION_USER, SET, SETS, SIMILAR, SIMPLE, SIZE, SMALLINT, SOME, SOURCE, SPACE, SPECIFIC, SPECIFICTYPE, SPECIFIC_NAME, SQL, SQLEXCEPTION, SQLSTATE, SQLWARNING, SQL_TSI_DAY, SQL_TSI_FRAC_SECOND, SQL_TSI_HOUR, SQL_TSI_MICROSECOND, SQL_TSI_MINUTE, SQL_TSI_MONTH, SQL_TSI_QUARTER, SQL_TSI_SECOND, SQL_TSI_WEEK, SQL_TSI_YEAR, SQRT, START, STATE, STATEMENT, STATIC, STDDEV_POP, STDDEV_SAMP, STREAM, STRING, STRUCTURE, STYLE, SUBCLASS_ORIGIN, SUBMULTISET, SUBSTITUTE, SUBSTRING, SUM, SYMMETRIC, SYSTEM, SYSTEM_USER T TABLE, TABLESAMPLE, TABLE_NAME, TEMPORARY, THEN, TIES, TIME, TIMESTAMP, TIMESTAMPADD, TIMESTAMPDIFF, TIMEZONE_HOUR, TIMEZONE_MINUTE, TINYINT, TO, TOP_LEVEL_COUNT, TRAILING, TRANSACTION, TRANSACTIONS_ACTIVE, TRANSACTIONS_COMMITTED, TRANSACTIONS_ROLLED_BACK, TRANSFORM, TRANSFO RMS , TRANSLATE, TRANSLATION, TREAT, TRIGGER, TRIGGER_CATALOG, TRIGGER_NAME, TRIGGER_SCHEMA, TRIM, TRUE, TYPE U UESCAPE, UNBOUNDED, UNCOMMITTED, UNDER, UNION, UNIQUE, UNKNOWN, UNNAMED, UNNEST, UPDATE, UPPER, UPSERT, USAGE, USER, USER_DEFINED_TYPE_CATALOG, USER_DEFINED_TYPE_CODE, USER_DEFINED_TYPE_NAME, USER_DEFINED_TYPE_SCHEMA, USING V VALUE, VALUES, VARBINARY, VARCHAR, VARYING, VAR_POP, VAR_SAMP, VERSION, VIEW W WEEK, WHEN, WHENEVER, WHERE, W IDT H_BUCKET, WINDOW, WITH, WITHIN, WITHOUT, WORK, WRAPPER, WRITE X XML Y YEAR Z ZONE 父主题: 数据操作语句DML
  • 示例 根据order_id对数据进行去重,其中proctime为事件时间属性列。 SELECT order_id, user, product, number FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY order_id ORDER BY proctime ASC) as row_num FROM Orders) WHERE row_num = 1;
  • 语法说明 ROW_NUMBER(): 从第一行开始,依次为每一行分配一个唯一且连续的号码。 PARTITION BY col1[, col2...]: 指定分区的列,例如去重的键。 ORDER BY time_attr [asc|desc]: 指定排序的列。所制定的列必须为时间属性。目前仅支持proctime。升序( ASC )排列指只保留第一行,而降序排列( DESC )则指保留最后一行。 WHERE rownum = 1: Flink 需要 rownum = 1 以确定该查询是否为去重查询。
  • Join表函数(UDTF) 功能描述 将表与表函数的结果进行 join 操作。左表(outer)中的每一行将会与调用表函数所产生的所有结果中相关联行进行 join 。 注意事项 针对横向表的左外部联接当前仅支持文本常量 TRUE 作为谓词。 示例 若表函数返回了空结果,左表(outer)的行将会被删除 SELECT users, tag FROM Orders, LATERAL TABLE(unnest_udtf(tags)) t AS tag; 若表函数返回了空结果,将会保留相对应的外部行并用空值填充 SELECT users, tag FROM Orders LEFT JOIN LATERAL TABLE(unnest_udtf(tags)) t AS tag ON TRUE;
  • Join Temporal Table Function 功能描述 注意事项 目前仅支持在 Temporal Tables 上的 inner join。 示例 假如Rates是一个 Temporal Table Function, join 可以使用 SQL 进行如下的表达: SELECT o_amount, r_rate FROM Orders, LATERAL TABLE (Rates(o_proctime)) WHERE r_currency = o_currency;