CN110879801A - 一种数据读取方法及装置 - Google Patents
一种数据读取方法及装置 Download PDFInfo
- Publication number
- CN110879801A CN110879801A CN201911148416.7A CN201911148416A CN110879801A CN 110879801 A CN110879801 A CN 110879801A CN 201911148416 A CN201911148416 A CN 201911148416A CN 110879801 A CN110879801 A CN 110879801A
- Authority
- CN
- China
- Prior art keywords
- input stream
- text file
- character
- file
- splitting
- 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/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1794—Details of file format conversion
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请提供一种数据读取方法及装置,该方法从初始数据源获取到输入流,输入流包括至少一个文本文件,每个文本文件对应一个配置文件,配置文件中预先设置有该文本文件的分隔符。在该文本文件的分隔符为多字符时,将配置文件中该文本文件的分隔符修改为不可见单字符。将输入流转换为字符串格式的输入流后,利用不可见单字符对输入流中原本的多字符进行替换,且不可见单字符不会对原始内容产生任何影响,由于已经将输入流中的分隔符替换为了不可见单字符,因此基于不可见单字符对输入流进行拆分,得到拆分后的字符数组,实现了对分隔符为多字符的文本文件的读取。
Description
技术领域
本申请属于数据处理技术领域,尤其涉及一种数据读取方法及装置。
背景技术
现有技术中在使用DATAX进行数据同步时,需要从初始数据源读取数据,其中,初始数据源以文本文件的形式存储数据。在读取文本文件时,将单字符作为分隔符拆分文本,以完成数据读取。
由于DATAX的文件读取插件仅能将单字符作为分隔符,并基于分隔符对文本文件进行拆分进而完成对文本文件的读取,而实际应用中文本文件的分隔符存在多字符的情况,导致使用DATAX的文件读取插件不能实现对分隔符为多字符的文本文件的读取。
发明内容
有鉴于此,本申请的目的在于提供一种数据读取方法及装置,用于解决现有技术中使用DATAX的文件读取插件不能读取到分隔符为多字符的文本文件的问题。
技术方案如下:
本申请提供一种数据读取方法,应用于DATAX的文件读取插件上,包括:
从初始数据源获取输入流;所述输入流包括至少一个文本文件,每个文本文件对应一个配置文件;所述配置文件中预先设置有该文本文件的分隔符;
在该文本文件的分隔符为多字符时,将所述配置文件中该文本文件的分隔符修改为不可见单字符;
将该输入流转换为字符串格式的输入流,并基于不可见单字符对字符串格式的输入流中的分隔符进行替换,得到更新后的输入流;
基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
优选地,所述基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组以完成数据读取,包括:
调用非结构化存储读取流的类对所述更新后的输入流进行处理,得到处理后的输入流;
判断文本文件是否为压缩文件;
若判断文本文件为压缩文件,则根据文本文件的压缩类型读取与该文本文件对应的处理后的输入流;
基于不可见单字符对所述处理后的输入流进行拆分,得到字符数组以完成数据读取。
优选地,所述基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组以完成数据读取,包括:
采用csvreader的分割方法,基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
优选地,所述从初始数据源获取输入流包括:
在初始数据源中,获取待读取文本文件;
若待读取文本文件为多个,则按照待读取文本文件的获取顺序生成输入流。
优选地,所述基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取之后,还包括:
确定目标数据源的数据类型,并将读取到的字符数组转换为目标数据源的数据类型,得到转换后的数据;
将转换后的数据写入所述目标数据源。
本申请还提供了一种数据读取装置,包括:
流获取单元,用于从初始数据源获取输入流;所述输入流包括至少一个文本文件,每个文本文件对应一个配置文件;所述配置文件中预先设置有该文本文件的分隔符;
修改单元,用于在该文本文件的分隔符为多字符时,将所述配置文件中该文本文件的分隔符修改为不可见单字符;
替换单元,用于将该输入流转换为字符串格式的输入流,并基于不可见单字符对字符串格式的输入流中的分隔符进行替换,得到更新后的输入流;
拆分单元,用于基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
优选地,所述拆分单元包括:
处理子单元,用于调用非结构化存储读取流的类对所述更新后的输入流进行处理,得到处理后的输入流;
判断子单元,用于判断文本文件是否为压缩文件;
读取子单元,用于若判断文本文件为压缩文件,则根据文本文件的压缩类型读取与该文本文件对应的处理后的输入流;
拆分子单元,用于基于不可见单字符对所述处理后的输入流进行拆分,得到字符数组以完成数据读取。
优选地,所述拆分单元具体用于,采用csvreader的分割方法,基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
优选地,所述源获取单元,包括:
获取子单元,用于在初始数据源中,获取待读取文本文件;
生成子单元,用于若待读取文本文件为多个,则按照待读取文本文件的获取顺序生成输入流。
优选地,还包括:
转换单元,用于确定目标数据源的数据类型,并将读取到的字符数组转换为目标数据源的数据类型,得到转换后的数据;
写入单元,用于将转换后的数据写入所述目标数据源。
与现有技术相比,本发明提供的上述技术方案具有如下优点:
从上述技术方案可知,本申请中从初始数据源获取到输入流,输入流包括至少一个文本文件,每个文本文件对应一个配置文件,配置文件中预先设置有该文本文件的分隔符。在该文本文件的分隔符为多字符时,将配置文件中该文本文件的分隔符修改为不可见单字符。将输入流转换为字符串格式的输入流后,利用不可见单字符对输入流中原本的多字符进行替换,且不可见单字符不会对原始内容产生任何影响,由于已经将输入流中的分隔符替换为了不可见单字符,因此基于不可见单字符对输入流进行拆分,得到拆分后的字符数组,实现了对分隔符为多字符的文本文件的读取。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请公开的一种数据读取方法的流程图;
图2是本申请公开的另一种数据读取方法的流程图;
图3是本申请公开的一种数据读取装置的结构示意图;
图4是本申请公开的另一种数据读取装置的结构示意图。
具体实施方式
现有在使用DATAX进行数据同步时,从初始数据源读取数据,其中数据源以文本文件的形式存储数据。通常是使用txtfilereader插件读取文本文件形式的数据,由于txtfilereader插件的底层是使用csvreader的分割方法对文本文件进行拆分,而csvreader的分割方法仅支持单字符的分隔符。
正是由于txtfilereader插件底层分割方法的限制,导致在进行文本文件的读取时仅能够对分隔符为单字符的文本文件进行读取,而不能对分隔符为多字符的文本文件进行读取。
针对此,本申请提供了一种数据读取方法,在仍然使用现有txtfilereader插件底层分割方法的基础上,能够支持对分隔符为多字符的文本文件的读取。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据读取方法,应用于DATAX的文件读取插件上,具体地,如图1所示,该数据读取方法可以包括以下步骤:
S101、从初始数据源获取输入流;所述输入流包括至少一个文本文件,每个文本文件对应一个配置文件;所述配置文件中预先设置有该文本文件的分隔符。
DATAX作为数据同步框架,将不同数据源的同步抽象为从初始数据源读取数据的读取插件以及向目标数据源写入数据的写入插件。DATAX支持任意数据类型的数据同步工作。
初始数据源中以文本文件的形式存储数据,需要使用DATAX将该初始数据源中存储的文本文件形式的数据同步到目的数据源中。在使用DATAX实现数据同步的过程中,需要利用文件读取插件从初始数据源读取文本文件。其中,文件读取插件读取文本文件的方式为使用csvreader的分割方法按照单字符的分隔符对文本文件进行拆分,以按照拆分后的字段读取文本文件。
针对每个文本文件而言,预先设置该文本文件的配置文件中,配置文件中预先设置有该文本文件的分隔符。使得后续在使用csvreader的分割方法对文本文件进行拆分时,可以查询该文本文件的配置文件中存储的分隔符,进而根据分隔符进行拆分。
从初始数据源获取到一个文本文件后,确定该初始数据源中是否还存在下一个文本文件,若存在下一个文本文件,则继续获取下一个文本文件,直至获取到该初始数据源中的全部文本文件,即获取到需要同步到目的数据源的全部数据。将获取到的所有文本文件,按照获取到的顺序生成输入源。
可以理解的是,如果初始数据源中存在已经同步到目的数据源的文本文件后,从初始数据源获取输入源前,需要先确定待读取文本文件。其中,待读取文本文件为需要同步到目的数据源的文本文件。
若确定待读取文本文件为多个,则按照待读取文本文件的获取顺序生成输入流。
一种确定待读取文本文件的方式为:根据文本文件的名称确定待读取文本文件。
即根据文本文件的文件名,在初始数据源中获取待读取文本文件。
S102、在该文本文件的分隔符为多字符时,将所述配置文件中该文本文件的分隔符修改为不可见单字符。
针对每个文本文件而言,该文本文件的配置文件中预先设置有该文本文件的分隔符。
在实际应用中,文本文件的分隔符可能为单字符,如“、”、“\”、“#”,也可能为多字符,如“;\”。
若文本文件的分隔符为单字符,则该文本文件的配置文件中的分隔符为单字符;若文本文件的分隔符为多字符,则该文本文件的配置文件中的分隔符为多字符。
在文本文件的分隔符为单字符时,可以基于现有技术中利用DATAX中的文件读取插件txtfilereader读取文本文件。
而在文本文件的分隔符为多字符时,需要对文件读取插件txtfilereader进行二次开发才能使得开发后的txtfilereader插件支持对分隔符为多字符的文本文件的读取。
二次开发过程中先将配置文件中多字符的分隔符修改为不可见单字符。
国际上普遍采用ASCII编码(American Standard Code for InformationInterchange,美国信息交换标准代码)作为通用的字符编码。在ASCII码表中,算上空格,从32到126共95个是可见字符,不算上空格则为94个,也叫打印字符,即可以被直接打印出来的字符。剩下的则是不可见字符,即不可以被直接打印出来。
本实施例中采用不可见的单字符替换文本文件中的多字符的分隔符。如,文本文件为:
Whatever#@is worth doing#@is worth doing well。
则该文本文件的配置文件中预先设置的分隔符为#@,该分隔符为两个单字符组成的多字符。
由于不可见单字符是不可见的,为了描述清楚不可见单字符对多字符的替换,以“0”表示不可见单字符。
将配置文件中的分隔符“#@”修改为“0”,将“0”作为修改后的分隔符。
S103、将该输入流转换为字符串格式的输入流,并基于不可见单字符对字符串格式的输入流中的分隔符进行替换,得到更新后的输入流。
由于DATAX支持任意数据类型的数据同步工作,因此获取到的数据类型可能是不同的,需要将不同类型的数据进行格式转换,转换为中间格式的数据,如字符串格式。
本实施例中将输入流转换为字符串格式的输入流,即形成字符串。仍然以步骤S102中记载的“Whatever#@is worth doing#@is worth doing well”为例,转换为“Whatever#@is worth doing#@is worth doing well”字符串。可见,字符串中包括分隔符“#@”。
利用修复后的分隔符“0”对“#@”中的分隔符进行替换,得到更新后的输入流为:
“Whatever 0 is worth doing 0 is worth doing well”。
不可见单字符不会对原始字符串中包括的内容产生影响,因此将不可见单字符替换原始字符串中的分隔符后,得到的新的字符串内容不会发生改变,且后续进行拆分时也不会产生误操作。
S104、基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
采用csvreader的分割方法,基于修改后的分隔符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
以更新后的输入流为“Whatever 0 is worth doing 0 is worth doing well”为例,修改后的分隔符为“0”,采用csvreader的分割方法对更新后的输入流进行拆分后得到的字符数组为:
[Whatever]、[is worth doing]、[is worth doing well]。
按照拆分后得到的字符数组完成对以文本文件形式存储的数据的读取。
通过上述技术方案,本实施例中从初始数据源获取到输入流,输入流包括至少一个文本文件,每个文本文件对应一个配置文件,配置文件中预先设置有该文本文件的分隔符。在该文本文件的分隔符为多字符时,将配置文件中该文本文件的分隔符修改为不可见单字符。将输入流转换为字符串格式的输入流后,利用不可见单字符对输入流中原本的多字符进行替换,且不可见单字符不会对原始内容产生任何影响,由于已经将输入流中的分隔符替换为了不可见单字符,因此基于不可见单字符对输入流进行拆分,得到拆分后的字符数组,实现了对分隔符为多字符的文本文件的读取。
在实际应用中,利用文本读取插件读取到文本文件后,需要通过文本写入插件将读取到的文本文件写入目的数据源中,以实现不同数据源之间的数据同步。
由于读取到的文本文件为字符形式的字符数组,而不同目的数据源内存储的数据的数据类型可能是不同的,因此在将读取到的文本文件写入目的数据源之前,先需要确定目标数据源的数据类型,然后将字符形式的字符数组转换为与该目标数据源的数据类型相同的数据类型,然后将格式转换后的数据写入目标数据源中,实现了不同数据源之间数据的同步。
本申请提出了数据读取方法的另一实施例,区别于上一实施例之处在于,描述了基于不可见单字符对更新后的输入流进行拆分的一种实现方式。
具体地,参见图2所示,基于不可见单字符对更新后的输入流进行拆分可以包括以下步骤:
S201、调用非结构化存储读取流的类对所述更新后的输入流进行处理,得到处理后的输入流。
处理可以包括采用正则表达式对更新后的输入流进行处理,以得到所需的数据。
S202、判断文本文件是否为压缩文件;
若判断文本文件为压缩文件,则执行步骤S203。
存储在初始数据源中的文本文件可能为采用不同压缩方式压缩后的文本文件。
S203、根据文本文件的压缩类型读取与该文本文件对应的处理后的输入流。
压缩方式不同,对应的压缩类型不同。确定文本文件为压缩文件后,基于压缩类型读取与该文本文件对应的处理后的输入流。
S204、基于不可见单字符对所述处理后的输入流进行拆分,得到字符数组以完成数据读取。
采用csvreader的分割方法,基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
本实施例中通过对文件读取插件txtfilereader进行二次开发,使得无论读取的是分隔符为单字符的文本文件还是分隔符为多字符的文本文件时,都采用DATAX中的经过二次开发后的文件读取插件txtfilereader读取文本文件,txtfilereader插件的底层使用csvreader的分割方法对文本文件进行拆分。在文本文件中分隔符为单字符时,直接使用csvreader的分割方法,基于单字符完成对文本文件的拆分;在文本文件中分隔符为多字符时,先经过不可见单字符对多字符的替换后,将不可见单字符作为分隔符,基于不可见单字符对文本文件进行拆分。不仅可以实现对分隔符为单字符的文本文件的读取,同时可以实现对分隔符为多字符的文本文件的读取。且,由于保留底层使用csvreader的分割方法,因此降低了开发难度。
对应上述实施例公开的数据读取方法,本实施例还提供了一种数据读取装置,应用于DATAX的文件读取插件上,参见图3所示,该数据读取装置包括:
流获取单元301、修改单元302、替换单元303和拆分单元304。
流获取单元301,用于从初始数据源获取输入流;所述输入流包括至少一个文本文件,每个文本文件对应一个配置文件;所述配置文件中预先设置有该文本文件的分隔符;
修改单元302,用于在该文本文件的分隔符为多字符时,将所述配置文件中该文本文件的分隔符修改为不可见单字符;
替换单元303,用于将该输入流转换为字符串格式的输入流,并基于不可见单字符对字符串格式的输入流中的分隔符进行替换,得到更新后的输入流;
拆分单元304,用于基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
拆分单元304具体用于,采用csvreader的分割方法,基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
即仍然使用txtfilereader插件底层csvreader的分割方法对文本文件进行拆分,从而并不需要改变DATAX的文件读取插件txtfilereader读取文本文件的方法。降低了系统开发难度。
在另一个实施例中,流获取单元301包括:
获取子单元和生成子单元。
所述获取子单元,用于在初始数据源中,获取待读取文本文件;
所述生成子单元,用于若待读取文本文件为多个,则按照待读取文本文件的获取顺序生成输入流。
在另一个实施例中,拆分单元304包括:
处理子单元、判断子单元、读取子单元和拆分子单元。
所述处理子单元,用于调用非结构化存储读取流的类对所述更新后的输入流进行处理,得到处理后的输入流;
所述判断子单元,用于判断文本文件是否为压缩文件;
所述读取子单元,用于若判断文本文件为压缩文件,则根据文本文件的压缩类型读取与该文本文件对应的处理后的输入流;
所述拆分子单元,用于基于不可见单字符对所述处理后的输入流进行拆分,得到字符数组以完成数据读取。
通过上述技术方案,本实施例中从初始数据源获取到输入流,输入流包括至少一个文本文件,每个文本文件对应一个配置文件,配置文件中预先设置有该文本文件的分隔符。在该文本文件的分隔符为多字符时,将配置文件中该文本文件的分隔符修改为不可见单字符。将输入流转换为字符串格式的输入流后,利用不可见单字符对输入流中原本的多字符进行替换,且不可见单字符不会对原始内容产生任何影响,由于已经将输入流中的分隔符替换为了不可见单字符,因此基于不可见单字符对输入流进行拆分,得到拆分后的字符数组,实现了对分隔符为多字符的文本文件的读取。
同时,本申请中通过对文件读取插件txtfilereader进行二次开发,使得无论读取的是分隔符为单字符的文本文件还是分隔符为多字符的文本文件时,都采用DATAX中的经过二次开发后的文件读取插件txtfilereader读取文本文件,txtfilereader插件的底层使用csvreader的分割方法对文本文件进行拆分。在文本文件中分隔符为单字符时,直接使用csvreader的分割方法,基于单字符完成对文本文件的拆分;在文本文件中分隔符为多字符时,先经过不可见单字符对多字符的替换后,将不可见单字符作为分隔符,基于不可见单字符对文本文件进行拆分。不仅可以实现对分隔符为单字符的文本文件的读取,同时可以实现对分隔符为多字符的文本文件的读取。且,由于保留底层使用csvreader的分割方法,因此降低了开发难度。
在利用文本读取插件读取到文本文件后,需要通过文本写入插件将读取到的文本文件写入目的数据源中,以实现不同数据源之间的数据同步。
在另一个实施例中,参见图4所示,该装置还包括文本写入插件401。
文本写入插件401包括:
转换单元和写入单元。
所述转换单元,用于确定目标数据源的数据类型,并将读取到的字符数组转换为目标数据源的数据类型,得到转换后的数据;
所述写入单元,用于将转换后的数据写入所述目标数据源。
由于读取到的文本文件为字符形式的字符数组,而不同目的数据源内存储的数据的数据类型可能是不同的,因此在将读取到的文本文件写入目的数据源之前,先需要确定目标数据源的数据类型,然后将字符形式的字符数组转换为与该目标数据源的数据类型相同的数据类型,然后将格式转换后的数据写入目标数据源中,实现了不同数据源之间数据的同步。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据读取方法,其特征在于,应用于DATAX的文件读取插件上,包括:
从初始数据源获取输入流;所述输入流包括至少一个文本文件,每个文本文件对应一个配置文件;所述配置文件中预先设置有该文本文件的分隔符;
在该文本文件的分隔符为多字符时,将所述配置文件中该文本文件的分隔符修改为不可见单字符;
将该输入流转换为字符串格式的输入流,并基于不可见单字符对字符串格式的输入流中的分隔符进行替换,得到更新后的输入流;
基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
2.根据权利要求1所述的方法,其特征在于,所述基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组以完成数据读取,包括:
调用非结构化存储读取流的类对所述更新后的输入流进行处理,得到处理后的输入流;
判断文本文件是否为压缩文件;
若判断文本文件为压缩文件,则根据文本文件的压缩类型读取与该文本文件对应的处理后的输入流;
基于不可见单字符对所述处理后的输入流进行拆分,得到字符数组以完成数据读取。
3.根据权利要求1或2所述的方法,其特征在于,所述基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组以完成数据读取,包括:
采用csvreader的分割方法,基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
4.根据权利要求1或2所述的方法,其特征在于,所述从初始数据源获取输入流包括:
在初始数据源中,获取待读取文本文件;
若待读取文本文件为多个,则按照待读取文本文件的获取顺序生成输入流。
5.根据权利要求1或2所述的方法,其特征在于,所述基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取之后,还包括:
确定目标数据源的数据类型,并将读取到的字符数组转换为目标数据源的数据类型,得到转换后的数据;
将转换后的数据写入所述目标数据源。
6.一种数据读取装置,其特征在于,包括:
流获取单元,用于从初始数据源获取输入流;所述输入流包括至少一个文本文件,每个文本文件对应一个配置文件;所述配置文件中预先设置有该文本文件的分隔符;
修改单元,用于在该文本文件的分隔符为多字符时,将所述配置文件中该文本文件的分隔符修改为不可见单字符;
替换单元,用于将该输入流转换为字符串格式的输入流,并基于不可见单字符对字符串格式的输入流中的分隔符进行替换,得到更新后的输入流;
拆分单元,用于基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
7.根据权利要求6所述的装置,其特征在于,所述拆分单元包括:
处理子单元,用于调用非结构化存储读取流的类对所述更新后的输入流进行处理,得到处理后的输入流;
判断子单元,用于判断文本文件是否为压缩文件;
读取子单元,用于若判断文本文件为压缩文件,则根据文本文件的压缩类型读取与该文本文件对应的处理后的输入流;
拆分子单元,用于基于不可见单字符对所述处理后的输入流进行拆分,得到字符数组以完成数据读取。
8.根据权利要求6或7所述的装置,其特征在于,所述拆分单元具体用于,采用csvreader的分割方法,基于不可见单字符对所述更新后的输入流进行拆分,得到字符数组,以完成数据读取。
9.根据权利要求6或7所述的装置,其特征在于,所述源获取单元,包括:
获取子单元,用于在初始数据源中,获取待读取文本文件;
生成子单元,用于若待读取文本文件为多个,则按照待读取文本文件的获取顺序生成输入流。
10.根据权利要求6或7所述的装置,其特征在于,还包括:
转换单元,用于确定目标数据源的数据类型,并将读取到的字符数组转换为目标数据源的数据类型,得到转换后的数据;
写入单元,用于将转换后的数据写入所述目标数据源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911148416.7A CN110879801A (zh) | 2019-11-21 | 2019-11-21 | 一种数据读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911148416.7A CN110879801A (zh) | 2019-11-21 | 2019-11-21 | 一种数据读取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110879801A true CN110879801A (zh) | 2020-03-13 |
Family
ID=69729283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911148416.7A Pending CN110879801A (zh) | 2019-11-21 | 2019-11-21 | 一种数据读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110879801A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760821A (zh) * | 2020-06-22 | 2021-12-07 | 北京京东乾石科技有限公司 | 一种文件转换的方法及装置 |
CN113760821B (zh) * | 2020-06-22 | 2024-07-16 | 北京京东乾石科技有限公司 | 一种文件转换的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN103778133A (zh) * | 2012-10-18 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种数据库对象的变更方法及装置 |
CN105335412A (zh) * | 2014-07-31 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 用于数据转换、数据迁移的方法和装置 |
CN106776512A (zh) * | 2016-12-02 | 2017-05-31 | 浪潮通信信息系统有限公司 | 一种通用的文本数据处理方法 |
US20170316070A1 (en) * | 2016-04-29 | 2017-11-02 | Unifi Software | Automatic generation of structured data from semi-structured data |
-
2019
- 2019-11-21 CN CN201911148416.7A patent/CN110879801A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN103778133A (zh) * | 2012-10-18 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种数据库对象的变更方法及装置 |
CN105335412A (zh) * | 2014-07-31 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 用于数据转换、数据迁移的方法和装置 |
US20170316070A1 (en) * | 2016-04-29 | 2017-11-02 | Unifi Software | Automatic generation of structured data from semi-structured data |
CN106776512A (zh) * | 2016-12-02 | 2017-05-31 | 浪潮通信信息系统有限公司 | 一种通用的文本数据处理方法 |
Non-Patent Citations (1)
Title |
---|
旧收音机: "《博客园》", 19 September 2015 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760821A (zh) * | 2020-06-22 | 2021-12-07 | 北京京东乾石科技有限公司 | 一种文件转换的方法及装置 |
CN113760821B (zh) * | 2020-06-22 | 2024-07-16 | 北京京东乾石科技有限公司 | 一种文件转换的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10168800B2 (en) | Synchronization of text data among a plurality of devices | |
CN109933752B (zh) | 一种导出电子文档的方法和装置 | |
CN111325626B (zh) | 对账数据推送方法及装置 | |
JP4993319B2 (ja) | ソフトウェアの国際化の検証を支援する装置及び方法 | |
CN104317788A (zh) | Android多国语言翻译方法和装置 | |
CN101667118A (zh) | 多语言版本的开发、替换方法及装置 | |
CN101504672A (zh) | 一种动态配置实体数据表的方法和系统 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN101359293A (zh) | 制作部分更新包的方法和装置 | |
CN102707948B (zh) | 一种源代码生成方法 | |
CN105975446A (zh) | 手机端分模块显示word文档内容的方法及系统 | |
CN105354236A (zh) | 一种对账信息生成方法及系统 | |
CN105488471B (zh) | 一种字形识别方法及装置 | |
CN101859295A (zh) | 具标记提示的简繁字词转换系统及其方法 | |
CN106873971B (zh) | 一种flash应用的多语言展示方法和系统 | |
US9679566B2 (en) | Apparatus for synchronously processing text data and voice data | |
CN104899312B (zh) | 一种多层分类数据体系的数据更新方法 | |
US7885985B2 (en) | System and method for building a datastore for storing and retrieving regression testing data for a complex application | |
JP7346332B2 (ja) | データベースマイグレーション方法、データベースマイグレーションシステム、及びデータベースマイグレーションプログラム | |
CN110879801A (zh) | 一种数据读取方法及装置 | |
JP7027757B2 (ja) | 情報処理装置及び情報処理プログラム | |
CN106648618B (zh) | 虚拟应用的文本信息生成方法和装置 | |
CN111563123B (zh) | 一种hive仓库元数据实时同步方法 | |
CN111863043B (zh) | 音频转写文件生成方法、相关设备及可读存储介质 | |
JP2009069971A (ja) | データ処理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200313 |