CN111881155A - 数据查询方法、数据查询装置和电子设备 - Google Patents
数据查询方法、数据查询装置和电子设备 Download PDFInfo
- Publication number
- CN111881155A CN111881155A CN202010790162.5A CN202010790162A CN111881155A CN 111881155 A CN111881155 A CN 111881155A CN 202010790162 A CN202010790162 A CN 202010790162A CN 111881155 A CN111881155 A CN 111881155A
- Authority
- CN
- China
- Prior art keywords
- data
- query
- job
- host
- query result
- 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.)
- Granted
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/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/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- 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/248—Presentation of query results
-
- 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/126—Character encoding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种数据查询方法、数据查询装置和电子设备,可用于云计算技术领域或其他领域,该数据查询方法,包括:生成主机可执行的作业,作业包括结构化查询语言;提交作业至主机的作业队列中,以使主机通过执行作业确定与结构化查询语言对应的查询结果;以及响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。运维人员在客户端录入结构化查询语言就可以查询采用Z/OS系统的主机的DB2数据库中的数据,查询过程简单,无需登入主机的Z/OS模式,因此不会在查询过程中影响主机的系统稳定性,可以在保障主机的资源安全可控下快速完成查询。并且,在查询数据时可以不用考虑主机的运行环境的差异性和安全性,提升了用户的体验。
Description
技术领域
本公开涉及云计算技术领域,具体涉及一种数据查询方法、数据查询装置和电子设备。
背景技术
对于采用Z/OS系统的主机,主机的运维人员在需要查询主机的DB2数据库中的数据时,必须在主机上登录Z/OS模式,查询过程复杂,容易影响主机的系统稳定性。
发明内容
鉴于上述问题,提出了本公开以便提供一种克服上述问题或者至少部分地解决上述问题的数据查询方法、数据查询装置和电子设备。
根据本公开的一个方面,提供了一种数据查询方法,包括生成主机可执行的作业,作业包括结构化查询语言;提交作业至主机的作业队列中,以使主机通过执行作业确定与结构化查询语言对应的查询结果;以及响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。
根据本公开的一个方面,还提供了一种数据查询方法,适用于数据查询系统,该方法包括:客户端生成主机可执行的作业,作业包括结构化查询语言;客户端提交作业至主机的作业队列中;主机通过执行作业队列中作业,确定与结构化查询语言对应的查询结果;以及客户端响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。
根据本公开的一个方面,还提供了一种数据查询装置,包括:作业组装模块、作业提交模块、译码模块。其中,作业组装模块用于生成主机可执行的作业,作业包括结构化查询语言;作业提交模块用于提交作业至主机的作业队列中,以使主机通过执行作业确定与结构化查询语言对应的查询结果;以及译码模块用于响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。
根据本公开的一个方面,还提供了一种电子设备,包括:计算机可读存储介质以及处理器,所述计算机可读存储介质内存储有程序,所述程序被所述处理器执行时,用于实现上述任一所述的数据查询方法。
根据本公开的一个方面,还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时实现如上所述的方法。
本公开提供的数据查询方法、数据查询装置和电子设备,使得运维人员通过客户端就可以查询采用Z/OS系统的主机的DB2数据库中的数据,查询过程简单,且由于是通过客户端查询,而不需要登入主机的Z/OS模式,因此不会在查询过程中影响主机的系统稳定性,可以在保障主机的资源安全可控下快速完成查询。并且,在查询数据时可以不用考虑主机的运行环境的差异性和安全性,提升了用户的体验。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的适用于数据查询方法、数据查询装置和电子设备的系统架构;
图2示意性示出了根据本公开实施例的数据查询方法的流程图;
图3示意性示出了根据本公开实施例的拼接行的过程示意图;
图4示意性示出了根据本公开实施例的数据结构模板的示意图;
图5示意性示出了根据本公开实施例的码制表的示意图;
图6示意性示出了根据本公开实施例的作业参数的示意图;
图7示意性示出了根据本公开实施例的对结构化查询语言进行调整的示意图;
图8示意性示出了根据本公开另一实施例的数据查询方法的流程图;
图9示意性示出了根据本公开实施例的数据查询装置的结构框图;以及
图10示意性示出了根据本公开实施例的电子设备的结构框图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一个实施例,而不是本公开全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
随着公司业务的发展,如随着银行涉及的业务量越来越大,部署在大型计算机上的业务越来越多,大量的日终业务需要主机批量来进行处理,主机批量的处理主要通过作业(Job)的方式来实现。在需要快速解决生产问题或挖掘特定的目标数据的场景下,用户可能需要直接登录主机环境对DB2数据库进行数据查询,大量的不可控查询会影响系统稳定性不但会影响系统的稳定性,此外,还会占用大量的计算资源等。
本公开的实施例提供的数据查询方法、数据查询装置和电子设备。该方法包括作业提交过程和查询结果获取过程。在作业提交过程中,首先,生成主机可执行的作业,该作业包括结构化查询语言,然后,提交作业至主机的作业队列中,以使主机通过执行作业确定与结构化查询语言对应的查询结果。在完成作业提交过程之后进入查询结果获取过程,响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。上述查询过程简单,无需登入主机的Z/OS模式,因此不会在查询过程中影响主机的系统稳定性,并且有助于降低运维人员进行数据查询的难度。
图1示意性示出了根据本公开实施例的适用于数据查询方法、数据查询装置和电子设备的系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。需要说明的是,本公开实施例的数据查询方法、数据查询装置和电子设备可用于云计算技术领域,也可用于除云计算技术领域之外的多种领域,如大数据技术领域、金融技术领域等。本公开实施例的数据查询方法、数据查询装置和电子设备的应用领域不做限定。
如图1所示,根据本公开实施例的系统架构100可以包括终端设备101、102、103,网络104、服务器105。终端设备101、102、103,服务器105之间可以通过网络104连接,网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
终端设备101、102、103可以是具有显示屏,并且/或者可以安装有各种程序,如浏览器、客户端应用、数据库应用等,包括但不限于智能手机、平板电脑、膝上型便携计算机、主机和台式计算机等等。该终端设备101、102、103可以通过客户端应用向用户提供多种功能入口,以满足用户的多种需求。
网络104用于在终端设备与服务器之间提供通信链路的介质。网络可以包括各种连接类型,例如有线和/或无线通信链路等等。
服务器105可以是提供各种服务的服务器。例如,该服务器105例如可以通过网络104与终端设备101、102、103交互,来获取终端设备101、102、103提交的作业,并返回作业执行结果等。服务器105可以是后台服务器、数据库服务器等。例如,可以支持DB2数据库等。
需要说明的是,本公开实施例所提供的数据查询方法可以由终端设备101、102、103执行。相应地,本公开实施例所提供的数据查询装置可以设置于终端设备101、102、103。应该理解,图中的终端设备101、102、103、网络104和服务器105的类型和数量仅仅是示意性的。
图2示意性示出了根据本公开实施例的数据查询方法的流程图。
如图2所示,该数据查询方法可以包括操作S201~操作S205。
在操作S201,生成主机可执行的作业,作业包括结构化查询语言。
在本实施例中,可以在客户端本地生成作业,该作业中可以包括结构化查询语言(Structured Query Language,简称SQL),以便于主机通过执行作业的方式确定用户希望查询的数据。结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。结构化查询语言可以是由用户输入的结构化查询语句和用户输入的查询参数自动组装成的。此外,结构化查询语言可以是由用户直接输入的,在此不做限定。
在操作S203,提交作业至主机的作业队列中,以使主机通过执行作业确定与结构化查询语言对应的查询结果。
例如,可以通过作业输入辅助系统(Job Entry Subsystem,简称JES)对系统中的作业进行控制和管理,包括从系统外部接收作业、对系统中的作业进行调度、管理,以及作业的输出等。
主机Z/OS通过在系统初始化时创建的内部读卡机向JES传递多种信息,如所运行任务的作业控制语言(Job Control Language,简称JCL)、开始(START)和MOUNT命令、TSOLOGON申请等。在JES接收输入数据流的同时,也为每一个作业分配一个作业标识符并将每一个作业的JCL、JES的控制语句和作业的输入数据SYSIN存放在DASD数据集中,这些数据集可以被称为SPOOL数据集。JES就是从这些SPOOL数据集中选择作业进行处理。
例如,每个JCL作业有一个作业(JOB)语句,它描述该作业的相关信息。一个JOB语句下可以有多个作业步(EXEC)语句,每一句描述一个作业步。每个EXEC语句下可有多个数据集(Data Definition,简称DD)语句,每一句描述该作业步所用的数据集。例如,一个JCL语句可包含五个字段(域),标识符字段、命名字段、操作数字段、参数字段、注释字段。
在操作S205,响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。
在本实施例中,用户查询的数据可以被存储在数据库中,例如,存储在DB2数据库中。DB2数据库是计算机系统中常见的数据库,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下,由于,Z/OS系统、DB2数据库以及结构化查询语言本身是本领域技术人员所习知的,在此不做赘述。
在一个实施例中,查询结果可以是采用如EBDIC码进行编码的。此外,查询结果中非英语数据的保存,因特殊要求等可能采用如ASCII码保存,导致一条记录的不同字段存在两种码制情况。这就导致客户端读取查询结果中信息时,可能出现乱码的情形。为了解决该问题,可以将查询结果中采用如ASCII码保存的信息转换为采用EBDIC码进行编码的信息,使得查询结果中具有统一码制的数据。
例如,可以采用UNLOAD方法查询数据基于数据库表字段格式存储,例如数字类型等,查询结果需要利用表结构文件进行译码,采取该方法存在获取表结构文件困难问题,特别是查询字段采取了函数转换,需要手工核定字段长度和类型。
为了解决需要手工核定字段长度和类型的问题,可以通过直接查询的模式得到查询结果。其中,查询结果均为字符模式,但结果存在换行、多重码制共存引起乱码的问题。可以通过特定方法对换行进行拼接,以及通过译码对数据进行二次加工,得到能满足用户需求的单一码制数据。
在一个实施例中,响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据可以包括如下操作。
首先,响应于来自主机的数据查询结果,读取数据查询结果中数据。然后,基于数据查询结果中数据的结构信息对数据查询结果中数据进行排列,得到重排数据。接着,对重排数据进行译码,得到具有统一码制的数据。其中,结构信息可以是换行信息、行信息等。通过使用结构信息对数据进行重排,可以使得原有换行的记录变成一行。
例如,读取数据查询结果中数据可以包括:基于二进制读取数据查询结果中数据,得到二进制数据,二进制数据分别存储在至少两个数据表中,每个数据表包括至少两行数据。其中,使用二进制方式读取数据查询结果中数据,可以具有两方面好处,首先,加快译码效率。其次,防止乱码数据被操作系统自动修改。
相应地,基于数据查询结果中数据的结构信息对数据查询结果中数据进行排列,得到重排数据可以包括如下操作。
首先,确定换行位置处字符。然后,基于换行位置处字符和各数据表的行号,重新排列至少两个数据表中数据,以将至少两个数据表中行号相同的行拼接成一行。
图3示意性示出了根据本公开实施例的拼接行的过程示意图。
如图3所示,从数据查询结果中读取的二进制数据被存储在两个数据表中,数据表的各单元格中填充有数据。可以对这两个数据表或两个数据表中的数据进行拼接。具体地,基于换行位置处字符和各数据表的行号,重新排列至少两个数据表中数据,以将至少两个数据表中行号相同的行拼接成一行。需要说明的是,各数据表的行数和列数仅为示例性示出,不能理解为对本公开的限定,例如,还可以是更多行或更少行。
在一个实施例中,码制包括第一码制和第二码制。例如,第一码制可以为EBDIC,第二码制可以为ASCII。
相应地,对重排数据进行译码,得到具有统一码制的数据可以包括如下操作。
首先,通过对数据查询结果中数据进行扫描,选取数据中的部分数据,部分数据不在第一码制的可见字符范围集中。然后,基于第二码制对部分数据进行译码,以生成以第一码制保存的译码后数据。需要说明的是,对数据进行扫描时,可以扫描所有已完成拼接操作的数据。
在一个实施例中,通过对数据查询结果中数据进行扫描,选取数据中的部分数据可以包括如下操作。
在得到至少部分重排数据之后,通过扫描至少部分重排数据,确定数据结构模板,数据结构模板包括待译码字段的位置信息。然后,基于数据结构模板确定部分数据。由于非英语数据等可能导致码制不一样的数据可能会被记录在同一列或同一行中,因此,可以通过该规律来提升扫描结果准确性。
图4示意性示出了根据本公开实施例的数据结构模板的示意图。
如图4所示,通过对一部分数据进行扫描,可以确定第1列、第5列至第10列等中存在乱码,需要进行译码。这样就使得当扫描结果中显示第1列中某个数据不是乱码时,需要确定该判定结果是否为误判,有助于提升扫描结果准确性。此外,这样还有助于提升扫描速度,如在模板中确定第5列至第10列中为乱码时,则在扫描时可以跳过这几列,提升扫描效率。
在一个实施例中,基于第二码制对部分数据进行译码,以生成以第一码制保存的译码后数据可以包括:根据码制表的位置标识对部分数据进行译码,其中,码制表包括第一码制中字符和第二码制中字符之间的第一映射关系,以及第二码制中字符和码制表的位置标识之间的第二映射关系。
其中,该码制表可以是预先制作的。例如,ASCII的00到FF字符和EBDIC码制对应关系保存在数组中,例如LIST[0]保存为ASCII为0对应EBDIC码。其中,LIST[0]表示码制表中下标为0的位置(如第一个单元格)。其中,下标的取值可以和LIST[0]位置处的取值相等,这样便于直接基于下标确定译码的映射关系。
图5示意性示出了根据本公开实施例的码制表的示意图。
如图5所示,第一码制和第二码制是各自的字符之间可以进行互译的。码制表包括第一码制中字符和第二码制中字符之间的第一映射关系。如第二码制中字符“0”与第一码制中字符“**”之间存在映射关系,需要进行译码时,将字符“0”译为字符“**”或将字符“**”译为字符“0”。又例如,将字符“1”译为字符“^^”或将字符“^^”译为字符“1”。又例如,将字符“2”译为字符“--”或将字符“--”译为字符“2”。需要说明的是,以上仅为示例性说明,不能理解为对本公开的限定。
LIST[0]中的0是下标,其可以作为码制表的位置标识,如码制表的第一个位置,LIST[0]位置处存储的数据可以是0或1等。LIST[1]中的1是下标,其可以作为码制表的位置标识,如码制表的第二个位置,LIST[1]位置处存储的数据可以是0或1等。例如,ASCII中字符“0”和码制表的位置标识“0”之间存在映射关系。此外,为了提升译码效率,可以在编制码制表时,使得码制表的下标与对应位置处的数据相同,这可以在确定下标后即可确定译码。例如,LIST[0]位置处存储的数据是0,LIST[1]位置处存储的数据是1。
以下对译码过进行示例性说明。
直接查询结果存在换行问题。此外,如主机采取的为EBDIC码,其中非英语数据保存因特殊要求,可以采用ASCII码保存,导致一条记录的不同字段存在两种码制情况,在结果集需要对不同码制的字段进行译码。
关于换行问题解决方法:因存在乱码,采取ASCII码直接读取会破坏数据结构。本实施例中可以采用二进制读取文件,找到当前换行部分特殊标记字符,对数据保存在二维集合数据结构中,然后对数据重新排列,按照行重新排列,使原有换行的记录变成一行。
关于乱码问题解决方法:预先制作码制表,ASCII的00到FF字符和EBDIC码制对应关系保存在数组中,例如LIST[0]保存为ASCII为0对应EBDIC码。
对已拼接完成的数据进行扫描,如存在不在ASCII码可见字符范围集的数据判断为乱码,需要根据码制进行译码。为加强判断准确性,先行扫描一部分数据,对多条记录的字段进行判断,形成数据结构模板,记录所有需译码的字段。然后统一根据此模板对数据进行译码。由于采取二进制读取以及码制表下标对应关系查询,译码效率快速且资源消耗较小。
在一个实施例中,数据查询方法还可以包括如下操作,设置作业的作业参数,以调整作业的资源占用量和作业终止条件,其中,作业参数包括:等级参数、时限参数中至少一种。
图6示意性示出了根据本公开实施例的作业参数的示意图。
如图6所示,作业参数中可以包括TIME参数和CLASS参数等,这些参数可以表征作业的执行情况等。例如,采取主机作业模式,可以在作业中的CLASS参数,确定作业的使用CPU资源上限以及同时可以查询的并发数。TIME参数,控制作业获取CPU的时间数,如在规定CPU耗时内未完成查询,可以自动结束作业,避免效率低的查询长时间占用资源。作业参数可以如表1所示。
表1
作业名 | 程序名 | 最长执行时间(min) | 返回码最大允许值 |
TEST | abc | 3 | 4 |
…… | …… | …… | …… |
作业提交运行后,可以监控作业的运行状态,并通过作业的作业名、作业ID等信息定位作业后,读取各项参数,根据作业信息和参数对作业队列进行监控,抓取作业的各作业步的输出信息,并对作业输出信息进行格式化处理,当作业执行结束时,主机端输出格式化后的作业结果。其中,在设定的耗时内未查询到与结构化查询语言对应的DB2数据库中的数据的情况下,则可以禁止查询与结构化查询语言对应的DB2数据库中的数据。
在一个实施例中,对于接收的每个结构化查询语言,数据查询方法还可以包括如下操作步骤,首先,获取结构化查询语言的查询要求信息,查询要求信息包括结构化查询语言的规范信息。然后,根据查询要求信息对结构化查询语言进行调整。
具体地,通过客户端获取结构化查询语言前还包括:获取结构化查询语言的查询要求信息,查询要求信息包括结构化查询语言的规范信息。相应地,该方法还包括:根据查询要求信息对结构化查询语言进行调整。
要求包括对结构化查询语言的每行的字符数要求,且根据查询要求信息对结构化查询语言进行调整包括:对结构化查询语言的每行的字符数进行调整,以使结构化查询语言的每行的字符数小于或等于预设的字符数阈值。
例如,该字符数阈值可以为72字符,也就是说,结构化查询语言的每行的字符数小于或等于72字符数,在其他实施例中,该字符数阈值也可以为其他数值,例如80等。以使得主机能够根据结构化查询语言主动查询相关数据。
在另一些实施例中,要求还可以根据结构化查询语言生产查询规范设置,以对结构化查询语言进行自动转换,并纠正常规的编写错误。结构化查询语言生产查询规范是本领域技术人员所习知,且易于实现的,在此不做赘述,例如,该结构化查询语言生产查询规范包括字段别名和子查询别名时不要省略as关键字、字段别名使用下划线分割多个单词、除非有个别大小写敏感的字段名称外,结构化查询语言语句编写使用全小写字符、结构化查询语言语句中遇到from等关键字时,单独占一行、结构化查询语言语句要有层次结构,使用4个空格缩进,在Hive中制表符不能作为缩进、子查询别名使用it(inner table)命名、字段别名不使用拼音等。
图7示意性示出了根据本公开实施例的对结构化查询语言进行调整的示意图。
如图7所示,位于上方的图是用户输入的SQL语言,可以看到,其中,第一行中包括FROM、WHERE等关键字没有单独占一行,因此,位于上方的图中由用户输入的SQL语言不够规范。客户端可以基于查询要求信息对用户输入的SQL语言进行规范化处理。图7中位于下方的图是由客户端进行规范化后的SQL语言,满足查询要求信息。
在一个实施例中,主机提供的接口可基于文件传输协议(File TransferProtocol,简称FTP)或超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)进行数据传输。查询数据时,将查询数据的作业提交到作业队列中,等到该作业完成以后,可以基于FTP获取查询到的结果。
本公开实施例提供的方法,利用主机的作业模式在控制资源的前提下进行查询,并对所得查询结果的数据进行加工。用户,如运维人员仅需在系统中录入所需SQL,即可获得所需数据,不用登入主机Z/OS系统和不用关注主机Z/OS环境的差异性和安全性。此外,按查询规范和SQL语法对用户输入的SQL语言进行纠正以提升查询准确率。此外,对查询结果进行换行拼接和译码,自动修正作业查询结果的换行和乱码问题。
在一个实施例中,该数据查询方法还可以包括以下至少一种操作。例如,在生成主机可执行的作业,作业包括结构化查询语言之后,接收针对作业的审批结果,如果审批结果是通过,则提交作业至主机的作业队列中。例如,在得到查询结果之后,输出查询结果,以便确定查询结果的审批结果。通过审批和事后审计,可以提供数据查询安全审计功能。
图8示意性示出了根据本公开另一实施例的数据查询方法的流程图。
如图8所示,该方法由数据查询系统执行,数据查询系统包括客户端和主机。本公开实施例的数据查询方法可以包括操作S801~操作S807。
操作S801,客户端生成主机可执行的作业,作业包括结构化查询语言。
操作S803,客户端提交作业至主机的作业队列中。
操作S805,主机通过执行作业队列中作业,确定与结构化查询语言对应的查询结果。
操作S807,客户端响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。
在一个实施例中,首先,生成主机可执行的作业,作业包括结构化查询语言。其中,结构化查询语言可以是基于查询要求信息进行调整之后的。
然后,提交作业至主机的作业队列中。如将作业传输至运用Z/OS系统的主机。
接着,主机通过执行作业确定与结构化查询语言对应的查询结果。然后可以输出该查询结果。如主机查询与结构化查询语言对应的DB2数据库中的数据。
然后,采取二进制读取数据,将数据中行号相同的数据进行拼接使得原有换行的记录变成一行。
接着,对至少部分拼接后的数据进行扫描,得到数据结构模板,记录所有需译码的字段。然后统一根据该数据结构模板对数据进行译码。其中,在对一列或多列数据进行译码时,可以基于一列或多列中各数据与码制表的下标来确定译码,该码制表的下标可以和对应位置处的字符相同,以提升译码效率。
本公开实施例还提供了一种数据查询装置。
图9示意性示出了根据本公开实施例的数据查询装置的结构框图。
如图9所示,客户端中的数据查询装置900可以包括:作业组装模块910、作业提交模块920和译码模块930。
其中,作业组装模块910用于生成主机可执行的作业,作业包括结构化查询语言。
作业提交模块920用于提交作业至主机的作业队列中,以使主机通过执行作业确定与结构化查询语言对应的查询结果。
译码模块930用于响应于来自主机的查询结果,对查询结果进行译码,得到具有统一码制的数据。
需要说明的是,作业组装模块910、作业提交模块920和译码模块930各自可执行的操作可以同上述方法相关部分内容,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,作业组装模块910、作业提交模块920和译码模块930中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,作业组装模块910、作业提交模块920和译码模块930中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,作业组装模块910、作业提交模块920和译码模块930中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图10示意性示出了根据本公开实施例的适于执行对象推荐方法的电子设备的结构框图。图10示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图10所示,根据本公开实施例的电子设备1000包括处理器1001,其可以根据存储在只读存储器(ROM)1002中的程序或者从存储部分1008加载到随机访问存储器(RAM)1003中的程序而执行各种适当的动作和处理。处理器1001例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1001还可以包括用于缓存用途的板载存储器。处理器1001可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1003中,存储有电子设备1000操作所需的各种程序和数据。处理器1001、ROM 1002以及RAM 1003通过总线1004彼此相连。处理器1001通过执行ROM 1002和/或RAM1003中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,程序也可以存储在除ROM 1002和RAM 1003以外的一个或多个存储器中。处理器1001也可以通过执行存储在一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备1000还可以包括输入/输出(I/O)接口1005,输入/输出(I/O)接口1005也连接至总线1004。电子设备1000还可以包括连接至I/O接口1005的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1006;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1007;包括硬盘等的存储部分1008;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1009。通信部分1009经由诸如因特网的网络执行通信处理。驱动器1010也根据需要连接至I/O接口1005。可拆卸介质1011,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1010上,以便于从其上读出的计算机程序根据需要被安装入存储部分1008。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1009从网络上被下载和安装,和/或从可拆卸介质1011被安装。在该计算机程序被处理器1001执行时,执行本公开实施例的电子设备中限定的上述功能。根据本公开的实施例,上文描述的电子设备、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1002和/或RAM 1003和/或ROM 1002和RAM 1003以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (13)
1.一种由客户端执行的数据查询方法,包括:
生成主机可执行的作业,所述作业包括结构化查询语言;
提交所述作业至所述主机的作业队列中,以使所述主机通过执行所述作业确定与所述结构化查询语言对应的查询结果;以及
响应于来自所述主机的查询结果,对所述查询结果进行译码,得到具有统一码制的数据。
2.根据权利要求1所述的方法,其中,所述响应于来自所述主机的查询结果,对所述查询结果进行译码,得到具有统一码制的数据包括:
响应于来自所述主机的数据查询结果,读取所述数据查询结果中数据;
基于所述数据查询结果中数据的结构信息对所述数据查询结果中数据进行排列,得到重排数据;以及
对所述重排数据进行译码,得到具有统一码制的数据。
3.根据权利要求2所述的方法,其中:
所述读取所述数据查询结果中数据包括:基于二进制读取所述数据查询结果中数据,得到二进制数据,所述二进制数据分别存储在至少两个数据表中,每个数据表包括至少两行数据;
所述基于所述数据查询结果中数据的结构信息对所述数据查询结果中数据进行排列,得到重排数据包括:
确定换行位置处字符;以及
基于所述换行位置处字符和各数据表的行号,重新排列所述至少两个数据表中数据,以将所述至少两个数据表中行号相同的行拼接成一行。
4.根据权利要求3所述的方法,其中,所述码制包括第一码制和第二码制;
所述对所述重排数据进行译码,得到具有统一码制的数据包括:
通过对所述数据查询结果中数据进行扫描,选取所述数据中的部分数据,所述部分数据不在所述第一码制的可见字符范围集中;以及
基于所述第二码制对所述部分数据进行译码,以生成以所述第一码制保存的译码后数据。
5.根据权利要求4所述的方法,其中,所述通过对所述数据查询结果中数据进行扫描,选取所述数据中的部分数据包括:
在得到至少部分重排数据之后,通过扫描至少部分所述重排数据,确定数据结构模板,所述数据结构模板包括待译码字段的位置信息;以及
基于所述数据结构模板确定所述部分数据。
6.根据权利要求5所述的方法,其中,所述基于所述第二码制对所述部分数据进行译码,以生成以所述第一码制保存的译码后数据包括:
根据码制表的位置标识对所述部分数据进行译码,其中,所述码制表包括第一码制中字符和第二码制中字符之间的第一映射关系,以及所述第二码制中字符和所述码制表的位置标识之间的第二映射关系。
7.根据权利要求1~6任一项所述的方法,还包括:
设置所述作业的作业参数,以调整所述作业的资源占用量和作业终止条件,其中,所述作业参数包括:等级参数、时限参数中至少一种。
8.根据权利要求1~6任一项所述的方法,还包括:对于接收的每个结构化查询语言,
获取所述结构化查询语言的查询要求信息,所述查询要求信息包括所述结构化查询语言的规范信息;以及
根据所述查询要求信息对所述结构化查询语言进行调整。
9.根据权利要求1~6任一项所述的方法,还包括以下至少一种操作:
在所述生成主机可执行的作业,所述作业包括结构化查询语言之后,接收针对所述作业的审批结果,如果所述审批结果是通过,则提交所述作业至所述主机的作业队列中;
在得到所述查询结果之后,输出所述查询结果,以便确定所述查询结果的审批结果。
10.一种由数据查询系统执行的数据查询方法,所述数据查询系统包括客户端和主机,所述方法包括:
所述客户端生成主机可执行的作业,所述作业包括结构化查询语言;
所述客户端提交所述作业至所述主机的作业队列中;
所述主机通过执行所述作业队列中所述作业,确定与所述结构化查询语言对应的查询结果;以及
所述客户端响应于来自所述主机的查询结果,对所述查询结果进行译码,得到具有统一码制的数据。
11.一种客户端中的数据查询装置,包括:
作业组装模块,用于生成主机可执行的作业,所述作业包括结构化查询语言;
作业提交模块,用于提交所述作业至所述主机的作业队列中,以使所述主机通过执行作业确定与所述结构化查询语言对应的查询结果;以及
译码模块,用于响应于来自所述主机的查询结果,对所述查询结果进行译码,得到具有统一码制的数据。
12.一种电子设备,包括:
一个或多个处理器;以及
存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~8中任一项所述的方法。
13.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时实现根据权利要求1~8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010790162.5A CN111881155B (zh) | 2020-08-07 | 2020-08-07 | 数据查询方法、数据查询装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010790162.5A CN111881155B (zh) | 2020-08-07 | 2020-08-07 | 数据查询方法、数据查询装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111881155A true CN111881155A (zh) | 2020-11-03 |
CN111881155B CN111881155B (zh) | 2023-08-22 |
Family
ID=73210996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010790162.5A Active CN111881155B (zh) | 2020-08-07 | 2020-08-07 | 数据查询方法、数据查询装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111881155B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140258256A1 (en) * | 2013-03-11 | 2014-09-11 | Bmc Software, Inc. | Systems and methods for remote access to db2 databases |
CN111104421A (zh) * | 2019-12-31 | 2020-05-05 | 新奥数能科技有限公司 | 一种基于数据接口标准配置的数据查询方法及装置 |
-
2020
- 2020-08-07 CN CN202010790162.5A patent/CN111881155B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140258256A1 (en) * | 2013-03-11 | 2014-09-11 | Bmc Software, Inc. | Systems and methods for remote access to db2 databases |
CN111104421A (zh) * | 2019-12-31 | 2020-05-05 | 新奥数能科技有限公司 | 一种基于数据接口标准配置的数据查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111881155B (zh) | 2023-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9047346B2 (en) | Reporting language filtering and mapping to dimensional concepts | |
US9189524B2 (en) | Obtaining partial results from a database query | |
US10402368B2 (en) | Content aggregation for unstructured data | |
CN110795455A (zh) | 依赖关系解析方法、电子装置、计算机设备及可读存储介质 | |
US20120159260A1 (en) | Resource index identifying multiple resource instances | |
US20210149895A1 (en) | Query conversion for querying disparate data sources | |
CN110688544A (zh) | 一种查询数据库的方法、设备及存储介质 | |
US9122732B2 (en) | Data comparison system | |
US8135716B2 (en) | Systems and method for mapping large object data content in a database table to a work area | |
US11930096B2 (en) | Systems and methods for rendering interactive web pages | |
CN110837531B (zh) | 数据源读写的分离方法、装置及计算机可读存储介质 | |
US10503823B2 (en) | Method and apparatus providing contextual suggestion in planning spreadsheet | |
CN113419740A (zh) | 程序数据流的分析方法、装置、电子设备及可读存储介质 | |
CN111881155B (zh) | 数据查询方法、数据查询装置和电子设备 | |
US9275035B2 (en) | Method and system to determine part-of-speech | |
KR101260436B1 (ko) | 구조화 질의어 자동 처리 시스템과 방법 및 그를 실행하기 위한 프로그램이 기록되는 컴퓨터로 읽을 수 있는 기록매체 | |
CN114356330A (zh) | 页面配置方法、装置、电子设备和存储介质 | |
US20120096048A1 (en) | Personalized Object Dimension | |
US9141515B1 (en) | Limiting display content in editor for large data volumes | |
CN111859403A (zh) | 依赖关系漏洞的确定方法、装置、电子设备及存储介质 | |
US20210240469A1 (en) | Method and apparatus for managing modules | |
US20230214394A1 (en) | Data search method and apparatus, electronic device and storage medium | |
US11301498B2 (en) | Multi-cloud object store access | |
US11847405B1 (en) | Encoding hyperlink data in a printed document | |
US20230205746A1 (en) | Determination of recommended column types for columns in tabular data |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |