CN115525624A - 批量数据建模和数据处理的方法 - Google Patents
批量数据建模和数据处理的方法 Download PDFInfo
- Publication number
- CN115525624A CN115525624A CN202210452873.0A CN202210452873A CN115525624A CN 115525624 A CN115525624 A CN 115525624A CN 202210452873 A CN202210452873 A CN 202210452873A CN 115525624 A CN115525624 A CN 115525624A
- Authority
- CN
- China
- Prior art keywords
- data
- name
- column
- database
- file
- 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
Images
Classifications
-
- 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/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
- G06F16/212—Schema design and management with details for data modelling support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/157—Transformation using dictionaries or tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/186—Templates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种批量数据建模和数据处理的方法,包括数据模型文件及有效数据选定部分、确定处理目标部分、数据模型文件转DDL部分、数据处理部分以及软件***部分;批量选定数据模型文件,获取到数据模型文件的文件夹层次、文件名和数据模型文件对象本身,可选对文件做排序处理,文件有无合并的单元格和在有效数据上下左右有无无效数据均可处理,通过可选项确定数据表名集合T1,可设置需要处理的有效数据的上下左右边界和某行各单元格数据为原始列名集合C1,通过几个可选步骤程序处理转换生成DDL语句,该DDL执行后可创建数据库和数据表实体,当存在目标数据库和数据表实体时则跳过其创建步骤,继续后续步骤。
Description
技术领域
本发明实现了一种数据库批量建模并可同时按指定顺序导入数据的技术,此过程可对 excel等数据模型文件按指定选项来做一定得预处理,属于数据建模、数据库技术、数据仓库和大数据类似SQL语法建模的领域和程序开发领域。具体应用场景在通过导入excel等数据模型文件在数据库创建表以及视图(TABLE/VIEW)、数据导入、生成软件的配置项和据此来开发程序的时候。
背景技术
在有数据管理相关模块的程序开发之时,软件公司需要包括商务人员和程序员在内的大量的人力和用户对接,将用户抽象的需求描述转换为最终的数据(库)原型,并根据数据原型编写程序代码。这会耗费大量的人力沟通成本和时间。
Excel作为常用的办公软件,被公司和个人广泛使用。在程序开发人员提示下,用户很容易将需求整理成excel表格。一个工作表(sheet)对应一个***栏目,一个列对应一个数据原型列。
用户经常已经有大量的历史数据积累,如表格excel,xls、xlsx、csv或SQL文件,还存在多个现有数据库或信息***。有些excel表格经常在有效数据的四周包含了一些横竖标题、汇总、页脚等非标准数据内容。excel文件中常常有多个合并单元格区域。
可能分散在不同的文件夹或文件中,或以rar、zip、gzip等压缩包存放,设置了密码。
有的excel是根据时间存放的,比如每月保存一个文件,结构相同,只是数据不同。
不同的部门可能分散在不同的办公地点,进一步提升了沟通的成本,有同时支持网络远程方式、分布式协同操作的需求。通过网络传输更有压缩和安全的需求。
不同数据文件之间还存在一定的数据关联,如字典项和组织机构隶属。
数据文件文件名和文件层次经常包含了很多该文件是什么数据表的关键信息。
除此之外,虽然用户的需求原型表和列是中文,但数据(库)原型的表和列,及相关的配置项和变量名称,出于行业惯例和健壮兼容性的要求,应该是字母、数字、下划线形式的。
出于可读性的需要,用户需要原型和数据原型的表列有拼音/翻译对应关系,最好有注释;出于商业目的又不能提供注释;出于健壮性兜底要求需要内码变换方式。
通过本程序处理后,可将这些分散数据统一规范收集,据此生成软件配置项和开发软件。
发明内容
本发明提供一种用于解决以上问题的批量数据建模和数据处理的方法。
本发明采用如下技术方案:
本发明包括数据模型文件及有效数据选定部分、确定处理目标部分、数据模型文件转DDL 部分、数据处理部分以及软件***部分;
批量选定数据模型文件,获取到数据模型文件的文件夹层次、文件名和数据模型文件对象本身,可选对文件做排序处理,文件有无合并的单元格和在有效数据上下左右有无无效数据均可处理,通过可选项确定原始数据表名集合T1,可设置需要处理的有效数据的上下左右边界和某行各单元格数据为原始列名集合C1,按照确定处理目标部分的设定,通过几个可选步骤程序处理转换生成DDL语句,该DDL执行后可创建数据库和数据表实体,当存在目标数据库和数据表实体时则跳过其创建步骤,继续后续步骤;
按照选定的顺序处理其中的数据,经过可选的步骤,实现数据变换,可选自动发现并创建字典项和字典表;
最终根据数据模型文件的文件夹层次、文件名、数据表名、字典项等数据内容和生成相应的SQL脚本、JSON、XML统称软件配置项,通过程序解析软件配置项生成相应的软件;
按照确定处理目标部分的设定,提供截止到某步骤的执行该SQL语句和功能,即实际实现上述功能,以及生成SQL语句和程序代码直接显示、保存及下载文件功能。
文件夹层次可从文件***和压缩文件形式的数据模型文件中获得,仅部分数据模型文件获取方式时有效,获取不到时,程序会略过该项;
以上设置可保存为规则,下次使用时可通过规则名,引用设置自动填充选项。
本发明所述数据模型文件及有效数据选定部分,用于确定要处理的数据模型文件集合、对数据模型文件排序以及确定每个文件的有效数据区域,有效数据区域可以是不含列名和含列名的整个工作表或工作表的部分区域;
获取数据模型文件包括网络上传获取、指定URL下载保存数据模型文件以及指定索引性质的网络URL,每个索引性质的URL是文本形式的数据模型文件URL列表集、获取以及计算机文件模式获取,均支持单个和批量形式的获取数据模型文件;
还包括,可将分散于多层文件夹的数据模型文件和其多个可加密压缩格式批量混合选定模块,以上获取数据模型文件方式,均支持多种压缩文件,可设置解压缩密码和多种类型格式的未压缩的数据模型文件一次性选定后,可不加区分的混合处理;
通过文件扩展名和文件头信息和其他辅助信息,调用不同的处理程序来分别处理所述数据模型文件;
所述数据模型文件包括类Excel文件、简单数据库文件、数据库连接信息文件以及SQL 文件形式的数据库导出或备份文件;
1.类Excel文件为通过文件扩展名来调用不同的处理模块来读取表、列和数据;
2.简单数据库文件为通过文件扩展名来调用不同的处理模块和数据库访问层DAL来读取表、列和数据;
3.数据库连接信息文件通过文件中数据库类型、服务器地址实例名、数据库及模式名、用户名密码等连接信息来调用不同的处理模块和数据库访问层DAL来读取表、列和数据;
4.SQL文件为通过指定该文件的数据库类型和文件编码类型后,由程序调用该类型数据库对应的处理模块和数据库访问层DAL,由程序以SQL基本文件名为基础创建该类型数据库的临时数据库或数据库模式后,由程序将该SQL文件导入临时库后,由程序读取表、列和数据;当数据库类型未指定时,程序分析sql文件头部信息、某类数据库特有关键字和CREATE TABLE和括号之前的数据库转义字符,如[]来确定数据库类型。
如果数据模型文件中存在压缩文件,根据文件扩展名和文件头信息和其他辅助信息,批量的将压缩文件类型的数据模型文件,按压缩文件类型调用不同的解压缩模块,分类解压缩之后,与普通未压缩的数据模型文件归并在一起,进行后续处理;
压缩文件中存储的相对路径信息和文件名信息,也会作为文件夹层次和文件名信息的一部分,和正常文件夹和文件名信息一样一并处理;
可选地会对过于冗长的文件夹层次做一定的优化精简层次;
所述数据模型文件及有效数据选定部分还包括多个数据模型文件排序处理模块,在开始处理所述数据模型文件之前,根据给定的顺序,顺序、逆序、保持原有顺序来处理所述数据模型文件,如果获取到了文件夹信息,则按照文件夹和文件名称排序,否则只按照文件名称来排序,为防止乱码会对文件夹名和文件名进行编码转换;
排序规则包含按照文件名的计算机内码和按照人类自然语言不区分大小写排序,包含顺序排序和逆向排序;
可人为改变排序,文件名或文件夹名前面可以带上序列加小数点形式的排序号如1.xxx.xls、2.yyy.xls,处理时,小数点和序列只作为数据处理排序依据,在处理时会被删除掉;
只要所述数据模型文件之一包含csv、html、sql等纯文本文件或压缩文件,可指定文件编码如utf-8,不包含上述文件时无需指定编码;
排除无效数据,选择数据的有效区域的方式包括简单模式和专业模式;
简单模式,设置第N行有数据区域的各单元格作为有效数据的列名,同时N行做为有效数据的上边界,N行之前的数据模型文件的数据会被***忽略,设置去掉尾部的P行,自有数据区域尾部起倒数P行,共P行的数据会被忽略不处理;
P是倒数的,这样设置可以允许有效数据行数是不定的,这在同时导入多个行数不确定的账单形式的文件时,尤其是尾部有固定行的如汇总,审批栏的那种,可保证一次设置,同时适用于多个文件;
同理,可设置忽略左侧Q列和自有数据区域右起右侧R列的数据,R是倒数的;
N、P、Q、R分别指代有效数据上下左右边界的值,据此排除无效数据区域,可为任意字符或留空,当为实数时,会自动取整数,简单模式时会取绝对值,其他字符或为留空会按照数字0来处理;当N、P、Q、R为0时,以及N为1,P、Q、R为0时,且没有合并的单元格时分别对应无无效数据的,无字段名的和首行为字段名的普通数据模型文件导入这两种情形;
上述的处理都指的是数据模型文件的有数据区域;
专业模式左边界N、上边界P的设置和简单模式相同,右边界P、下边界R的设置不同;当P、R分别为负实数时,自动取整数绝对值为-P,-R,分别按从尾部倒数-P行和从右侧倒数-R列分别确定为有效数据区域的下边界和右边界,为正整数时从头到尾正数P行和从左到右正数R列分别确定为有效数据区域的下边界和右边界;
将上述边界获取规则反向变换、列边界取excel类似的字母列名称的变换或虽改变描述方法导致的边界取值移位,但是获取有效区域的作用相同的变换,也应该作为本发明的保护范围。
本发明所述确定处理目标部分,1.可选择软件***中已有的数据项目,作为创建表和导入数据的目标数据库。2.也可填写数据库连接信息后新建数据库,可简化为只填项目名,据此生成数据库,作为创建表和导入数据的目标数据库。3.也可在选择了数据目标数据库类型多选列表、处理选项后直接输出、保存或下载文件,文件包括程序和SQL语句。
本发明所述数据模型文件转DDL部分,用于实现批量解析数据模型文件集合,通过可选项确定原始数据表名集合T1,可选的对数据表名集合T1和数据模型文件表的列名集合C1 进行一定组合变换和处理后,批量创建数据库表集合T3,各表中的列取自列集合C3,可选的由程序添加各表注释T1即变换前的各数据表名原始值和各列注释C1即变换前的数据表各列名原始值,生成DDL语句,可选的创建数据库视图DDL语句,执行之后创建相应的数据表实体,可选导入一部分组织机构等辅助数据;核心点是据此生成了CREATE TABLE文本,CREATE和TABLE前后可选添加修饰词;
所述数据模型文件转DDL部分还包括添加文件名为表名模块和表名删除sheet N模块,在处理所述数据模型文件时,可选择将数据模型文件名和工作表名合在一起或取两者之一作为数据库表名或视图名,可选择将工作表名中的sheet N其中N为任意自然数,sheet、 N前后有或没有空白字符均会被正则表达式匹配替换,去掉只取数据模型文件名作为数据库的表名或视图名,记作原始表名集合T1;
所述数据模型文件转DDL部分还包括强制表名模块:同一批次的数据模型文件可统一指定为同一个数据库表名,文件的列结构须相同;
强制表名的优先级比T1高,当强制表名存在时,强制表名的原始值会取代T1;
数据模型文件的各表中各列名原始值的集合,记作集合C1;
所述数据模型文件转DDL部分还包括清理表名/列名中的空白和特殊字符模块,选择该项后可去除获取到的数据模型文件所在的目录和上层级文件夹名、数据模型文件名、工作表名、数据模型文件工作表的列名中的空白和特殊字符,去掉不符合数据库表名、字段名和程序变量命名规则的字符;
做完表名/列名中的空白和特殊字符清理的集合T1,C1,分别记作集合T2、C2
所述数据模型文件转DDL部分还包括表名变换和列名变换模块,通常数据模型文件的文件名、工作表名和列名极大可能包含中文等非ASCII字符,根据***兼容性需要,转为数据库表时必须转为可见ASCII字符,且首选首字母是英文字母或下划线”_”,可选择的变换方式有翻译、取拼音以及内码,选取其中任意1到3种,按照可选择的顺序串接组合变换处理,再加上”保持原样”这种变换方式;可设置某项变换及变换组合为默认值;
所述数据模型文件转DDL部分还包括表名变换和列名变换,可以防止数据库因编码混乱等原因造成的乱码或表列或数据无法正确读取,减少SQL中表名、列名添加转义字符和后续自动生成软件配置项更方便,很多配置项会直接转化为程序变量,现有编程技术对汉字做变量名和变量名首位为数字多数不支持,日期数字做excel文件的表名列名很常见,但不符合变量的命名规则,在创建数据表实体时变换,可以从源头一劳永逸的解决问题;
做完表名变换和列名变换处理的集合T2、C2,分别记作集合T3、C3,T3作为最终的表名和包含在后续的菜单的链接中,C3作为最终的数据表实体列名;
所述数据模型文件转DDL部分还包括,使用未变换之前的数据表实体名集合T1、列名集合C1分别做表注释、列注释,和SQL语句一起写入数据库,便于开发人员理解数据库结构;注释的添加标准包括添加注释(”保持原样”时除外)、全部添加注释以及全部不添加注释;表注释、列注释的添加标准可分别指定;
本文中提到的所有的注释,不是SQL语句中执行时被忽略的那种注释,而是数据库本身可支持和显示的属性(COMMENT),在不同的数据库注释的名称和SQL写法不同,如SQLserver中叫做说明(Description),有的数据库或数据库实体不支持注释,则忽略。
内码变换是指将表名或列名逐字,转换为自身去掉冗余字符的计算机内码,当该字为英文字母、数字、或下划线_时,保持原样不转换,然后依次拼接在一起,当转换前的表名或列名首字不是英文字母和下划线时,出于后续步骤稳健性的需要,在转化后的拼接在一起的字符串前会添加下划线_;将其作为数据库表名或列名;
翻译是指可选设置先将表名和列名通过计算机程序匹配汉英词典或机器翻译后,转换为英文,不能匹配翻译的保持原样,并去除空白和特殊符号,拼接在一起;
取拼音是指表名和列名可选逐字取首字母大写的中文拼音全拼、全部大写或小写的中文拼音全拼、全部大写或小写的中文拼音首字母、或保持原样不变,然后依次拼接在一起;表名和列名拼音全拼字符长度超过该种数据库类型的表名或列名允许的长度时会自动取中文拼音首字母;同一个表遇到列名转换后重名的情况时,添加序号解决重复问题;
以上变换规则表和列可分别指定,可将表设置传递给列设置作为其默认值;
表名和列名做上述变换后,长度超过该种数据库类型的表名或列名允许的长度时,会自动截取到允许的长度;
可选地将数据模型文件的表名、列名分别作为数据库表注释、列注释,数据库表注释可包含数据模型的文件名;
即不同类型的数据库管理软件、数据管理软件、数据仓库管理软件,最终通过解析数据模型文件为基础,生成了可以创建数据表的SQL文本,尤其是批量情形时。大小写无关,均应在本发明的保护范围,SQL代码示例如下:
CREATE<可选的修饰符>TABLE<可选的修饰符>变换后的表名T3(
<可选前置添加的某些辅助列和列注释,>
变换后的列名1C3[1]字段类型COMMENT'可选的列注释,数据模型文件的原始列名1 C1[1]',
…
变换后的列名N C3[N]字段类型COMMENT'可选的列注释,数据模型文件的原始列名N C1[N]'
<,可选后置添加的某些辅助列和列注释>
)COMMENT='可选的表注释,数据模型文件原始表名T1';
表注释、列注释COMMENT是可选的,在不同的数据库注释的名称和SQL写法不同;
批量指定选定的列为某种数据类型模块:批量的用数据模型文件的原始列名集合C1, 通过匹配正则表达式,选出一些列,强制将列的字段数据类型设置成某种数据类型、长度、精度;在选择的数据库不支持该字段数据类型时,会自动替换成该类型数据库支持的等效或近似数据类型;
列数据类型可以同时设置多种,每种数据类型都有独立的正则表达式选取规则选项和启用校准选项,另有一个总开关整体控制启用或不启用;
数字类型的列会自动替换掉各国货币符号和三字母的货币缩写如¥、RMB、CNY、USD;
百分比的数值可自动变为等值小数识别和建模;
上述两项可选地分别在后续的软件配置项中分别标记为货币标志和百分比标志;
用导入的数据,校准强制的列数据类型模块:除此之外,用户可选地在上述强制列数据类型规则启用后,遍历该数据模型文件对应列的全部数据,在该列有数据时或强制列数据类型规则未启用时,根据该列全部数据的长度、精度和数值的最大值,来设置数据每列的字段数据类型和长度、精度,为保证健壮性和统一适配性,程序会根据字段数据类型将长度、精度设置自动为一个比最大值还大的一个统一值,不是直接取该字段类型允许的最大值,目的是为了最终的生成配置项和程序开发不用再调整,而不是为了仅数据导入;
所述数据模型文件转DDL部分还包括,长度为1的整数列转是否列模块,可选的将长度为1的整数类型的列,该列全部数据只有1,0和空值的列转是否列,根据数据库类型的不同可对应是否、BOOLEAN或BIT列数据类型;整数列泛指所有整数类型的列;
所述数据模型文件转DDL部分还包括,程序判断性添加ID主键、操作人、操作时间、角色权限、流程等字段和默认值模块,可选为本次创建的所有数据库表由程序判断性添加ID主键、操作人、操作时间、角色权限、流程等字段和默认值;如某个数据模型文件表本身就有这个字段或类似项则不添加,否则就添加,根据数据库类型不同执行不同的SQL, 其中添加ID主键步骤是业内通用的技术,本发明是按照前述规则,由程序判断性的添加或不添加,包括ID主键在内的多个可选辅助列,并支持一次性的批量指定;
角色权限和流程字段,有启用与否选项,启用后,通过正则表达式匹配来选取部分表名或视图名后,程序自动判断性添加字段,正则表达式有默认值,可更改;
角色权限和流程字段的选取规则可独立设置;
角色权限字段包含可自定义的多级组织机构字段,各个上级组织机构,可管理其管辖区域内的数据,还有上级机构名称、共享可见和禁止查看列;仅申请保护批量操作多个数据表实体的这种情形;
然后同步自动生成组织机构逐级的字典数据库表并在后续软件***做组织机构配置项的绑定,字典表可包含主键自增ID、组织机构名称、上级、拼音、下拉提示用的各个字或单词首字母、语言、英文名称、区号、邮编、正式全称、简称等列;
列名和字段名仅是中文说明,具体名称可与此不同,可选具体表名和字段名按照表名变换和列名变换模块的设置处理;
如提供的数据模型文件表名集合T1中及***自带默认的组织机构数据模板中有与填写的组织机构有匹配的模板数据,则直接导入表和数据,并做一定的数据处理和绑定;可选,且不限制组织机构层级数量;
模板数据的优先级如下:
首先是用户提供的数据模型文件,其次是***自带默认的组织机构数据模板;
对组织机构关系做了打包,选择其中一项组织机构关系包,会用该组织机构关系包来填充具体的组织机构,便于用户操作;
默认导入全部的模板数据;填写上级机构名称的全称或简称将只导入该区域和其下属的组织机构模板数据,并在后续软件***做该部分组织机构配置项中的绑定组织机构隶属关系;上级机构可以是多级的和单一的;
可选创建登录账号,当存在人员名单数据时通过指定用户表名、用户名列、可选指定密码列或默认密码,可选指定用户角色列,然后批量导入人员名单做登录用户名单,并在后续软件配置项中绑定,实现用户登录;可选在指定了用户角色列之后,可自动为人员名单中的每一个用户,按该列的数据分配用户角色;
自动创建登录管理员账号和默认密码,二者都有默认值;
可同步创建多个视图副本模块:以数据库表为基础同步创建视图,视图副本数可指定;
执行上述形成的SQL和相应的程序,创建数据库、数据表实体和进行数据处理;
当数据库中不存在变换后的工作表名为表名的数据库表的,会按本发明的规则创建数据库表,存在的则只导入数据不再创建数据表;
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
本发明选择创建表并同时导入数据模型文件中的数据,指定一个数据模型文件内多个数据表的处理顺序和每个数据表数据处理的顺序统一为正序或逆序,即从数据模型文件数据表有效数据的第一行由上而下处理导入到数据库表中,还是由下而上处理;根据多个数据模型文件排序处理模块,相同列结构的多个数据模型文件名,无论按正序还是逆序顺序命名,还是多个数据表和数据是倒序还是顺序排列,本***均会按正确的排序一次性导入;
还包括对类Excel文件合并单元格区域进行处理,对于每一个合并的单元格区域,程序会按照拆解后该合并单元格区域每个单元格的数据都相同来处理,更符合数据的本意,而不是只有左上角第一个单元格有数据其他都是空值来处理;无合并单元格的类Excel文件或其他不支持合并单元格的数据模型文件,则直接跳过该步骤;
还包括,指定排重列/唯一值列模块,为防止数据重复导入数据库,用户可指定数据模型文件某些列为排重列,该列名也同样会按照前述的列名变换模块的规则来变换;处理数据模型文件中的数据时会逐条与该列对比,判断满足排重规则的数据库记录是否存在,存在则忽略该行数据不处理,不存在则允许导入数据库;某些数据库支持的REPLACEINTO 和一般意义上的先判断是否重复,不重复再***的方式均应在本发明的保护范围;
还包括,清理单元格数据的首尾字符模块,可选地,对数据模型文件中的有效数据范围内的每个单元格的数据进行去除首尾的特定字符操作之后,再导入数据库,特定字符默认为不可见字符和空白字符,也可指定为任意字符的列表,列表内的字符均会去除;
还包括,自动设置字典项模块,程序可指定为主动发现数据模型文件的字典项,也可指定某批次导入的数据模型文件均强制作为字典项,当没有选择导入文件时,且启用了强制作为字典项选项时,将用目标数据库中已有的所有数据表实体和表注释,来分别匹配本项目导入目标数据库全部的表和视图名的列名和列注释作为匹配范围;
还包括,指定无字典项;字典项是指某列的取值只能为字典项的集合范围之内;
当检测到某列数据多次命中如组织机构等模板数据时,提供扩大字典项的选项,引用模板数据做字典项。
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
本发明所述数据处理部分包括数据模型文件导入数据库以及创建字典表;
包括主动发现字典项、强制指定字典项以及设置无字典项;
主动发现字典项选项被启用后,有如下情形之一的,被主动发现为字典项:
1.数据模型文件的某列数据去除重复值之后,仅为有限个值,显著少于数据行数;
2.数据模型文件的列名称中包含一定的文字特征如含有“字典”二字,或含有“!”,则被识别为字典项;该文字特征会在转为数据库的列名前去除掉;
这两种情形下,发现的有限个值的个数在一定范围时,会被直接引用为字典项,在后续的软件***配置项中各字典项会绑定为字典值列表;不在某个数范围内,将自动创建数据库字典表,并将有限个值自动***到该字典表中,在软件***配置项中会被绑定为字典项数据表、显示名称列、字典值列,并可绑定排序条件和筛选条件;
还包括,强制作为字典项选项,启用后,除包含前述的两种情形外,本批次导入的数据模型文件的全部表名集合或表注释集合中,某个工作表名和匹配范围内的其他表的某个列名或列注释有关联,包括但不限于相同、拼音、同义词、翻译或包含时,则前表数据将自动作为该列的字典项;
字典表至少包含一列,该列可作为字典项的显示名称列和值列;字典表可包含字典项辅助列,除“值”列外,辅助列不可以作为字典项,但是会后续的软件***作为可选的配置项目起作用;辅助列可包含ID、排序号、值、显示与否、启用与否、操作人、操作时间列和它们的近似库;
可以自定义不可做字典项的列名排除名单,其中包含一部分辅助列名;
当只有一列时或排除列名排除名单中的列后只有一列时,该列作为字典项的显示名称和值;超过两列时,将按照优先级确定字典项的显示名称列和值列;列数超过某个值后,该表将不再作为字典表;
当字典表中有多个可做字典项的显示名称列时,确定显示名称列的优先级如下:
1与字典表名称相同的列;2在列名排除名单之外,第一个可以做字典项显示名称列;
当字典表中有多个可做字典项的值的列时,确定字典项的值列的优先级如下:
1列名为“值”的列;2在列名排除名单之外,第一个可以做字典项值的列,整数列优先;
字典项的匹配范围是“本次导入”时,仅用本次导入数据模型文件的所有表名集合T1, 逐个来匹配本次导入的全部数据模型的原始列名集合C1;
字典项的匹配范围是”全库”时,则用本次导入数据模型文件变换前后的所有表名集合T1,T3,逐个来匹配本项目导入目标数据库全部列名和列注释;
当没有选择导入文件时,且启用了强制作为字典项选项时,将用目标数据库中已有的所有数据表实体和表注释,来分别匹配本项目导入目标数据库全部的列名和列注释作为匹配范围;
用表名来匹配列名,相对于列名匹配列名这种方式能成倍的提高匹配效率;
创建字典表时,除字典项之外,程序可自动创建字典项辅助列。
本发明软件***部分包括可选的通过程序自动批量性的创建数据库级别或表级别数据库表/视图、表/视图对应的菜单和列的配置项信息;
通过本次导入的数据模型文件数据表名集合T3和T1获得本次导入的表名/视图名、表注释,列名集合C3和C1分别获得列名和列注释。
通过遍历数据库***中自带的存放表名、列名的表获得全库级别或表级别的表名、视图名、表注释和列注释存储为表/视图和列的配置项。
每一个表/视图的配置信息包括表格的数据库名称table name、表注释、表显示名称以及启用该表的全表搜索;
还包括,表显示名称配置项按照这样的设置取默认值,如有表注释,程序默认自动设置为表注释,否则为表或视图名称;
每一个菜单的配置项包括菜单图标,菜单ID,菜单父级ID,菜单显示文本,菜单链接网址, 项目名称,菜单项显示顺序号,菜单项显示否;
每创建一个数据库表或视图,程序同步创建一个上述形式的与之对应的菜单配置项;还包括,菜单显示文本配置项按照这样的设置取默认值:,对应数据库里的表格或视图名原始值T1,如有表注释,程序默认自动设置为表注释,否则为表或视图名称;
还包括菜单链接网址配置项默认值规则,是包含变换后表名或视图名T3的网址;
还包括,可自动按文件夹层次结构和文件名创建菜单分组模块,如果在处理数据模型文件的时候,获取到了文件夹信息,则每层文件夹创建一个菜单项目,作为最终数据表或视图对应的菜单的上级菜单配置信息,菜单项的隶属关系复制文件夹的隶属父子关系;
可选如果启用文件名作为数据库表或视图名,导入的数据模型文件有多个数据表时,则自动创建一个父级菜单在最终数据库表或视图名对应的菜单项上一层;
还包括,随机菜单图标,第一个菜单项的图标为从图标库内随机选择一个,之后的菜单项图标为按菜单项显示顺序号顺次从图标库取下一个图标,保证整个项目图标尽量不重复;图标库取完之后,重新上述操作;
每一个列的配置信息包含列名称、列注释、列的显示名称、列的字段类型、字段长度、字段精度、列的数据库默认值、启用该列被专项搜索与否、专项搜索类型、启用被全表搜索、列启用链接、列的链接前缀、后缀、字典项类型、列表形式的数据字典项、数据表形式的字典项表名、显示名称列名、值列名、排序列名、筛选条件五项和其他字典项辅助列、启用统计函数,统计函数可多选;
还包括,如某列有列注释,程序自动设置列注释为显示名称配置项值,否则为列名称;
还包括,智能筛选模块,可选批量的对某种数据类型启用专项搜索配置项;
还包括,数据下钻模块,通过在全部列的配置信息加入以搜索的链接为列的链接前缀,并且列启用链接;每一个数据项以自身作为搜索词,在将配置文件解析成程序代码后,实现了数据向下钻取,当链接前缀为全局搜索链接时,则实现了全局数据下钻;
还包括,批量操作选定的表/列的配置项模块,每个配置项可单独通过可自定义正则表达式来匹配数据库实体名或其注释,批量选定表或列配置规则,对表和列的配置项批量性的做设置包括但不限于添加、修改、删除等动作。可选包含启用该规则与否选项,可选包含全局总控启用与否选项;
在表或视图(含软件定义的虚拟视图)的配置信息中数据模型文件转DDL部分程序判断性添加ID主键、操作人、操作时间、角色权限、流程字段和字典项,即指定该表或视图的某列是该表的ID主键、操作人、操作时间、角色权限以及流程字段;角色权限字段含多级组织机构字段;
读取数据模型文件转DDL部分的设置值以及遍历目标数据库中列默认值表获得全部列默认值,经过一些可选处理步骤后,作为全部列配置项的默认值;
配置信息默认为生成SQL,执行后在软件***平台***相应数据,也可以通过程序解析成常用的XML或JSON格式的配置文件;程序解析配置文件生成相应的程序代码;
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
本发明还包括将以上设置可保存为规则,下次使用时可通过规则名,引用设置自动填充本发明中提到的所有选项和可选项。
本发明积极效果如下:
通过实现了通过将用户的excel或csv等数据模型文件或文件夹或压缩包混选或之一, 一次性批量快速转换成数据库表,并同时按指定的选项对数据建模和数据导入做预处理和后续处理,来满足数据建模和数据处理的要求,并据此生成稳健的配置项和开发软件。
这些处理包括文件压缩文件和多种数据模型文件批量混合选定,可选择有效数据区域, 文件名和工作表名之一或组合做数据库表名,表名和列名变换,强制表名,强制字段类型和校验,,字段类型批量设置,批量操作选定的表/列的配置项,程序判断性添加ID主键、操作人、操作时间、角色权限、流程等字段和默认值,数据下钻,可解析多个excel工作簿, 自动发现字典项,文件处理排序和数据处理排序,表列清洗,数据清洗,组织机构包和导入,文件夹名和文件名层次复制为菜单层次。不限于此,排名不分先后,只做功能模块的叙述。
附图说明
图1为本发明排序规则示意图;
图2为本发明excel数据模型文件示例;
图3为本发明排除无效数据中简单模式示例;
图4为本发明数据库表转换示例;
图5为本发明表名变换和列名变换模块示意图;
图6为本发明float类型举例示意图;
图7为本发明角色权限字段示例;
图8为本发明省级机构模板数据示例;
图9为本发明自动设置字典项模块示意图;
图10为本发明对表或列的设置配置项示意图;
图11为本发明功能清单。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本申请及其应用或使用的任何限制。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
无排除上下左右任意之一的无效数据的(指定字段名行除外),且无合并单元数据模型文件,也不做本发明类似的表名或列名的变换,不添加注释,数据保持原样创建DDL和导入数据,也不做数据模型文件转DDL部分及其之后的处理的,也不对数据模型文件处理做排序操作的,也无导入数据之后的全部的或部分的类似操作,不作为本发明的保护范围。
对处理步骤顺序做变化或类似演化,也应在本发明的保护范围。
本发明所指的数据模型文件,包括类excel文件,不限于excel文件,可以用excel程序打开的扩展名为xls、xlsx、xlsm、csv文件,et、ett WPS表格文件、open officeSpreadsheet的ods文件、Excel程序可打开的兼容的XML文件和带table标签的HTML文件。以及Access新老版本、SQLite数据库、数据库连接信息文件和SQL文件形式。
此外允许将成批的或单个的混合类型的上述文件直接打包或分散在含多层子文件夹的多个文件夹及文件打包成压缩文件rar,zip,gzip等压缩格式,有些格式还支持密码加密, 也在本发明的支持范围,为方便描述,统称为数据模型文件。
对数据模型文件无模板化要求;对同批次处理的数据模型文件的列数、行数均无相同等要求,通用的上述数据模型文件本发明均支持,有效数据区域内每行有效的数据,可对应一条数据库的记录的数据模型文件,也就是这个数据模型文件可转化成多条数据库记录。此外只有列名或表结构的空表,本程序均支持,但不限于此。
数据模型文件中有无无效数据和合并的单元格,以及有无字段名均在本发明支持范围内。只有数据没有字段名的数据模型文件,会依次将列命名为英文字母列和字母组合列。
本文中所有的空白包含中英文全半角空格、回车、换行、制表符等ASCII非打印字符。
本文所述的数据库实体:是指数据库或数据管理软件中的表(table)、视图(view)、字段 (field)、列(column),其中字段和列是同义词。
数据表实体:是指数据库或数据管理软件中的表(table)、视图(view),能以SQL语句或类SQL语句CREATE<可选的修饰符>TABLE或VIEW创建的数据库实体,不限大小写。
工作表:为便于表述,泛指来源于数据模型文件的表。指数据模型文件中的excel的工作表和数据库形式的数据模型文件中的表和视图,SQL备份文件形式的数据模型文件中导入到临时数据库后,该临时数据库的表和视图。
本文所述的SQL和DDL:DDL即数据定义语言,是SQL的子集。本质是一段文本内容,并不局限于数据库SQL,将数据按照上述数据表实体形式来创建和管理的都适用。
本文中所提到的正则表达式均指代正则表达式和常用通配符*,*在匹配选定表名、列名这些简单应用时,正则表达式和通配符的意义和效果相同,均代表任意个字符或汉字。
本文中的配图和正则表达式仅做为示例,非保护范围仅限于此。
用户可批量选定数据模型文件,获取到数据模型文件的文件夹层次、文件名和数据模型文件对象本身,可选对这些文件做排序处理(排序1),这些文件有无合并的单元格和在有效数据上下左右有无效数据,如【图2】,均可处理,通过可选项确定原始数据表名集合T1,可设置需要处理的有效数据的上下左右边界和某行各单元格数据为原始列名集合C1,通过几个可选步骤程序处理转换,生成DDL语句,该DDL执行后可创建数据库和数据表实体,当存在目标数据库和数据表实体时则跳过其创建步骤,继续后续步骤。按照用户选定的顺序处理(排序2)其中的数据,经过几个可选的步骤,实现数据变换,可选自动发现并创建字典项和字典表。最后根据数据模型文件的文件夹层次、文件名、数据表名、字典项等数据内容和生成相应的SQL、JSON、XML统称软件配置项,通过程序解析这些软件配置项生成相应的软件。
文件夹层次可从文件***和压缩文件形式的数据模型文件中获得。仅部分数据模型文件获取方式时有效,获取不到时,程序会略过该项。
以上设置可保存为规则,下次使用时可通过规则名,引用这些设置自动填充上述选项。
实现形式可以是网络表单形式、一般软件、手机软件或命令行或基于网络的API形式如 GET、POST、AJAX。
数据模型文件及有效数据选定部分
用户选定数据模型文件的方式有以下几种方式:
①通过网络上传选定
②直接给定一个或多个数据模型文件的URL,逐个URL下载保存数据模型文件后选定
③指定单一或多个索引性质的网络URL,每个索引性质的URL是文本形式的数据模型文件URL列表集(比如每行一个数据模型文件URL),程序先自动下载索引性质的URL,再解析该文件,得到最终数据模型文件URL结果集,解析每一个有效的数据模型文件的URL,下载保存为数据模型文件后选定。
④直接读取程序所在计算机或其网络共享位置上特定文件夹或文件模式。
方式①网络上传方式选定又细分为上传单一数据模型文件、一次性上传多个数据模型文件、选择客户端文件夹三种模式,后两种支持子文件夹,选择客户端文件夹这种方式时鉴于客户端的安全性不能将目录结构主动发送,本发明通过编写的ECMAScript从客户端将目录结构传递至服务器端处理。
可将分散于多层文件夹的数据模型文件和其多个可加密压缩格式批量混合选定模块:以上这几种方式,均支持多种压缩文件,可设置解压缩密码和多种类型格式的数据模型文件一次性选定后,可不加区分的混合处理,提高了工作效率。通过文件扩展名和文件头信息和其他辅助信息,调用不同的处理程序来分别处理这些数据模型。
数据模型文件概括为三大类:类Excel文件、简单数据库文件、数据库连接信息文件和SQL文件形式的数据库导出或备份文件。
可批量的将压缩文件类型的数据模型文件,按压缩文件类型调用不同的解压缩模块,分类解压缩之后,与普通未压缩的数据模型文件归并在一起,进行后续处理。压缩文件中存储的相对路径信息和文件名信息,也会作为文件夹层次和文件名信息的一部分,和正常文件夹和文件名信息一样一并处理。
可选地通过程序对过于冗长的文件夹层次做一定的优化精简层次,如无分支的多层文件夹,只保留一层。压缩文件夹获取到的和压缩文件名相同的冗余起始目录等。
多个数据模型文件排序处理模块:本发明会在开始处理这些数据模型文件之前,根据给定的顺序,顺序、逆序、保持原有顺序(不排序)来处理这些数据模型文件,如果获取到了文件夹信息(获取相对目录),则按照文件夹和文件名称排序,否则只按照文件名称来排序,为防止乱码会对文件夹名和文件名进行编码转换。
排序规则包含按照文件名的计算机内码和按照人类自然语言不区分大小写排序,包含顺序排序和逆向排序。如图1所示。
可人为改变排序:文件名或文件夹名前面可以带上序列加小数点形式的排序号如1.xxx.xls、2.yyy.xls,处理时,小数点和序列只作为数据处理排序依据,在处理时会被删除掉。
下面说的各个选项均统一的作用于本批次全部数据模型文件(file)和所有工作表。
本发明可以处理有合并的单元格类excel文件和无合并单元格的一般数据模型文件,并可可选地将数据模型文件去除左右和表头表尾后,只处理有效区域的数据,据此创建数据库表和进行后续的数据处理。
排除无效数据,选择数据的有效区域的方式包括简单模式和专业模式。
如【图2】所示excel数据模型文件,简单模式时照【图3】设置,可排除上下左右的无效数据,将内部粗黑框内的有效数据区域选定,通过本发明的程序转换可生成【图4】这样的数据库表,并同时将execl数据导入到指定的数据库中。
确定处理目标部分
1.可选择软件***中已有的数据项目,作为创建表和导入数据的目标数据库,这些项目可以是MySQL、MariaDB、SQL Server、Oracle、PostgreSQL及其兼容衍生数据库等关系数据库和hive、Spark等数据或数据仓库管理工具的SQL类似管理工具部分。2.也可以新建上述数据库,填写新的数据库项目名称和数据库类型、数据库名称、用户名、密码等数据库连接信息,可简化为只填项目名,其他数据库相关信息自动生成,据此生成数据库, 作为创建表和导入数据的目标数据库。3.也可在选择了数据目标数据库类型多选列表、处理选项后直接输出、保存或下载文件,文件分为程序和SQL语句两种。处理选项分为到建表DDL阶段、同时导入数据直至最终生成配置项、生成软件几个阶段,当数据模型文件文件的数据库类型在处理目标的目标数据库类型多选列表中时,提供修改表ALTER TABLE,删除表DROPTABLE处理选项,即不导入,直接在源数据库修改、删除、新建表和视图。
数据模型文件转DDL部分
本部分实现了批量解析数据模型文件集合,通过可选项确定数据表名集合T1,可选的对数据表名集合T1和数据模型文件表的列名集合C1进行一定组合变换和处理后,批量创建数据库表集合T3,各表中的列取自列集合C3,可选的由程序添加各表注释T1即变换前的各数据表名原始值和各列注释C1即变换前的数据表各列名原始值,生成DDL语句,可选的创建数据库视图DDL语句,执行之后创建相应的数据表实体,可选导入一部分组织机构等辅助数据;核心点是据此生成了CREATE TABLE SQL语句(文本),CREATE和TABLE前后可选添加修饰词。
添加文件名为表名模块和表名删除sheet N模块:在处理这些数据模型文件时,用户可选择将数据模型文件名(指去掉扩展名和其前小数点的基本文件名,下同)和工作表名合在一起或取两者之一作为数据库表名或视图名,可选择将工作表名中的sheet N(N为任意自然数,sheet、N前后有或没有空白字符均会被正则表达式匹配替换)去掉只取数据模型文件名作为数据库的表名或视图名,记作原始表名集合T1。
这些选定的不含扩展名的数据模型文件的基本文件名须不同,和各个数据模型文件的工作表名,按上述规则组合变换后,和目标数据库的数据表和视图名须不同。做变换后工作表名称相同的,且在列名、列数和列的数据类型相同的情况下,可将相同工作表数据汇总导入同一个数据库表。
可选项强制表名模块:同一批次的数据模型文件可统一指定为同一个数据库表名。这些文件的列结构须相同。比如某银行账单只允许每次导出三个月的excel文件,文件名是随机生成的一串字符,可批量将全部账单excel文件导入本***,可统一指定数据库表名为“XX银行账单”,此种情况会只创建一个数据表。该表名也同样会按照下述的表名变换规则(如取拼音等)变换。
强制表名的优先级比T1高,当强制表名存在时,强制表名的原始值会取代T1。
数据模型文件的各表中各列名(或称字段名)原始值的集合,记作集合C1。
做完表名/列名中的空白和特殊字符清理的集合T1,C1,分别记作集合T2、C2
表名变换和列名变换模块:通常数据模型文件的文件名、工作表名和列名极大可能包含中文等非ASCII字符,根据***兼容性需要,转为数据库表时必须转为可见ASCII字符,且最好首字母是英文字母或下划线”_”,可选择的变换方式有:翻译,取拼音(可细分),内码这三种方式,选取其中任意1到3种,按照可选择的顺序串接组合变换处理,再加上”保持原样”这种变换方式。可设置某项变换(含变换组合)为默认值,如【图5】所示。
做完表名变换和列名变换处理的集合T2、C2,分别记作集合T3、C3,T3作为最终的表名和包含在后续的菜单的链接中,C3作为最终的数据表实体列名。
可选项使用未变换之前的数据表实体名集合T1、列名集合C1分别做表注释、列注释,和SQL语句一起写入数据库,便于开发人员理解数据库结构。注释的添加标准如【图5】所示,分三种:①添加注释,“保持原样”时除外;②全部添加注释;③全部不添加注释。表注释、列注释的添加标准可分别指定。
本发明的内码变换举例:如“发明”二字16进制unicode内码为x53D1 x660E首位添加_(防止首字母为数字)转换为_53D1660E后,将其作为数据库表名或列名。
之后按上述的数据库实体注释的添加标准,可选地将“发明”作为表注释或列注释。
16进制的unicode内码仅作为示例,其他的程序化的将表名列名编码为类似的计算机编码(如utf-8、GBK、CJK、GB-18030编码)以及取反,异或等常用编码变换操作、及前后增减某些字符和其他进制均应作为本发明的保护范围。
取拼音举例:例如【图4】第一行编号所示,前面的是列名BianHao转换后的字段取拼音,后面的编号的二字为按照列注释的添加标准添加的列注释。
同一个表遇到列名转换后重名的情况时,添加序号解决重复问题。
使用多种变换方式组合的原因之一:翻译只能翻译字典内的词,不能翻译字典之外的词,会保持原样,取拼音只能对汉字取拼音,外文、特殊符号、数理化符号等则不能取拼音,会保持原样,在后续的数据库建表和生成配置项的过程会产生错误或健壮性问题,内码方式可以终极解决这些问题,但可读性较差。
即不同类型的数据库管理软件、数据管理软件、数据仓库管理软件,最终通过解析数据模型文件为基础,生成了可以创建数据表的SQL文本,尤其是批量情形时。大小写无关,均应在本发明的保护范围。
如【图2】的文件名为:水浒.xls,工作表名为ShEet108,以MySQL代码示例如下:
CREATE TABLE IF NOT EXISTS ShuiHu或ShEet108之一或组合(
<可选前置添加的某些辅助列和列注释,>
BianHao int NULL COMMENT'编号',
…
变换后的列名N C3[N]字段类型COMMENT'可选的列注释,数据模型文件的原始列名N C1[N]'
<,可选后置添加的某些辅助列和列注释>
)COMMENT='水浒或ShEet108之一或组合';
表注释、列注释COMMENT是可选的,在不同的数据库注释的名称和SQL写法不同。
用本发明的创意实现的CREATE TABLE或变通为修改表ALTER TABLE,删除表DROPTABLE 的程序均应在本发明的保护范围,不同数据库具体实现SQL语句可能略有不同。
批量指定选定的列为某种数据类型模块:批量的用数据模型文件的原始列名(字段名)C1,通过匹配正则表达式,选出一些列,强制将这些列的字段数据类型设置成某种数据类型、长度、精度如int、bigint、float如【图6】所示、decimal、money、date、datetime、varchar(X)、varchar(Y)、varchar(Z)、text(备注)等列数据类型。包括当但不限于此,仅用作示例。X、Y、Z指varchar文本数据类型的字段长度可以通过程序配置,如配置常规短文本varchar(50),中长度文本varchar(100),和地址类型的长文本varchar(200),没有匹配到的,默认设置为varchar(50)。
在选择的数据库不支持该字段数据类型时,会自动替换成该类型数据库支持的等效或近似数据类型。如money会自动替换成decimal或float,date会替换成smalldatetime,datetime会替换成timestamp,varchar会替换成varchar2。
仅用float类型举例,当【图6】左侧,类型校验选取后,在该列有数据时通过用导入的数据,校准强制的列数据类型模块,所述的方法遍历该数据模型文件对应列的全部数据,校准批量指定选定的列为某种数据类型模块强制设置的列类型;不选取时,按照批量指定选定的列为某种数据类型模块的设定,设置列数据类型。
可选为本次创建的所有数据库表由程序判断性添加ID主键、操作人、操作时间、角色权限、流程等字段和默认值。
流程字段包括:流程编号、当前流程状态、流程操作人、审批时间、启用流程。
角色权限字段可包含可自定义的多级组织机构字段,例如国省市县乡村多级行政区划或大学校区院系班,各上级组织机构,可管理其管辖区域内的数据,顶级机构名称,共享可见和禁止查看。该步骤仅申请保护可批量(含分步骤的)操作多个表或视图的这种情形。
然后同步自动生成逐级的字典数据库表(如国省市县乡村,但不限于此,可自定义),可包含主键自增ID、组织机构名称、上级(没有上级的做特殊处理)、拼音、下拉提示用的各个字或单词首字母、语言、英文名称、区号、邮编、正式全称、简称。
列名仅是中文说明,具体名称可与此不同,可选具体表名和列名按照表名变换和列名变换模块的设置处理,如取拼音加注释等。
如用户提供的数据模型文件表名集合T1中及***自带默认的组织机构数据模板中有与填写的组织机构有匹配的模板数据,则直接导入表和数据,并做一定的数据处理和绑定。可选,且不限制组织机构层级数量。如【图7】文字框内黑色字体部分,灰色字体输入框文字为输入提示。
为了便于用户操作,对这些组织机构关系还做了打包,选择其中一项,会用该组织机构关系包来填充具体的组织机构,如【图7】前两行显示的省市县乡村等等,仅作为示例,不仅限于这些组织机构包。
默认导入全部的模板数据。如只需要部分区域的"市县乡村"填写正确上级机构名称的全称或简称将只导入该区域的数据和绑定,上级机构可以是多级的和单一的。为便于理解,用省级机构举例,但不限于省级,各级组织机构均适用。如【图7】所示“请填写所属省区”空白时表示导入全部的数据,填写河北或河北省时,市州盟数据只导入河北省的数据,区县旗和乡镇街道数据也会只导入河北省下属的,依次类推,并在数据库中添加省区市这列,该列的值全部为“河北”,在后续的软件配置项中会绑定组织机构隶属关系。
可选创建登录账号,当存在人员名单数据时通过指定用户表名、用户名列、可选指定密码列或默认密码,可选指定用户角色列,批量导入登录用户名单,并在后续软件配置项中绑定,实现用户登录,可选在指定了用户角色列之后,可自动为人员名单中的每一个用户,按该列的数据分配用户角色,如【图8】左侧所示。
自动创建登录管理员账号和默认密码,二者都有默认值,如【图8】右侧。
可同步创建多个视图副本模块:以数据库表为基础同步创建视图副本,视图数量可指定。
执行上述形成的SQL和相应的程序,创建数据库、数据表实体和进行数据处理。
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
数据处理部分
数据导入正序逆序排序模块:用户可选择创建表并同时导入数据模型文件中的数据,用户可指定一个数据模型文件内多个数据表的处理顺序和每个数据表数据处理的顺序统一为正序或逆序,即从数据模型文件中数据表有效数据的第一行由上而下处理导入到(刚才创建的,已有库表的则直接导入)数据库表中,还是由下而上处理(数据模型文件及有效数据选定部分说的是文件处理的顺序)。
以月账单导出的excel为例,导出文件名为月份,无论是这些文件否含有前导0(文件处理可按文件名自然排序),还是分成多个工作表(sheet)和账单流水数据是倒序还是顺序排列(工作表sheet,数据处理正序逆序可选择),结合前述的强制表名模块,本***均会按正确的排序一次性归集导入单一的数据表中,按顺序存储数据,可提高数据查询的效率。
对类Excel文件合并单元格区域进行处理:提高容错性和数据准确率。对于每一个合并的单元格区域,程序会按照拆解后该合并单元格区域每个单元格的数据都相同来处理,更符合数据的本意,而不是只有左上角第一个单元格有数据其他都是空值来处理;无合并单元格的类Excel文件或其他不支持合并单元格的数据模型文件,则直接跳过该步骤。
日期类型特殊处理:在数据模型文件中,日期和时间存储为数字,常常会导入成整数或浮点数。在数据导入的过程中会对时间和日期类型字段做特殊处理,以保证识别为准确的时间/日期,仅做公开。
自动设置字典项模块示意图【图9】
当启用强制作为字典项选项时,如某个excel表名为颜色,字典项的匹配范围内存在与颜色有关联(包括但不限于相同、拼音、同义词、翻译或包含)的列,则前表数据将自动作为该列的字典项。
用表名来匹配列名,相对于列名匹配列名这种方式能成倍的提高匹配效率。
数据库的所有表名、视图名、列名和表列注释,均可用SQL语句从相关数据库内置表或语句中查询出来并存放到集合中,也可以通过从配置项集合中获得,方式很多。
本发明所述的字典表的匹配特征点和功能,可变通为表/列表名列名变换前后数据库中的表/列或软件***中的表/列配置项中实现,均应在本发明的保护范围内。
创建字典表时,除字典项之外,程序可自动创建主键自增ID、排序号、值、显示与否、启用与否、操作人、操作时间列。这些列的作用顾名思义,可根据实际调节是否有该列。
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
软件***部分
可选的通过程序自动批量性的创建数据库级别或表级别数据库表/视图、表/视图对应的菜单和列的配置项信息。注意和数据库和表/视图、列的区别,这是它们对应的配置信息跟数据模型文件导入的数据库可以不同或相同,可以是外部的软件***。
智能筛选模块:可选批量的对某种数据类型启用专项搜索配置项,如浮点float、金额 money、整数int、日期date、时间datatime类型的列。
批量操作选定的表/列的配置项模块示例:
在软件开发或数据建模过程中,尤其是通过解析数据模型文件文件来建模的,对表(含菜单项)或列的配置项做设置的过程,包括但不限于平均数,最大值,最小值,求和,计数等某个配置项,采用了【图10】的技术特征的,即通过包含可自定义或隐含的或固定的并允许默认值的正则表达式来匹配数据库表名、视图名、列名等数据库实体名,批量选定表或列配置规则,对表和列的配置项批量性的做设置包括但不限于添加、修改、删除等动作。每个配置项可单独设置匹配正则表达式,来选定表或列配置项,可选包含启用该规则与否选项,可选包含全局总控启用与否选项,均应作为本发明的保护范围。
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
上述各步骤发生错误会做相应的错误处理操作和提示。
Claims (7)
1.一种批量数据建模和数据处理的方法,其特征在于:包括数据模型文件及有效数据选定部分、确定处理目标部分、数据模型文件转DDL部分、数据处理部分以及软件***部分;
批量选定数据模型文件,获取到数据模型文件的文件夹层次、文件名和数据模型文件对象本身,可选对文件做排序处理,文件有无合并的单元格和在有效数据上下左右有无无效数据均可处理,通过可选项确定原始数据表名集合T1,可设置需要处理的有效数据的上下左右边界和某行各单元格数据为原始列名集合C1,按照确定处理目标部分的设定,通过几个可选步骤程序处理转换生成DDL语句,该DDL执行后可创建数据库和数据表实体,当存在目标数据库和数据表实体时则跳过其创建步骤,继续后续步骤;
按照选定的顺序处理其中的数据,经过可选的步骤,实现数据变换,可选自动发现并创建字典项和字典表;
最终根据数据模型文件的文件夹层次、文件名、数据表名、字典项等数据内容和生成相应的SQL脚本、JSON、XML统
称软件配置项,通过程序解析软件配置项生成相应的软件;
按照确定处理目标部分的设定,提供截止到某步骤的执行该SQL语句和功能,即实际实现上述功能,以及生成SQL语句和程序代码直接显示、保存及下载文件功能。
文件夹层次可从文件***和压缩文件形式的数据模型文件中获得,仅部分数据模型文件获取方式时有效,获取不到时,程序会略过该项;
以上设置可保存为规则,下次使用时可通过规则名,引用设置自动填充选项。
2.根据权利要求1所述的一种批量数据建模和数据处理的方法,其特征在于:所述数据模型文件及有效数据选定部分,用于确定要处理的数据模型文件集合、对数据模型文件排序以及确定每个文件的有效数据区域,有效数据区域可以是不含列名和含列名的整个工作表或工作表的部分区域;
获取数据模型文件包括网络上传获取、指定URL下载保存数据模型文件以及指定索引性质的网络URL,每个索引性质的URL是文本形式的数据模型文件URL列表集、获取以及计算机文件模式获取,均支持单个和批量形式的获取数据模型文件;
还包括,可将分散于多层文件夹的数据模型文件和其多个可加密压缩格式批量混合选定模块,以上获取数据模型文件方式,均支持多种压缩文件,可设置解压缩密码和多种类型格式的未压缩的数据模型文件一次性选定后,可不加区分的混合处理;
通过文件扩展名和文件头信息和其他辅助信息,调用不同的处理程序来分别处理所述数据模型文件;
所述数据模型文件包括类Excel文件、简单数据库文件、数据库连接信息文件以及SQL文件形式的数据库导出或备份文件;
1.类Excel文件为通过文件扩展名来调用不同的处理模块来读取表、列和数据;
2.简单数据库文件为通过文件扩展名来调用不同的处理模块和数据库访问层DAL来读取表、列和数据;
3.数据库连接信息文件通过文件中数据库类型、服务器地址实例名、数据库及模式名、用户名密码等连接信息来调用不同的处理模块和数据库访问层DAL来读取表、列和数据;
4.SQL文件为通过指定该文件的数据库类型和文件编码类型后,由程序调用该类型数据库对应的处理模块和数据库访问层DAL,由程序以SQL基本文件名为基础创建该类型数据库的临时数据库或数据库模式后,由程序将该SQL文件导入临时库后,由程序读取表、列和数据;当数据库类型未指定时,程序分析sql文件头部信息、某类数据库特有关键字和CREATE TABLE和括号之前的数据库转义字符,如[]来确定数据库类型。
如果数据模型文件中存在压缩文件,根据文件扩展名和文件头信息和其他辅助信息,批量的将压缩文件类型的数据模型文件,按压缩文件类型调用不同的解压缩模块,分类解压缩之后,与普通未压缩的数据模型文件归并在一起,进行后续处理;
压缩文件中存储的相对路径信息和文件名信息,也会作为文件夹层次和文件名信息的一部分,和正常文件夹和文件名信息一样一并处理;
可选地会对过于冗长的文件夹层次做一定的优化精简层次;
所述数据模型文件及有效数据选定部分还包括多个数据模型文件排序处理模块,在开始处理所述数据模型文件之前,根据给定的顺序,顺序、逆序、保持原有顺序来处理所述数据模型文件,如果获取到了文件夹信息,则按照文件夹和文件名称排序,否则只按照文件名称来排序,为防止乱码会对文件夹名和文件名进行编码转换;
排序规则包含按照文件名的计算机内码和按照人类自然语言不区分大小写排序,包含顺序排序和逆向排序;
可人为改变排序,文件名或文件夹名前面可以带上序列加小数点形式的排序号如1.xxx.xls、2.yyy.xls,处理时,小数点和序列只作为数据处理排序依据,在处理时会被删除掉;
只要所述数据模型文件之一包含csv、html、sql等纯文本文件或压缩文件,可指定文件编码如utf-8,不包含上述文件时无需指定编码;
排除无效数据,选择数据的有效区域的方式包括简单模式和专业模式;
简单模式,设置第N行有数据区域的各单元格作为有效数据的列名,同时N行做为有效数据的上边界,N行之前的数据模型文件的数据会被***忽略,设置去掉尾部的P行,自有数据区域尾部起倒数P行,共P行的数据会被忽略不处理;
P是倒数的,这样设置可以允许有效数据行数是不定的,这在同时导入多个行数不确定的账单形式的文件时,尤其是尾部有固定行的如汇总,审批栏的那种,可保证一次设置,同时适用于多个文件;
同理,可设置忽略左侧Q列和自有数据区域右起右侧R列的数据,R是倒数的;
N、P、Q、R分别指代有效数据上下左右边界的值,据此排除无效数据区域,可为任意字符或留空,当为实数时,会自动取整数,简单模式时会取绝对值,其他字符或为留空会按照数字0来处理;当N、P、Q、R为0时,以及N为1,P、Q、R为0时,且没有合并的单元格时分别对应无无效数据的,无字段名的和首行为字段名的普通数据模型文件导入这两种情形;
上述的处理都指的是数据模型文件的有数据区域;
专业模式左边界N、上边界P的设置和简单模式相同,右边界P、下边界R的设置不同;当P、R分别为负实数时,自动取整数绝对值为-P,-R,分别按从尾部倒数-P行和从右侧倒数-R列分别确定为有效数据区域的下边界和右边界,为正整数时从头到尾正数P行和从左到右正数R列分别确定为有效数据区域的下边界和右边界;
将上述边界获取规则反向变换、列边界取excel类似的字母列名称的变换或虽改变描述方法导致的边界取值移位,但是获取有效区域的作用相同的变换,也应该作为本发明的保护范围。
3.根据权利要求1所述的一种批量数据建模和数据处理的方法,其特征在于:所述数据模型文件转DDL部分,用于实现批量解析数据模型文件集合,通过可选项确定数据表名集合T1,可选的对原始数据表名集合T1和数据模型文件表的列名集合C1进行一定组合变换和处理后,批量创建数据库表集合T3,各表中的列取自列集合C3,可选的由程序添加各表注释T1即变换前的各数据表名原始值和各列注释C1即变换前的数据表各列名原始值,生成DDL语句,可选的创建数据库视图DDL语句,执行之后创建相应的数据表实体,可选导入一部分组织机构等辅助数据;核心点是据此生成了CREATE TABLE文本,CREATE和TABLE前后可选添加修饰词;
所述数据模型文件转DDL部分还包括添加文件名为表名模块和表名删除sheet N模块,在处理所述数据模型文件时,可选择将数据模型文件名和工作表名合在一起或取两者之一作为数据库表名或视图名,可选择将工作表名中的sheet N其中N为任意自然数,sheet、N前后有或没有空白字符均会被正则表达式匹配替换,去掉只取数据模型文件名作为数据库的表名或视图名,记作原始表名集合T1;
所述数据模型文件转DDL部分还包括强制表名模块:同一批次的数据模型文件可统一指定为同一个数据库表名,文件的列结构须相同;
强制表名的优先级比T1高,当强制表名存在时,强制表名的原始值会取代T1;
数据模型文件的各表中各列名原始值的集合,记作集合C1;
所述数据模型文件转DDL部分还包括清理表名/列名中的空白和特殊字符模块,选择该项后可去除获取到的数据模型文件所在的目录和上层级文件夹名、数据模型文件名、工作表名、数据模型文件工作表的列名中的空白和特殊字符,去掉不符合数据库表名、字段名和程序变量命名规则的字符;
做完表名/列名中的空白和特殊字符清理的集合T1,C1,分别记作集合T2、C2
所述数据模型文件转DDL部分还包括表名变换和列名变换模块,通常数据模型文件的文件名、工作表名和列名极大可能包含中文等非ASCII字符,根据***兼容性需要,转为数据库表时必须转为可见ASCII字符,且首选首字母是英文字母或下划线”_”,可选择的变换方式有翻译、取拼音以及内码,选取其中任意1到3种,按照可选择的顺序串接组合变换处理,再加上”保持原样”这种变换方式;可设置某项变换及变换组合为默认值;
所述数据模型文件转DDL部分还包括表名变换和列名变换,可以防止数据库因编码混乱等原因造成的乱码或表列或数据无法正确读取,减少SQL中表名、列名添加转义字符和后续自动生成软件配置项更方便,很多配置项会直接转化为程序变量,现有编程技术对汉字做变量名和变量名首位为数字多数不支持,日期数字做excel文件的表名列名很常见,但不符合变量的命名规则,在创建数据表实体时变换,可以从源头一劳永逸的解决问题;
做完表名变换和列名变换处理的集合T2、C2,分别记作集合T3、C3,T3作为最终的表名和包含在后续的菜单的链接中,C3作为最终的数据表实体列名;
所述数据模型文件转DDL部分还包括,使用未变换之前的数据表实体名集合T1、列名集合C1分别做表注释、列注释,和SQL语句一起写入数据库,便于开发人员理解数据库结构;注释的添加标准包括添加注释(”保持原样”时除外)、全部添加注释以及全部不添加注释;表注释、列注释的添加标准可分别指定;
本文中提到的所有的注释,不是SQL语句中执行时被忽略的那种注释,而是数据库本身可支持和显示的属性(COMMENT),在不同的数据库注释的名称和SQL写法不同,如SQLserver中叫做说明(Description),有的数据库或数据库实体不支持注释,则忽略。
内码变换是指将表名或列名逐字,转换为自身去掉冗余字符的计算机内码,当该字为英文字母、数字、或下划线_时,保持原样不转换,然后依次拼接在一起,当转换前的表名或列名首字不是英文字母和下划线时,出于后续步骤稳健性的需要,在转化后的拼接在一起的字符串前会添加下划线_;将其作为数据库表名或列名;
翻译是指可选设置先将表名和列名通过计算机程序匹配汉英词典或机器翻译后,转换为英文,不能匹配翻译的保持原样,并去除空白和特殊符号,拼接在一起;
取拼音是指表名和列名可选逐字取首字母大写的中文拼音全拼、全部大写或小写的中文拼音全拼、全部大写或小写的中文拼音首字母、或保持原样不变,然后依次拼接在一起;表名和列名拼音全拼字符长度超过该种数据库类型的表名或列名允许的长度时会自动取中文拼音首字母;同一个表遇到列名转换后重名的情况时,添加序号解决重复问题;
以上变换规则表和列可分别指定,可将表设置传递给列设置作为其默认值;
表名和列名做上述变换后,长度超过该种数据库类型的表名或列名允许的长度时,会自动截取到允许的长度;
可选地将数据模型文件的表名、列名分别作为数据库表注释、列注释,数据库表注释可包含数据模型的文件名;
即不同类型的数据库管理软件、数据管理软件、数据仓库管理软件,最终通过解析数据模型文件为基础,生成了可以创建数据表的SQL文本,尤其是批量情形时。大小写无关,均应在本发明的保护范围,SQL代码示例如下:
CREATE<可选的修饰符>TABLE<可选的修饰符>变换后的表名T3(
<可选前置添加的某些辅助列和列注释,>
变换后的列名1C3[1]字段类型COMMENT'可选的列注释,数据模型文件的原始列名1C1[1]',
…
变换后的列名N C3[N]字段类型COMMENT'可选的列注释,数据模型文件的原始列名NC1[N]'
<,可选后置添加的某些辅助列和列注释>
)COMMENT='可选的表注释,数据模型文件原始表名T1';
表注释、列注释COMMENT是可选的,在不同的数据库注释的名称和SQL写法不同;
批量指定选定的列为某种数据类型模块:批量的用数据模型文件的原始原始列名集合C1,通过匹配正则表达式,选出一些列,强制将列的字段数据类型设置成某种数据类型、长度、精度;在选择的数据库不支持该字段数据类型时,会自动替换成该类型数据库支持的等效或近似数据类型;
列数据类型可以同时设置多种,每种数据类型都有独立的正则表达式选取规则选项和启用校准选项,另有一个总开关整体控制启用或不启用;
数字类型的列会自动替换掉各国货币符号和三字母的货币缩写如¥、RMB、CNY、USD;
百分比的数值可自动变为等值小数识别和建模;
上述两项可选地分别在后续的软件配置项中分别标记为货币标志和百分比标志;
用导入的数据,校准强制的列数据类型模块:除此之外,用户可选地在上述强制列数据类型规则启用后,遍历该数据模型文件对应列的全部数据,在该列有数据时或强制列数据类型规则未启用时,根据该列全部数据的长度、精度和数值的最大值,来设置数据每列的字段数据类型和长度、精度,为保证健壮性和统一适配性,程序会根据字段数据类型将长度、精度设置自动为一个比最大值还大的一个统一值,不是直接取该字段类型允许的最大值,目的是为了最终的生成配置项和程序开发不用再调整,而不是为了仅数据导入;
所述数据模型文件转DDL部分还包括,长度为1的整数列转是否列模块,可选的将长度为1的整数类型的列,该列全部数据只有1,0和空值的列转是否列,根据数据库类型的不同可对应是否、BOOLEAN或BIT列数据类型;整数列泛指所有整数类型的列;
所述数据模型文件转DDL部分还包括,程序判断性添加ID主键、操作人、操作时间、角色权限、流程等字段和默认值模块,可选为本次创建的所有数据库表由程序判断性添加ID主键、操作人、操作时间、角色权限、流程等字段和默认值;如某个数据模型文件表本身就有这个字段或类似项则不添加,否则就添加,根据数据库类型不同执行不同的SQL,其中添加ID主键步骤是业内通用的技术,本发明是按照前述规则,由程序判断性的添加或不添加,包括ID主键在内的多个可选辅助列,并支持一次性的批量指定;
角色权限和流程字段,有启用与否选项,启用后,通过正则表达式匹配来选取部分表名或视图名后,程序自动判断性添加字段,正则表达式有默认值,可更改;
角色权限和流程字段的选取规则可独立设置;
角色权限字段包含可自定义的多级组织机构字段,各个上级组织机构,可管理其管辖区域内的数据,还有上级机构名称、共享可见和禁止查看列;仅申请保护批量操作多个数据表实体的这种情形;
然后同步自动生成组织机构逐级的字典数据库表并在后续软件***做组织机构配置项的绑定,字典表可包含主键自增ID、组织机构名称、上级、拼音、下拉提示用的各个字或单词首字母、语言、英文名称、区号、邮编、正式全称、简称等列;
列名和字段名仅是中文说明,具体名称可与此不同,可选具体表名和字段名按照表名变换和列名变换模块的设置处理;
如提供的数据模型文件表名集合T1中及***自带默认的组织机构数据模板中有与填写的组织机构有匹配的模板数据,则直接导入表和数据,并做一定的数据处理和绑定;可选,且不限制组织机构层级数量;
模板数据的优先级如下:
首先是用户提供的数据模型文件,其次是***自带默认的组织机构数据模板;
对组织机构关系做了打包,选择其中一项组织机构关系包,会用该组织机构关系包来填充具体的组织机构,便于用户操作;
默认导入全部的模板数据;填写上级机构名称的全称或简称将只导入该区域和其下属的组织机构模板数据,并在后续软件***做该部分组织机构配置项中的绑定组织机构隶属关系;上级机构可以是多级的和单一的;
可选创建登录账号,当存在人员名单数据时通过指定用户表名、用户名列、可选指定密码列或默认密码,可选指定用户角色列,然后批量导入人员名单做登录用户名单,并在后续软件配置项中绑定,实现用户登录;可选在指定了用户角色列之后,可自动为人员名单中的每一个用户,按该列的数据分配用户角色;
自动创建登录管理员账号和默认密码,二者都有默认值;
可同步创建多个视图副本模块:以数据库表为基础同步创建视图,视图副本数可指定;
执行上述形成的SQL和相应的程序,创建数据库、数据表实体和进行数据处理;
当数据库中不存在变换后的工作表名为表名的数据库表的,会按本发明的规则创建数据库表,存在的则只导入数据不再创建数据表;
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
4.根据权利要求3所述的一种批量数据建模和数据处理的方法,其特征在于:选择创建表并同时导入数据模型文件中的数据,指定一个数据模型文件内多个数据表的处理顺序和每个数据表数据处理的顺序统一为正序或逆序,即从数据模型文件数据表有效数据的第一行由上而下处理导入到数据库表中,还是由下而上处理;根据多个数据模型文件排序处理模块,相同列结构的多个数据模型文件名,无论按正序还是逆序顺序命名,还是多个数据表和数据是倒序还是顺序排列,本***均会按正确的排序一次性导入;
还包括对类Excel文件合并单元格区域进行处理,对于每一个合并的单元格区域,程序会按照拆解后该合并单元格区域每个单元格的数据都相同来处理,更符合数据的本意,而不是只有左上角第一个单元格有数据其他都是空值来处理;无合并单元格的类Excel文件或其他不支持合并单元格的数据模型文件,则直接跳过该步骤;
还包括,指定排重列/唯一值列模块,为防止数据重复导入数据库,用户可指定数据模型文件某些列为排重列,该列名也同样会按照前述的列名变换模块的规则来变换;处理数据模型文件中的数据时会逐条与该列对比,判断满足排重规则的数据库记录是否存在,存在则忽略该行数据不处理,不存在则允许导入数据库;某些数据库支持的REPLACE INTO和一般意义上的先判断是否重复,不重复再***的方式均应在本发明的保护范围;
还包括,清理单元格数据的首尾字符模块,可选地,对数据模型文件中的有效数据范围内的每个单元格的数据进行去除首尾的特定字符操作之后,再导入数据库,特定字符默认为不可见字符和空白字符,也可指定为任意字符的列表,列表内的字符均会去除;
还包括,自动设置字典项模块,程序可指定为主动发现数据模型文件的字典项,也可指定某批次导入的数据模型文件均强制作为字典项,当没有选择导入文件时,且启用了强制作为字典项选项时,将用目标数据库中已有的所有数据表实体和表注释,来分别匹配本项目导入目标数据库全部的表和视图名的列名和列注释作为匹配范围;
还包括,指定无字典项;字典项是指某列的取值只能为字典项的集合范围之内;
当检测到某列数据多次命中如组织机构等模板数据时,提供扩大字典项的选项,引用模板数据做字典项。
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
5.根据权利要求4所述的一种批量数据建模和数据处理的方法,其特征在于:所述数据处理部分包括数据模型文件导入数据库以及创建字典表;
包括主动发现字典项、强制指定字典项以及设置无字典项;
主动发现字典项选项被启用后,有如下情形之一的,被主动发现为字典项:
1.数据模型文件的某列数据去除重复值之后,仅为有限个值,显著少于数据行数;
2.数据模型文件的列名称中包含一定的文字特征如含有“字典”二字,或含有“!”,则被识别为字典项;该文字特征会在转为数据库的列名前去除掉;
这两种情形下,发现的有限个值的个数在一定范围时,会被直接引用为字典项,在后续的软件***配置项中各字典项会绑定为字典值列表;不在某个数范围内,将自动创建数据库字典表,并将有限个值自动***到该字典表中,在软件***配置项中会被绑定为字典项数据表、显示名称列、字典值列,并可绑定排序条件和筛选条件;
还包括,强制作为字典项选项,启用后,除包含前述的两种情形外,本批次导入的数据模型文件的全部表名集合或表注释集合中,某个工作表名和匹配范围内的其他表的某个列名或列注释有关联,包括但不限于相同、拼音、同义词、翻译或包含时,则前表数据将自动作为该列的字典项;
字典表至少包含一列,该列可作为字典项的显示名称列和值列;字典表可包含字典项辅助列,除“值”列外,辅助列不可以作为字典项,但是会后续的软件***作为可选的配置项目起作用;辅助列可包含ID、排序号、值、显示与否、启用与否、操作人、操作时间列和它们的近似库;
可以自定义不可做字典项的列名排除名单,其中包含一部分辅助列名;
当只有一列时或排除列名排除名单中的列后只有一列时,该列作为字典项的显示名称和值;超过两列时,将按照优先级确定字典项的显示名称列和值列;列数超过某个值后,该表将不再作为字典表;
当字典表中有多个可做字典项的显示名称列时,确定显示名称列的优先级如下:
1与字典表名称相同的列;2在列名排除名单之外,第一个可以做字典项显示名称列;
当字典表中有多个可做字典项的值的列时,确定字典项的值列的优先级如下:
1列名为“值”的列;2在列名排除名单之外,第一个可以做字典项值的列,整数列优先;
字典项的匹配范围是“本次导入”时,仅用本次导入数据模型文件的所有表名集合T1,逐个来匹配本次导入的全部数据模型的原始列名集合C1;
字典项的匹配范围是”全库”时,则用本次导入数据模型文件变换前后的所有表名集合T1,T3,逐个来匹配本项目导入目标数据库全部列名和列注释;
当没有选择导入文件时,且启用了强制作为字典项选项时,将用目标数据库中已有的所有数据表实体和表注释,来分别匹配本项目导入目标数据库全部的列名和列注释作为匹配范围;
用表名来匹配列名,相对于列名匹配列名这种方式能成倍的提高匹配效率;
创建字典表时,除字典项之外,程序可自动创建字典项辅助列。
6.根据权利要求5所述的一种批量数据建模和数据处理的方法,其特征在于:软件***部分包括可选的通过程序自动批量性的创建数据库级别或表级别数据库表/视图、表/视图对应的菜单和列的配置项信息;
通过本次导入的数据模型文件数据表名集合T3和T1获得本次导入的表名/视图名、表注释,列名集合C3和C1分别获得列名和列注释。
通过遍历数据库***中自带的存放表名、列名的表获得全库级别或表级别的表名、视图名、表注释和列注释存储为表/视图和列的配置项。
每一个表/视图的配置信息包括表格的数据库名称table name、表注释、表显示名称以及启用该表的全表搜索;
还包括,表显示名称配置项按照这样的设置取默认值,如有表注释,程序默认自动设置为表注释,否则为表或视图名称;
每一个菜单的配置项包括菜单图标,菜单ID,菜单父级ID,菜单显示文本,菜单链接网址,项目名称,菜单项显示顺序号,菜单项显示否;
每创建一个数据库表或视图,程序同步创建一个上述形式的与之对应的菜单配置项;
还包括,菜单显示文本配置项按照这样的设置取默认值:,对应数据库里的表格或视图名原始值T1,如有表注释,程序默认自动设置为表注释,否则为表或视图名称;
还包括菜单链接网址配置项默认值规则,是包含变换后表名或视图名T3的网址;
还包括,可自动按文件夹层次结构和文件名创建菜单分组模块,如果在处理数据模型文件的时候,获取到了文件夹信息,则每层文件夹创建一个菜单项目,作为最终数据表或视图对应的菜单的上级菜单配置信息,菜单项的隶属关系复制文件夹的隶属父子关系;
可选如果启用文件名作为数据库表或视图名,导入的数据模型文件有多个数据表时,则自动创建一个父级菜单在最终数据库表或视图名对应的菜单项上一层;
还包括,随机菜单图标,第一个菜单项的图标为从图标库内随机选择一个,之后的菜单项图标为按菜单项显示顺序号顺次从图标库取下一个图标,保证整个项目图标尽量不重复;图标库取完之后,重新上述操作;
每一个列的配置信息包含列名称、列注释、列的显示名称、列的字段类型、字段长度、字段精度、列的数据库默认值、启用该列被专项搜索与否、专项搜索类型、启用被全表搜索、列启用链接、列的链接前缀、后缀、字典项类型、列表形式的数据字典项、数据表形式的字典项表名、显示名称列名、值列名、排序列名、筛选条件五项和其他字典项辅助列、启用统计函数,统计函数可多选;
还包括,如某列有列注释,程序自动设置列注释为显示名称配置项值,否则为列名称;
还包括,智能筛选模块,可选批量的对某种数据类型启用专项搜索配置项;
还包括,数据下钻模块,通过在全部列的配置信息加入以搜索的链接为列的链接前缀,并且列启用链接;每一个数据项以自身作为搜索词,在将配置文件解析成程序代码后,实现了数据向下钻取,当链接前缀为全局搜索链接时,则实现了全局数据下钻;
还包括,批量操作选定的表/列的配置项模块,每个配置项可单独通过可自定义正则表达式来匹配数据库实体名或其注释,批量选定表或列配置规则,对表和列的配置项批量性的做设置包括但不限于添加、修改、删除等动作。可选包含启用该规则与否选项,可选包含全局总控启用与否选项;
在表或视图(含软件定义的虚拟视图)的配置信息中数据模型文件转DDL部分程序判断性添加ID主键、操作人、操作时间、角色权限、流程字段和字典项,即指定该表或视图的某列是该表的ID主键、操作人、操作时间、角色权限以及流程字段;角色权限字段含多级组织机构字段;
读取数据模型文件转DDL部分的设置值以及遍历目标数据库中列默认值表获得全部列默认值,经过一些可选处理步骤后,作为全部列配置项的默认值;
配置信息默认为生成SQL,执行后在软件***平台***相应数据,也可以通过程序解析成常用的XML或JSON格式的配置文件;程序解析配置文件生成相应的程序代码;
可提供截止到该步骤的生成SQL语句和程序代码直接显示、保存及下载文件功能。
7.根据权利要求6所述的一种批量数据建模和数据处理的方法,其特征在于:还包括,保存为规则,下次使用时可通过规则名,引用设置自动填充本发明中提到的所有选项和可选项。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210264668 | 2022-03-17 | ||
CN2022102646681 | 2022-03-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115525624A true CN115525624A (zh) | 2022-12-27 |
Family
ID=84696472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210452873.0A Pending CN115525624A (zh) | 2022-03-17 | 2022-04-27 | 批量数据建模和数据处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115525624A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851434A (zh) * | 2024-03-07 | 2024-04-09 | 深圳市雁联计算***有限公司 | 一种数据库并发移植的方法、***及存储介质 |
CN117891787A (zh) * | 2024-03-15 | 2024-04-16 | 武汉磐电科技股份有限公司 | 电流互感器量值溯源数据处理方法、***以及设备 |
-
2022
- 2022-04-27 CN CN202210452873.0A patent/CN115525624A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851434A (zh) * | 2024-03-07 | 2024-04-09 | 深圳市雁联计算***有限公司 | 一种数据库并发移植的方法、***及存储介质 |
CN117851434B (zh) * | 2024-03-07 | 2024-05-14 | 深圳市雁联计算***有限公司 | 一种数据库并发移植的方法、***及存储介质 |
CN117891787A (zh) * | 2024-03-15 | 2024-04-16 | 武汉磐电科技股份有限公司 | 电流互感器量值溯源数据处理方法、***以及设备 |
CN117891787B (zh) * | 2024-03-15 | 2024-05-28 | 武汉磐电科技股份有限公司 | 电流互感器量值溯源数据处理方法、***以及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9811604B2 (en) | Method and system for defining an extension taxonomy | |
US7366729B2 (en) | Schema framework and a method and apparatus for normalizing schema | |
CA2669479C (en) | Generating end-user presentations from structured data | |
CN110543303B (zh) | 一种可视化业务平台 | |
CN115525624A (zh) | 批量数据建模和数据处理的方法 | |
US9229971B2 (en) | Matching data based on numeric difference | |
US7401075B2 (en) | System for viewing and indexing mark up language messages, forms and documents | |
US20070088704A1 (en) | System and method for creation, distribution, and utilization of portable knowledge format | |
CN112764743B (zh) | 一种基于数据模型驱动自动生成软件的方法 | |
CN114706915A (zh) | 一种eda软件向plm***中构建bom信息的方法 | |
US7322030B1 (en) | Method and system for software product generation and maintenance | |
EP1405217A1 (en) | A flexible virtual database system including a hierarchical application parameter repository | |
CN111008011A (zh) | 一个面向电力平台应用开发的***构建器 | |
CN115713309A (zh) | 内审*** | |
Ye et al. | Generating synthetic data to support entity resolution education and research | |
WO2010147453A1 (en) | System and method for designing a gui for an application program | |
EP1304630A2 (en) | Report generating system | |
US20240134833A1 (en) | Relational database system | |
US20240232149A9 (en) | Relational database system | |
CN111444694B (zh) | 一种通用的信息资源定制化汇交、发布方法 | |
CN110597491B (zh) | 一种快速组建不同业务***的方法 | |
Škrbić et al. | Bibliographic records editor in XML native environment | |
CN112596719A (zh) | 一种生成前后端代码的方法和*** | |
CN114581033A (zh) | 政务审批业务快速开发方法和装置及设备 | |
CN117992054A (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 |