【技术实现步骤摘要】
基于Apache Calcite的数据脱敏方法、系统、设备及介质
[0001]本申请涉及数据脱敏
,尤其涉及一种基于Apache Calcite的数据脱敏方法、系统、设备及介质。
技术介绍
[0002]数据脱敏是数据管理和数据治理工具的核心功能,指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。这样就可以在开发、测试和其它非生产环境以及外包环境中安全地使用脱敏后的真实数据集。通过建立数据脱敏规则,对数据进行脱敏,一方面可以确保数据的安全性,另一方面可以更好的对数据进行还原。
[0003]Apache Calcite 是一种提供了标准的SQL(Structured Query Language 结构化查询语言)语言、多种查询优化和连接各种数据源基础框架,目标是one size fits all,为不同计算平台和数据源提供统一的查询引擎,并以类似传统数据库的访问方式(SQL语句和高级查询优化)来访问Hadoop上的数据,让用户轻松的接入各种数据,并实现解析SQL语句和SQL语句查询。
...
【技术保护点】
【技术特征摘要】
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的数据脱敏系统,其特征在于,所述系统包括:获取模块,用于在接收到预设...
【专利技术属性】
技术研发人员:刘保卫,匡尚超,席现国,李永鑫,
申请(专利权)人:北方健康医疗大数据科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。