CN116702181A - 基于Apache Calcite的数据脱敏方法、系统、设备及介质 - Google Patents
基于Apache Calcite的数据脱敏方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116702181A CN116702181A CN202310994453.XA CN202310994453A CN116702181A CN 116702181 A CN116702181 A CN 116702181A CN 202310994453 A CN202310994453 A CN 202310994453A CN 116702181 A CN116702181 A CN 116702181A
- Authority
- CN
- China
- Prior art keywords
- desensitization
- sql
- calcite
- preset
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000586 desensitisation Methods 0.000 title claims abstract description 166
- 229910021532 Calcite Inorganic materials 0.000 title claims abstract description 102
- 238000000034 method Methods 0.000 title claims abstract description 33
- 230000006870 function Effects 0.000 claims description 68
- 238000010276 construction Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001681 protective effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请公开了一种基于Apache Calcite的数据脱敏方法、系统、设备及介质,主要涉及数据脱敏技术领域,用以解决现有的Apache Calcite工具无法在SQL语句执行的同时进行数据脱敏的问题。包括:生成SQL语句;获取对应的字段类型和库表信息;获取对应的Calcite解析器;转换为SqlNode类型的SQL语句;在SqlNode类型的SQL语句符合预设语法规则后,构建RelNode树结构的SQL语句;构造包含脱敏函数的脱敏处理器;获得SQL语句字段类型为脱敏类型的脱敏字段;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段。
Description
技术领域
本申请涉及数据脱敏技术领域,尤其涉及一种基于Apache Calcite的数据脱敏方法、系统、设备及介质。
背景技术
数据脱敏是数据管理和数据治理工具的核心功能,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。通过建立数据脱敏规则,对数据进行脱敏,一方面可以确保数据的安全性,另一方面可以更好的对数据进行还原。
Apache Calcite 是一种提供了标准的SQL(Structured Query Language 结构化查询语言)语言、多种查询优化和连接各种数据源基础框架,目标是one size fits all,为不同计算平台和数据源提供统一的查询引擎,并以类似传统数据库的访问方式(SQL语句和高级查询优化)来访问Hadoop上的数据,让用户轻松的接入各种数据,并实现解析SQL语句和SQL语句查询。
由于,Apache Calcite只是SQL语句解析工具,功能较为单一,只能实现常规的SQL语句解析,而且只是通过配置文件实现,没有可视化操作界面,不是很友好;实际业务场景中存在很多在SQL语句执行过程中同时进行对敏感数据的识别和脱敏(加密)的需求,单纯通过Calcite无法实现,如果依赖其他脱敏工具或者开发脱敏组件再增加程序的复杂度和增加研发成本。
发明内容
针对现有技术的上述不足,本申请提供一种基于Apache Calcite的数据脱敏方法、系统、设备及介质,以解决上述Apache Calcite工具无法在SQL语句执行的同时进行数据脱敏的技术问题。
第一方面,本申请提供了一种基于Apache Calcite的数据脱敏方法,方法包括:在接收到预设数据查询工具发起数据查询请求时,基于数据查询请求生成SQL语句;通过Calcite程序接收SQL语句,获取SQL语句中字段对应的字段类型和库表信息;其中,字段类型包括脱敏类型和非脱敏类型;基于库表信息,获取SQL语句对应的Calcite解析器;通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句;获取脱敏规则对应的若干脱敏函数,以构造脱敏处理器;检测RelNode树结构的SQL语句中字段的字段类型,以获得字段类型为脱敏类型的脱敏字段;确定脱敏字段对应的脱敏函数和预设字段类型;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段;在执行更新后的RelNode树结构的SQL语句时,自动调用脱敏处理器中的脱敏函数,生成脱敏数据。
进一步地,基于库表信息,获取SQL语句对应的Calcite解析器,具体包括:使用Calcite中库表信息对应的预设解析器,作为SQL语句对应的Calcite解析器;或,根据库表信息创建解析器,作为SQL语句对应的Calcite解析器;或,通过预设界面,获取上传的自定义解析器,作为SQL语句对应的Calcite解析器。
进一步地,通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句,具体包括:通过Calcite解析器中预设的JavaCC程序,将SQL语句转换为SqlNode类型的SQL语句;通过Calcite解析器中预设的SQL检验器SqlValidator,校验SqlNode类型的SQL语句是否符合预设语法规则;通过Calcite解析器中预设的转换器SqlToRelConverter、库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
进一步地,通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段,具体包括:通过CAST函数格式:CAST(脱敏函数(脱敏字段名) AS 预设字段类型) AS 脱敏字段名,更新RelNode树结构的SQL语句中的脱敏字段。
第二方面,本申请提供了一种基于Apache Calcite的数据脱敏系统,系统包括:获取模块,用于在接收到预设数据查询工具发起数据查询请求时,基于数据查询请求生成SQL语句;通过Calcite程序接收SQL语句,获取SQL语句中字段对应的字段类型和库表信息;其中,字段类型包括脱敏类型和非脱敏类型;构建模块,用于基于库表信息,获取SQL语句对应的Calcite解析器;通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句;更新模块,用于获取脱敏规则对应的若干脱敏函数,以构造脱敏处理器;检测RelNode树结构的SQL语句中字段的字段类型,以获得字段类型为脱敏类型的脱敏字段;确定脱敏字段对应的脱敏函数和预设字段类型;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段;在执行更新后的RelNode树结构的SQL语句时,自动调用脱敏处理器中的脱敏函数,生成脱敏数据。
进一步地,构建模块包括获取单元,用于使用Calcite中库表信息对应的预设解析器,作为SQL语句对应的Calcite解析器;或,根据库表信息创建解析器,作为SQL语句对应的Calcite解析器;或,通过预设界面,获取上传的自定义解析器,作为SQL语句对应的Calcite解析器。
进一步地,构建模块包括构建单元,用于通过Calcite解析器中预设的JavaCC程序,将SQL语句转换为SqlNode类型的SQL语句;通过Calcite解析器中预设的SQL检验器SqlValidator,校验SqlNode类型的SQL语句是否符合预设语法规则;通过Calcite解析器中预设的转换器SqlToRelConverter、库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
进一步地,更新模块包括CAST函数单元,用于通过CAST函数格式:CAST(脱敏函数(脱敏字段名) AS 预设字段类型) AS 脱敏字段名,更新RelNode树结构的SQL语句中的脱敏字段。
第三方面,本申请提供了一种基于Apache Calcite的数据脱敏设备,设备包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被执行时,使得处理器执行如上述任一项的一种基于Apache Calcite的数据脱敏方法。
第四方面,本申请提供了一种非易失性计算机存储介质,其上存储有计算机指令,计算机指令在被执行时实现如上述任一项的一种基于Apache Calcite的数据脱敏方法。
本领域技术人员能够理解的是,本申请至少具有如下有益效果:
本申请提供一种基于Apache Calcite的数据脱敏方法、系统、设备及介质,通过脱敏处理器,检测RelNode树结构的SQL语句中字段的字段类型,解决了程序在执行SQL语句过程中的敏感数据的识别问题;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段,实现了在解析SQL语句的过程中,通过多种脱敏算法对敏感数据同步进行加密或脱敏,直接获取脱敏数据,实现了数据脱敏同步,提高了处理效率和数据的安全性,能够快速满足客户需求。
附图说明
下面参照附图来描述本公开的部分实施例,附图中:
图1是本申请实施例提供的一种基于Apache Calcite的数据脱敏方法流程图。
图2是本申请实施例提供的一种基于Apache Calcite的数据脱敏系统内部结构示意图。
图3是本申请实施例提供的一种基于Apache Calcite的数据脱敏设备内部结构示意图。
具体实施方式
本领域技术人员应当理解的是,下文所描述的实施例仅仅是本公开的优选实施例,并不表示本公开仅能通过该优选实施例实现,该优选实施例仅仅是用于解释本公开的技术原理,并非用于限制本公开的保护范围。基于本公开提供的优选实施例,本领域普通技术人员在没有付出创造性劳动的情况下所获得的其它所有实施例,仍应落入到本公开的保护范围之内。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
下面通过附图对本申请实施例提出的技术方案进行详细的说明。
本申请实施例提供了一种基于Apache Calcite的数据脱敏方法,如图1所示,本申请实施例提供的方法,主要包括以下步骤:
步骤110、 在接收到预设数据查询工具发起数据查询请求时,基于数据查询请求生成SQL语句;通过Calcite程序接收SQL语句,获取SQL语句中字段对应的字段类型和库表信息。
需要说明的是,字段类型包括脱敏类型和非脱敏类型。库表信息为查询请求对应的查询数据对应的具体数据库具体数据表的信息。
另外,预设数据查询工具至少包括:能够发起数据查询请求的数据汇聚工具、数据传输工具,或能够发起数据查询请求的应用程序。
步骤120、 基于库表信息,获取SQL语句对应的Calcite解析器;通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
这里的,基于库表信息,获取SQL语句对应的Calcite解析器,可以具体为:使用Calcite中库表信息对应的预设解析器,作为SQL语句对应的Calcite解析器;或,根据库表信息创建解析器,作为SQL语句对应的Calcite解析器;或,通过预设界面,获取上传的自定义解析器,作为SQL语句对应的Calcite解析器。
这里的,通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句,可以具体为:
通过Calcite解析器中预设的JavaCC程序,将SQL语句转换为SqlNode类型的SQL语句;通过Calcite解析器中预设的SQL检验器SqlValidator,校验SqlNode类型的SQL语句是否符合预设语法规则;通过Calcite解析器中预设的转换器SqlToRelConverter、库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
需要说明的是,预设语法规则的具体内容可由本领域技术人员根据实际情况确定。
步骤130、 获取脱敏规则对应的若干脱敏函数,以构造脱敏处理器;检测RelNode树结构的SQL语句中字段的字段类型,以获得字段类型为脱敏类型的脱敏字段;确定脱敏字段对应的脱敏函数和预设字段类型;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段;在执行更新后的RelNode树结构的SQL语句时,自动调用脱敏处理器中的脱敏函数,生成脱敏数据。
需要说明的是,脱敏处理器可以具体为dataMaskHandler程序,将脱敏规则对应的若干脱敏函数放置于dataMaskHandler程序中。在后续通dataMaskHandler程序自动调用对应的脱敏函数。这里,脱敏函数可以为加密函数或者任意可行的加密算法,通过对数据加密实现对数据的脱敏。CAST函数为SQL中的cast函数。
另外,通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段,具体可以为:通过CAST函数格式:CAST(脱敏函数(脱敏字段名) AS 预设字段类型) AS 脱敏字段名,更新RelNode树结构的SQL语句中的脱敏字段。
除此之外,图2为本申请实施例提供的一种基于Apache Calcite的数据脱敏系统。如图2所示,本申请实施例提供的系统,主要包括:
获取模块210,用于在接收到预设数据查询工具发起数据查询请求时,基于数据查询请求生成SQL语句;通过Calcite程序接收SQL语句,获取SQL语句中字段对应的字段类型和库表信息。
其中,字段类型包括脱敏类型和非脱敏类型。
需要说明的是,获取模块210可以为任意可行的能够基于数据查询请求生成的SQL语句,以及获取SQL语句中字段对应的字段类型和库表信息的装置或设备等。
构建模块220,用于基于库表信息,获取SQL语句对应的Calcite解析器;通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
需要说明的是,构建模块220为任意可行的能够进行SQL语句类型转换的设备或装置等。
其中,构建模块220包括获取单元221,用于使用Calcite中库表信息对应的预设解析器,作为SQL语句对应的Calcite解析器;或,根据库表信息创建解析器,作为SQL语句对应的Calcite解析器;或,通过预设界面,获取上传的自定义解析器,作为SQL语句对应的Calcite解析器。
其中,构建模块220包括构建单元222,用于通过Calcite解析器中预设的JavaCC程序,将SQL语句转换为SqlNode类型的SQL语句;通过Calcite解析器中预设的SQL检验器SqlValidator,校验SqlNode类型的SQL语句是否符合预设语法规则;通过Calcite解析器中预设的转换器SqlToRelConverter、库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
更新模块230,用于获取脱敏规则对应的若干脱敏函数,以构造脱敏处理器;检测RelNode树结构的SQL语句中字段的字段类型,以获得字段类型为脱敏类型的脱敏字段;确定脱敏字段对应的脱敏函数和预设字段类型;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段;在执行更新后的RelNode树结构的SQL语句时,自动调用脱敏处理器中的脱敏函数,生成脱敏数据。
需要说明的是,更新模块230为任意可行的能够进行SQL语句转换的设备或装置等。
其中,通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段可以具体地:更新模块230中的CAST函数单元231,通过CAST函数格式:CAST(脱敏函数(脱敏字段名) AS 预设字段类型) AS 脱敏字段名,更新RelNode树结构的SQL语句中的脱敏字段。
以上为本申请中的方法实施例,基于同样的发明构思,本申请实施例还提供了一种基于Apache Calcite的数据脱敏设备。如图3所示,该设备包括:处理器;以及存储器,其上存储有可执行代码,当可执行代码被执行时,使得处理器执行如上述实施例中的一种基于Apache Calcite的数据脱敏方法。
具体地,服务器端在接收到预设数据查询工具发起数据查询请求时,基于数据查询请求生成SQL语句;通过Calcite程序接收SQL语句,获取SQL语句中字段对应的字段类型和库表信息;其中,字段类型包括脱敏类型和非脱敏类型;基于库表信息,获取SQL语句对应的Calcite解析器;通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句;获取脱敏规则对应的若干脱敏函数,以构造脱敏处理器;检测RelNode树结构的SQL语句中字段的字段类型,以获得字段类型为脱敏类型的脱敏字段;确定脱敏字段对应的脱敏函数和预设字段类型;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段;在执行更新后的RelNode树结构的SQL语句时,自动调用脱敏处理器中的脱敏函数,生成脱敏数据。
除此之外,本申请实施例还提供了一种非易失性计算机存储介质,其上存储有可执行指令,在该可执行指令被执行时,实现如上述的一种基于Apache Calcite的数据脱敏方法。
至此,已经结合前文的多个实施例描述了本公开的技术方案,但是,本领域技术人员容易理解的是,本公开的保护范围并不仅限于这些具体实施例。在不偏离本公开技术原理的前提下,本领域技术人员可以对上述各个实施例中的技术方案进行拆分和组合,也可以对相关技术特征作出等同的更改或替换,凡在本公开的技术构思和/或技术原理之内所做的任何更改、等同替换、改进等都将落入本公开的保护范围之内。
Claims (10)
1. 一种基于Apache Calcite的数据脱敏方法,其特征在于,所述方法包括:
在接收到预设数据查询工具发起数据查询请求时,基于数据查询请求生成SQL语句;通过Calcite程序接收SQL语句,获取SQL语句中字段对应的字段类型和库表信息;其中,字段类型包括脱敏类型和非脱敏类型;
基于库表信息,获取SQL语句对应的Calcite解析器;通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句;
获取脱敏规则对应的若干脱敏函数,以构造脱敏处理器;检测RelNode树结构的SQL语句中字段的字段类型,以获得字段类型为脱敏类型的脱敏字段;确定脱敏字段对应的脱敏函数和预设字段类型;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段;在执行更新后的RelNode树结构的SQL语句时,自动调用脱敏处理器中的脱敏函数,生成脱敏数据。
2. 根据权利要求1所述的基于Apache Calcite的数据脱敏方法,其特征在于,基于库表信息,获取SQL语句对应的Calcite解析器,具体包括:
使用Calcite中库表信息对应的预设解析器,作为SQL语句对应的Calcite解析器;或,
根据库表信息创建解析器,作为SQL语句对应的Calcite解析器;或,
通过预设界面,获取上传的自定义解析器,作为SQL语句对应的Calcite解析器。
3. 根据权利要求1所述的基于Apache Calcite的数据脱敏方法,其特征在于,通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句,具体包括:
通过Calcite解析器中预设的JavaCC程序,将SQL语句转换为SqlNode类型的SQL语句;
通过Calcite解析器中预设的SQL检验器SqlValidator,校验SqlNode类型的SQL语句是否符合预设语法规则;
通过Calcite解析器中预设的转换器SqlToRelConverter、库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
4. 根据权利要求1所述的基于Apache Calcite的数据脱敏方法,其特征在于,通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段,具体包括:
通过CAST函数格式:CAST(脱敏函数(脱敏字段名) AS 预设字段类型) AS 脱敏字段名,更新RelNode树结构的SQL语句中的脱敏字段。
5. 一种基于Apache Calcite的数据脱敏系统,其特征在于,所述系统包括:
获取模块,用于在接收到预设数据查询工具发起数据查询请求时,基于数据查询请求生成SQL语句;通过Calcite程序接收SQL语句,获取SQL语句中字段对应的字段类型和库表信息;其中,字段类型包括脱敏类型和非脱敏类型;
构建模块,用于基于库表信息,获取SQL语句对应的Calcite解析器;通过Calcite解析器,将SQL语句转换为SqlNode类型的SQL语句,并校验SqlNode类型的SQL语句是否符合预设语法规则;在符合预设语法规则后,基于库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句;
更新模块,用于获取脱敏规则对应的若干脱敏函数,以构造脱敏处理器;检测RelNode树结构的SQL语句中字段的字段类型,以获得字段类型为脱敏类型的脱敏字段;确定脱敏字段对应的脱敏函数和预设字段类型;通过CAST函数、脱敏函数和预设字段类型,更新RelNode树结构的SQL语句中的脱敏字段;在执行更新后的RelNode树结构的SQL语句时,自动调用脱敏处理器中的脱敏函数,生成脱敏数据。
6. 根据权利要求5所述的基于Apache Calcite的数据脱敏系统,其特征在于,构建模块包括获取单元,
用于使用Calcite中库表信息对应的预设解析器,作为SQL语句对应的Calcite解析器;或,根据库表信息创建解析器,作为SQL语句对应的Calcite解析器;或,通过预设界面,获取上传的自定义解析器,作为SQL语句对应的Calcite解析器。
7. 根据权利要求5所述的基于Apache Calcite的数据脱敏系统,其特征在于,构建模块包括构建单元,
用于通过Calcite解析器中预设的JavaCC程序,将SQL语句转换为SqlNode类型的SQL语句;通过Calcite解析器中预设的SQL检验器SqlValidator,校验SqlNode类型的SQL语句是否符合预设语法规则;通过Calcite解析器中预设的转换器SqlToRelConverter、库表信息,将SqlNode类型的SQL语句构建为RelNode树结构的SQL语句。
8. 根据权利要求5所述的基于Apache Calcite的数据脱敏系统,其特征在于,更新模块包括CAST函数单元,
用于通过CAST函数格式:CAST(脱敏函数(脱敏字段名) AS 预设字段类型) AS 脱敏字段名,更新RelNode树结构的SQL语句中的脱敏字段。
9. 一种基于Apache Calcite的数据脱敏设备,其特征在于,所述设备包括:
处理器;
以及存储器,其上存储有可执行代码,当所述可执行代码被执行时,使得所述处理器执行如权利要求1-4任一项所述的一种基于Apache Calcite的数据脱敏方法。
10. 一种非易失性计算机存储介质,其特征在于,其上存储有计算机指令,所述计算机指令在被执行时实现如权利要求1-4任一项所述的一种基于Apache Calcite的数据脱敏方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310994453.XA CN116702181A (zh) | 2023-08-09 | 2023-08-09 | 基于Apache Calcite的数据脱敏方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310994453.XA CN116702181A (zh) | 2023-08-09 | 2023-08-09 | 基于Apache Calcite的数据脱敏方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116702181A true CN116702181A (zh) | 2023-09-05 |
Family
ID=87829802
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310994453.XA Pending CN116702181A (zh) | 2023-08-09 | 2023-08-09 | 基于Apache Calcite的数据脱敏方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116702181A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370620B (zh) * | 2023-12-08 | 2024-04-05 | 广东航宇卫星科技有限公司 | 一种数据血缘的构建方法、装置、终端设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443059A (zh) * | 2018-05-02 | 2019-11-12 | 中兴通讯股份有限公司 | 数据保护方法及装置 |
CN112765658A (zh) * | 2021-01-15 | 2021-05-07 | 杭州数梦工场科技有限公司 | 一种数据脱敏方法、装置及电子设备和存储介质 |
CN114610747A (zh) * | 2022-03-15 | 2022-06-10 | 平安科技(深圳)有限公司 | 数据查询方法、装置、设备及存储介质 |
CN116502273A (zh) * | 2023-06-25 | 2023-07-28 | 中科金瑞(北京)大数据科技有限公司 | 基于数据血缘的动态数据脱敏方法、装置和设备 |
-
2023
- 2023-08-09 CN CN202310994453.XA patent/CN116702181A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110443059A (zh) * | 2018-05-02 | 2019-11-12 | 中兴通讯股份有限公司 | 数据保护方法及装置 |
CN112765658A (zh) * | 2021-01-15 | 2021-05-07 | 杭州数梦工场科技有限公司 | 一种数据脱敏方法、装置及电子设备和存储介质 |
CN114610747A (zh) * | 2022-03-15 | 2022-06-10 | 平安科技(深圳)有限公司 | 数据查询方法、装置、设备及存储介质 |
CN116502273A (zh) * | 2023-06-25 | 2023-07-28 | 中科金瑞(北京)大数据科技有限公司 | 基于数据血缘的动态数据脱敏方法、装置和设备 |
Non-Patent Citations (1)
Title |
---|
APACHE FLINK: "Flink SQL的数据脱敏解决方案", pages 1 - 6, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_44904816/article/details/130612823> * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117370620B (zh) * | 2023-12-08 | 2024-04-05 | 广东航宇卫星科技有限公司 | 一种数据血缘的构建方法、装置、终端设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102485179B1 (ko) | 설명 정보 확정 방법, 장치, 전자 기기 및 컴퓨터 저장 매체 | |
US9104720B2 (en) | Generation of technical description of report from functional description of report | |
CN108563768B (zh) | 不同数据模型的数据转换方法、装置、设备及存储介质 | |
CN112540923B (zh) | 接口参数校验与转换方法、装置、设备及存储介质 | |
CN107766353B (zh) | 一种数据库统计信息迁移的方法和设备 | |
CN110688544A (zh) | 一种查询数据库的方法、设备及存储介质 | |
CN116702181A (zh) | 基于Apache Calcite的数据脱敏方法、系统、设备及介质 | |
CN112307292A (zh) | 基于高级持续性威胁攻击的信息处理方法及系统 | |
CN109657462B (zh) | 数据检测方法、系统、电子设备和存储介质 | |
CN106570095B (zh) | 一种xml数据的操作方法及设备 | |
CN113342876B (zh) | SaaS环境下多租户CRM系统的数据模糊查询方法及装置 | |
CN116483850A (zh) | 数据处理方法、装置、设备以及介质 | |
CN116048478B (zh) | 一种字典转义方法、装置、设备及计算机可读存储介质 | |
CN111259039A (zh) | 数据库操作方法、装置、设备和计算机可读存储介质 | |
CN113032836B (zh) | 数据脱敏方法和装置 | |
KR20070062800A (ko) | 규칙기반의 전자문서 변환방법 및 그 시스템 | |
CN116010461A (zh) | 数据血缘关系解析方法及装置、存储介质及电子设备 | |
CN116185391A (zh) | 应用程序编程接口生成方法、装置、设备及存储介质 | |
US8819645B2 (en) | Application analysis device | |
WO2019000697A1 (zh) | 信息检索方法、系统、服务器及可读存储介质 | |
CN111158653B (zh) | 基于sql语言的实时计算程序的集成开发及执行系统 | |
CN114238273A (zh) | 数据库管理方法、装置、设备及存储介质 | |
CN108008947B (zh) | 一种编程语句的智能提示方法、装置、服务器及存储介质 | |
CN112084167A (zh) | 一种权限过滤方法、装置及存储介质 | |
CN117171800B (zh) | 一种基于零信任防护体系的敏感数据识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |