System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据源传输,尤其涉及一种基于flink sql的数据源加密传输方法和系统。
技术介绍
1、apache flink是一个在有界数据流和无界数据流上进行有状态计算的分布式处理引擎和框架,flink sql是flink api的顶层抽象,这层抽象在语义和程序表达式上都类似于table api,但是其程序实现都是sql查询表达式。sql抽象与table api抽象之间的关联是非常紧密的,并且sql查询语句可以在table api中定义的表上执行。由于复杂的业务以及复杂的企业组织架构,往往各个业务数据存储在不同的数据源(例如mysql等)中,为了打通各个数据孤岛,挖掘数据价值,越来越多的企业使用flink sql来完成数据治理工作,但是目前通用的flink sql存在以下问题:1.数据源密码以明文传输至flink引擎中,增加了密码泄露的风险;2.无法在flink引擎中对数据源的密码进行加密传输。
2、因此,如何提供一种更加安全的数据源加密传输方法,成为亟待解决的技术问题。
技术实现思路
1、有鉴于此,为了克服现有技术的不足,本专利技术旨在提供一种基于flink sql的数据源加密传输方法和系统。
2、根据本专利技术的第一方面,提供一种基于flink sql的数据源加密传输方法,包括:
3、通过flink源码配置前置环境,在配置的前置环境中引入封装密码算法的maven依赖;
4、通过定义抽象类baseflinkdecoder及其子
5、通过修改flink源码引入解密工具,通过定义工具类flinkdecodeutils及对应的decode方法,选择对应的算法解码器对数据源密码解密;
6、配置密码算法参数并通过maven依赖打包后安装至flink的lib目录中,用户通过指定数据源密码和加密方式执行flink sql语句。
7、优选地,本专利技术基于flink sql的数据源加密传输方法中,通过flink源码配置前置环境,在配置的前置环境中引入封装密码算法的maven依赖,包括:从代码仓库中导入flink源码,在导入的flink源码中配置jdk和maven环境,在导入的flink源码的flink-connectors模块的pom.xml文件中引入maven依赖,所述maven依赖中封装密码算法。
8、优选地,本专利技术基于flink sql的数据源加密传输方法中,通过定义抽象类baseflinkdecoder及其子类,封装maven依赖的解密算法并创建不同加密算法对应的算法解码器,包括:
9、在导入的flink源码的flink-connector-jdbc模块中,定义抽象类baseflinkdecoder,采用定义的抽象类baseflinkdecode封装maven依赖的解密算法;
10、在导入的flink源码的flink-connector-jdbc模块中,定义抽象类baseflinkdecoder的子类,采用抽象类baseflinkdecoder的子类创建不同加密算法对应的算法解码器。
11、优选地,本专利技术基于flink sql的数据源加密传输方法中,在导入的flink源码的flink-connector-jdbc模块中,定义抽象类baseflinkdecoder,采用定义的抽象类baseflinkdecode封装maven依赖的解密算法,包括:抽象类baseflinkdecoder中定义string类型的成员变量encrypttype以及抽象的decode方法,抽象的decode方法的方法入参分别为string类型的数据源密码密文password和map类型的参数param,抽象的decode方法的方法出参是string类型的解密后的数据源密码。
12、优选地,本专利技术基于flink sql的数据源加密传输方法中,在导入的flink源码的flink-connector-jdbc模块中,定义抽象类baseflinkdecoder的子类,采用抽象类baseflinkdecoder的子类创建不同加密算法对应的算法解码器,包括:在解码器对应的解密算法类中,采用构造函数为解密算法类的成员变量encrypttype赋值为密码算法字符串,在解密算法类中重新实现其父类baseflinkdecoder的decode方法,在解密算法类的decode方法中使用密码算法对decode方法的方法入参中的密码密文password进行解密,返回解密后的密码明文。
13、优选地,本专利技术基于flink sql的数据源加密传输方法中,不同加密算法对应的算法解码器,包括aesdecoder、rsadecoder、desdecoder以及httpdecoder解码器。
14、优选地,本专利技术基于flink sql的数据源加密传输方法中,通过修改flink源码引入解密工具,通过定义工具类flinkdecodeutils及对应的decode方法,选择对应的算法解码器对数据源密码解密,包括:
15、在导入的flink源码的flink-connector-jdbc模块中,分别修改java类simplejdbcconnectionprovider的getorestablishconnection方法,修改java类abstractjdbccatalog的open方法、gettable方法以及extractcolumnvaluesbysql方法,修改java类mysqlcatalog的getdatabaseversion方法、getdriverversion方法;
16、在创建数据源jdbc连接时,根据用户在flink sql中指定的加密方式读取flink配置中的加密配置信息,如果获取到加密配置信息,通过定义工具类flinkdecodeutils及对应的decode方法,选择对应的算法解码器对数据源密码解密,获得解密的数据源密码;如果未获取到加密配置信息,获取用户输入的数据源密码;采用解密的数据源密码或用户输入的数据源密码对应的数据源创建jdbc连接来处理数据。
17、优选地,本专利技术基于flink sql的数据源加密传输方法中,通过定义工具类flinkdecodeutils及对应的decode方法,选择对应的算法解码器对数据源密码解密,包括:
18、在导入的flink源码的flink-connector-jdbc模块中,定义java工具类flinkdecodeutils及对应的decode方法;
19、根据decode方法的方法入参中的加密方式encrypttype参数,选择对应的算法解码器,获取配置文件中的解密参数,采用选择的算法解码器解密string类型的数据源密码密文password,将解密后的数据源密码返回;
20、如果decode方法的方法入参中加密方式encrypt本文档来自技高网...
【技术保护点】
1.一种基于Flink SQL的数据源加密传输方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于Flink SQL的数据源加密传输方法,其特征在于,通过Flink源码配置前置环境,在配置的前置环境中引入封装密码算法的maven依赖,包括:从代码仓库中导入Flink源码,在导入的Flink源码中配置jdk和maven环境,在导入的Flink源码的Flink-connectors模块的pom.xml文件中引入maven依赖,所述maven依赖中封装密码算法。
3.根据权利要求1所述的基于Flink SQL的数据源加密传输方法,其特征在于,通过定义抽象类BaseFlinkDecoder及其子类,封装maven依赖的解密算法并创建不同加密算法对应的算法解码器,包括:
4.根据权利要求3所述的基于Flink SQL的数据源加密传输方法,其特征在于,在导入的Flink源码的Flink-connector-jdbc模块中,定义抽象类BaseFlinkDecoder,采用定义的抽象类BaseFlinkDecode封装maven依赖的解密算法,包括:
5.根据权利要求3所述的基于Flink SQL的数据源加密传输方法,其特征在于,在导入的Flink源码的Flink-connector-jdbc模块中,定义抽象类BaseFlinkDecoder的子类,采用抽象类BaseFlinkDecoder的子类创建不同加密算法对应的算法解码器,包括:在解码器对应的解密算法类中,采用构造函数为解密算法类的成员变量encryptType赋值为密码算法字符串,在解密算法类中重新实现其父类BaseFlinkDecoder的decode方法,在解密算法类的decode方法中使用密码算法对decode方法的方法入参中的密码密文password进行解密,返回解密后的密码明文。
6.根据权利要求3所述的基于Flink SQL的数据源加密传输方法,其特征在于,不同加密算法对应的算法解码器,包括AesDecoder、RsaDecoder、DesDecoder以及HttpDecoder解码器。
7.根据权利要求1所述的基于Flink SQL的数据源加密传输方法,其特征在于,通过修改Flink源码引入解密工具,通过定义工具类FlinkDecodeUtils及对应的decode方法,选择对应的算法解码器对数据源密码解密,包括:
8.根据权利要求1所述的基于Flink SQL的数据源加密传输方法,其特征在于,通过定义工具类FlinkDecodeUtils及对应的decode方法,选择对应的算法解码器对数据源密码解密,包括:
9.根据权利要求1所述的基于Flink SQL的数据源加密传输方法,其特征在于,配置密码算法参数并通过maven依赖打包后安装至Flink的lib目录中,用户通过指定数据源密码和加密方式执行Flink sql语句,包括:
10.一种基于Flink SQL的数据源加密传输系统,其特征在于,所述系统包括数据源加密传输服务端,所述数据源加密传输服务端用于通过Flink源码配置前置环境,在配置的前置环境中引入封装密码算法的maven依赖;通过定义抽象类BaseFlinkDecoder及其子类,封装maven依赖的解密算法并创建不同加密算法对应的算法解码器;通过修改Flink源码引入解密工具,通过定义工具类FlinkDecodeUtils及对应的decode方法,选择对应的算法解码器对数据源密码解密;配置密码算法参数并通过maven依赖打包后安装至Flink的lib目录中,用户通过指定数据源密码和加密方式执行Flink sql语句。
...【技术特征摘要】
1.一种基于flink sql的数据源加密传输方法,其特征在于,所述方法包括:
2.根据权利要求1所述的基于flink sql的数据源加密传输方法,其特征在于,通过flink源码配置前置环境,在配置的前置环境中引入封装密码算法的maven依赖,包括:从代码仓库中导入flink源码,在导入的flink源码中配置jdk和maven环境,在导入的flink源码的flink-connectors模块的pom.xml文件中引入maven依赖,所述maven依赖中封装密码算法。
3.根据权利要求1所述的基于flink sql的数据源加密传输方法,其特征在于,通过定义抽象类baseflinkdecoder及其子类,封装maven依赖的解密算法并创建不同加密算法对应的算法解码器,包括:
4.根据权利要求3所述的基于flink sql的数据源加密传输方法,其特征在于,在导入的flink源码的flink-connector-jdbc模块中,定义抽象类baseflinkdecoder,采用定义的抽象类baseflinkdecode封装maven依赖的解密算法,包括:抽象类baseflinkdecoder中定义string类型的成员变量encrypttype以及抽象的decode方法,抽象的decode方法的方法入参分别为string类型的数据源密码密文password和map类型的参数param,抽象的decode方法的方法出参是string类型的解密后的数据源密码。
5.根据权利要求3所述的基于flink sql的数据源加密传输方法,其特征在于,在导入的flink源码的flink-connector-jdbc模块中,定义抽象类baseflinkdecoder的子类,采用抽象类baseflinkdecoder的子类创建不同加密算法对应的算法解码器,包括:在解码器对应的解密算法类中,采用构造函数为解密算法类的成员变量encrypttype赋值为密码算法字符串,在解密算法类中重新实现...
【专利技术属性】
技术研发人员:张晓军,陈治祥,
申请(专利权)人:中电云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。