Data Visualization Method and Apparatus, and Database Server

20170262531 · 2017-09-14

    Inventors

    Cpc classification

    International classification

    Abstract

    Embodiments of the present disclosure provide a data visualization method and apparatus, and a database server. The method includes receiving, by a database server, a data query request sent by a request side, where the data query request includes a query condition and a data graph type, acquiring data according to the query condition, where the data graph type is used for presentation of the data, and generating a data graph according to the data and the data graph type. In the embodiments of the present disclosure, a query condition and a data graph type are carried in a data query request, and a data graph is generated inside a database server. Therefore, it is unnecessary to develop software multiple times in different architectures to generate a data graph, which improves resource utilization, and has a relatively low skill requirement for an operator.

    Claims

    1. A data visualization method, comprising: receiving, by a database server, a data query request for data sent by a request side, wherein the data query request comprises a query condition and a data graph type; acquiring, by the database server, data according to the query condition, wherein the data graph type is used for presentation of the data; and generating, by the database server, a data graph according to the data and the data graph type.

    2. The data visualization method according to claim 1, wherein generating, by the database server, the data graph according to the data and the data graph type comprises: determining whether a template corresponding to the data graph type has been loaded into the database server; applying the data to the template to generate the data graph when the template corresponding to the data graph type has been loaded into the database server; and loading the template into the database server and applying the data to the template, to generate the data graph when the template corresponding to the data graph type has not been loaded into the database server.

    3. The data visualization method according to claim 2, wherein determining whether the template corresponding to the data graph type has been loaded into the database server comprises: searching one or more data graph templates stored by the database server to determine whether the template corresponding to the data graph type exists; and determining that the template corresponding to the data graph type has been loaded into the database server when the template corresponding to the data graph type exists.

    4. The data visualization method according to claim 2, wherein determining whether the template corresponding to the data graph type has been loaded into the database server comprises: searching one or more data graph templates stored by the database server to determine whether the template corresponding to the data graph type exists; and determining that the template corresponding to the data graph type has not been loaded into the database server when the template corresponding to the data graph type does not exist.

    5. The data visualization method according to claim 1 wherein the data query request further comprises information indicating a location from which the customized template can be acquired when the data graph type is a customized template.

    6. The data visualization method according to claim 3, wherein generating, by the database server, the data graph according to the data and the data graph type comprises: generating the data graph according to the data and the data graph type; generating a uniform resource locator (URL) that points to the data graph; and sending, by the database server, the URL as a response to the request side such that the request side accesses the data graph using the URL after generating the data graph according to the data and the data graph type and the URL that points to the data graph.

    7. The data visualization method according to claim 4, wherein generating, by the database server, the data graph according to the data and the data graph type comprises: generating the data graph according to the data and the data graph type; generating a uniform resource locator (URL) that points to the data graph; and sending, by the database server, the URL as a response to the request side such that the request side accesses the data graph using the URL after generating the data graph according to the data and the data graph type and generating the URL that points to the data graph.

    8. A data visualization apparatus, comprising: a non-transitory computer-readable storage medium comprising programming instructions; and a processor coupled to the non-transitory computer-readable storage medium, wherein the programming instructions cause the processor to be configured to: receive a data query request for data sent by a request side, wherein the data query request comprises a query condition and a data graph type; acquire data according to the query condition, wherein the data graph type is used for presentation of the data; and generate a data graph according to the data and the data graph type.

    9. The data visualization apparatus according to claim 8, wherein the programming instructions further cause the processor to be configured to: determine whether a template corresponding to the data graph type has been loaded into the data visualization apparatus; trigger to apply the data to the template to generate the data graph when the template corresponding to the data graph type has been loaded into the data visualization apparatus; and trigger to load the template into the database visualization apparatus and apply the data to the template, to generate the data graph when the template corresponding to the data graph type has not been loaded into the data visualization apparatus.

    10. The data visualization apparatus according to claim 9, wherein the programming instructions further cause the processor to be configured to: search one or more data graph templates stored by the data visualization apparatus to determine whether the template corresponding to the data graph type exists; and determine that the template corresponding to the data graph type has been loaded into the data visualization apparatus when the template corresponding to the data graph type exists.

    11. The data visualization apparatus according to claim 9, wherein the programming instructions further cause the processor to be configured to: search one or more data graph templates stored by the data visualization apparatus, to determine whether the template corresponding to the data graph type exists; and determine that the template corresponding to the data graph type has not been loaded into the data visualization apparatus when the template corresponding to the data graph type does not exist.

    12. The data visualization apparatus according to claim 8, wherein the data query request further comprises information indicating a location from which the customized template can be acquired when the data graph type is a customized template.

    13. The data visualization apparatus according to claim 8, wherein programming instructions further cause the processor to be configured to: generate a uniform resource locator (URL) that points to the data graph; and send the URL as a response to the request side such that the request side accesses the data graph using the URL.

    14. A database server, comprising: a receiver configured to receive a data query request for data, wherein the data query request comprises a query condition and a data graph type; and a processor coupled to the receiver and configured to: parse the data query request to obtain a data processing command and a graph generation command, wherein the data processing command comprises the query condition, and wherein the graph generation command comprises the data graph type; acquire, according to the data processing command, the data from the data storage; and generate a data graph according to the graph generation command and the data.

    15. The database server according to claim 14, wherein the processor is further configured to: determine whether a template corresponding to the data graph type has been loaded into the database server; apply the data to the template to generate the data graph when the template corresponding to the data graph type has been loaded into the database server; and load the template into the database server and apply the data to the template, to generate the data graph when the template corresponding to the data graph type has not been loaded into the database server.

    16. The database server according to claim 14, wherein, when determining whether the template corresponding to the data graph type has been loaded into the database server, the processor is further configured to: search one or more data graph templates stored by the database server to determine whether the template corresponding to the data graph type exists; and determine that the template corresponding to the data graph type has been loaded into the database server when the template corresponding to the data graph type exists.

    17. The database server according to claim 14, wherein, when determining whether the template corresponding to the data graph type has been loaded into the database server, the processor is further configured to: search one or more data graph templates stored by the database server to determine whether the template corresponding to the data graph type exists; and determine that the template corresponding to the data graph type has not been loaded into the database server when the template corresponding to the data graph type does not exist.

    18. The database server according to claim 14, wherein the processor is further configured to initialize a graph engine before the data and the graph generation command are sent to the graph engine.

    19. The database server according to claim 14, wherein the data query request further comprises information indicating a location from which the customized template can be acquired when the data graph type is a customized template.

    20. The database server according to claim 14, wherein the processor is further configured to generate a uniform resource locator (URL) that points to the data graph, and wherein the database server further comprises a transmitter coupled to the processor and configured to send the URL as a response to a request side such that the request side accesses the data graph using the URL.

    Description

    BRIEF DESCRIPTION OF DRAWINGS

    [0025] To describe the technical solutions in the embodiments of the present disclosure or in the prior art more clearly, the following briefly introduces the accompanying drawings for describing the embodiments or the prior art. The accompanying drawings in the following description show some embodiments of the present disclosure, and persons of ordinary skill in the art may still derive other drawings from these accompanying drawings without creative efforts.

    [0026] FIG. 1 is a flowchart of Embodiment 1 of a data visualization method according to the present disclosure.

    [0027] FIG. 2 is a schematic structural diagram of Embodiment 1 of a data visualization apparatus according to the present disclosure.

    [0028] FIG. 3 is a schematic structural diagram of Embodiment 1 of a database server according to the present disclosure.

    [0029] FIG. 4 is an exemplary diagram of a comparison between functions of a database server of the present disclosure and functions of a conventional database server.

    [0030] FIG. 5 is an exemplary diagram of generation of a data graph in Embodiment 2 of a database server according to the present disclosure.

    DESCRIPTION OF EMBODIMENTS

    [0031] To make the objectives, technical solutions, and advantages of the embodiments of the present disclosure clearer, the following clearly describes the technical solutions in the embodiments of the present disclosure with reference to the accompanying drawings in the embodiments of the present disclosure. The described embodiments include some but not all of the embodiments of the present disclosure. All other embodiments obtained by persons of ordinary skill in the art based on the embodiments of the present disclosure, without creative efforts, shall fall within the protection scope of the present disclosure.

    [0032] FIG. 1 is a flowchart of Embodiment 1 of a data visualization method according to the present disclosure. This embodiment of the present disclosure provides a data visualization method, and the method may be executed by a device such as a data visualization apparatus or a database server, where the data visualization apparatus may be independently set, or may be integrated in a large data storage device such as a database server. As shown in FIG. 1, the method includes:

    [0033] S101 A database server receives a data query request sent by a request side, where the data query request includes a query condition and a data graph type.

    [0034] Generally, a data query request includes only a query condition, for example, the location of data and/or the size of data, but does not specify a presentation form of the data, and the found data further needs to be processed using a service language, to generate a data graph. In this embodiment, of the present disclosure, the data graph type is directly carried in the data query request such that a data graph is generated inside the device executing the method, and it is unnecessary to develop software for multiple times in different architectures. In addition, a development process of an application involving graphics and reports is simplified, and development efficiency of the foregoing application is improved.

    [0035] In an embodiment, in a relational database, SQL syntax is extended in the present disclosure. A format of an extended SQL statement is standard SQL+a part that defines how to implement information virtualization, where the standard SQL represents SQL syntax used in the prior art, and the part that defines how to implement information virtualization is used to represent an extended part provided in this embodiment of the present disclosure, for example

    [0036] Select................(ANSI SQL)--standard SQL--

    [0037] as <pie/bar/line/area/custom>--extended syntax--

    [0038] [uses <customized template url location>]--extended syntax--

    [0039] [generateTo <external url>]--extended syntax--, where

    “as” represents that the data graph is generated using a data graph type specified by a post parameter, and “custom” represents a customized template, when the parameter is set to custom, a service-customized data graph template is acquired using a template location specified by a user parameter, and “output” represents a location at which a data graph is to be generated. It should be noted that, such keywords herein and related keywords below (for example, “as”, “uses”, “generateTo”) are used for illustration only, and may be replaced with any suitable keyword in actual production, which is not limited in the present disclosure.

    [0040] If the data graph type is a customized template, the data query request may further include information indicating a location from which the customized template can be acquired. Further, the data query request may further include information indicating a location of the data graph, and the like. For a data graph needing to be generated using the customized template, a location of the customized template needs to be specified in the extended SQL statement, for example Select avg(salary) from employee_table group by designation as pie uses customized_template_url. In this example, the location information of the data graph is represented using a URL, and the present disclosure is not limited thereto.

    [0041] A data query request in the prior art and the data query request in this embodiment of the present disclosure are described below using examples, to clearly distinguish the two.

    [0042] For example, in the prior art, the data query request is an SQL statement using the SQL syntax: Select * from userdetails where userId=“test_user_id_1”, where “userdetails” represents a location of data, and “userId=“test_user_id_1”” represents a condition that the data satisfies. In this embodiment of the present disclosure, to acquire a graph that is drawn using data the same as that in the foregoing SQL statement, the data query request is Select * from userdetails where userId=“test_user_id_1” as pie, where “as” represents that the data graph is generated using a data graph type specified by a post parameter, and “pie” represents the data graph type for presentation.

    [0043] For another example, in the prior art, to acquire data the same as that of the foregoing SQL statement, the data query request is a NoSQL statement using non-relational database (NoSQL) syntax db.userdetails.find({“userId”“test_user_id_1”}). In this embodiment of the present disclosure, to acquire a graph drawn using data the same as that in the foregoing SQL statement, the data query request is db.userdetails.find({“userId”“test_user_id_1”}, {“as” “pie”}).

    [0044] S102 The database server acquires data according to the query condition, where the data graph type is used for presentation of the data.

    [0045] The database server parses the foregoing data query request, to obtain the query condition carried in the data query request, and obtains, according to the query condition, the data to be queried, that is, original data in the prior art or data obtained after original data is processed.

    [0046] S103 The database server generates a data graph according to the data and the data graph type.

    [0047] The data query request further carries the data graph type, therefore, the data obtained in S102 is applied to a template corresponding to the data graph type, to generate the data graph to be presented. A data graph is a graphical and visualized presentation form of information, data, and knowledge, and aims to transfer complex data information to a user in a clear, intuitive, and efficient manner.

    [0048] In this embodiment of the present disclosure, a query condition and a data graph type are carried in a data query request, and a data graph can be generated inside a database server. Therefore, it is unnecessary to develop software multiple times in different architectures to generate a data graph, which improves resource utilization, and has a relatively low skill requirement for an operator. In addition, a development process of an application involving graphics and reports is simplified, and development efficiency of the foregoing application is improved.

    [0049] In the foregoing embodiment, S103 may include determining whether a template corresponding to the data graph type has been loaded into the database server, and if it is determined that the template corresponding to the data graph type has been loaded into the database server, applying the data to the template, to generate the data graph, otherwise, loading the template into the database server and applying the data to the template to generate the data graph.

    [0050] Determining whether a template corresponding to the data graph type has been loaded into the database server may include searching one or more data graph templates stored by the database server, to determine whether the template corresponding to the data graph type exists, and if the template corresponding to the data graph type exists, determining that the template corresponding to the data graph type has been loaded into the database server, or if the template corresponding to the data graph type does not exist, determining that the template corresponding to the data graph type has not been loaded into the database server.

    [0051] Development of a service by applying this embodiment of the present disclosure is implemented using the following steps define a table or a view, define a visual structure for the table or the view, for example, the visual structure may be a pie chart, a bar chart, an area chart, a customized graph, or the like, define an implementation template for the table or the view, and complete creation of the table or the view. When the table or the view is created, a data graph type supported by the table or the view is specified. Each table or view matches one or more templates, to indicate how to generate a corresponding data graph. A template includes a series of graphic cache mapping tables for improving performance.

    [0052] Based on the foregoing embodiment, S103 may include generating the data graph according to the data and the data graph type, and generating a URL that points to the data graph. Further, after generating by the database server the URL, the method may further include sending, by the database server, the URL as a response to the request side such that the request side accesses the data graph using the URL.

    [0053] For the data query request of the request side, for example, a client, after obtaining the data graph, the database server receiving the data query request further needs to inform the request side of the location information of the data graph such that the request side displays the data graph. Herein, the database server responds to the request side using the URL, but the present disclosure is not limited thereto.

    [0054] FIG. 2 is a schematic structural diagram of Embodiment 1 of a data visualization apparatus according to the present disclosure. As shown in FIG. 2, a data visualization apparatus 20 includes a receiving module 21, an acquiring module 22, and a processing module 23.

    [0055] The receiving module 21 is configured to receive a data query request sent by a request side, where the data query request includes a query condition and a data graph type, the acquiring module 22 is configured to acquire data according to the query condition obtained by the receiving module 21, where the data graph type is used for presentation of the data, and the processing module 23 is configured to generate a data graph according to the data obtained by the acquiring module 22 and the data graph type obtained by the receiving module 21.

    [0056] The apparatus in this embodiment may be used to execute the technical solution of the method embodiment shown in FIG. 1, and implementation principles and technical solutions thereof are similar, and are not described herein again.

    [0057] In the foregoing embodiment, the processing module 23 may include a determining unit, configured to determine whether a template corresponding to the data graph type has been loaded into the data visualization apparatus 20, and if the determining unit determines that the template corresponding to the data graph type has been loaded into the data visualization apparatus 20, trigger the processing module 23 to apply the data to the template, to generate the data graph, otherwise, trigger the processing module 23 to load the template into the data visualization apparatus 20 and apply the data to the template, to generate the data graph.

    [0058] Further, the determining unit may be configured to search one or more data graph templates stored by the data visualization apparatus 20 to determine whether the template corresponding to the data graph type exists, and if the template corresponding to the data graph type exists, determine that the template corresponding to the data graph type has been loaded into the data visualization apparatus 20, or if the template corresponding to the data graph type does not exist, determine that the template corresponding to the data graph type has not been loaded into the data visualization apparatus 20.

    [0059] Optionally, if the data graph type is a customized template, the foregoing data query request may further include information indicating a location from which the customized template can be acquired, and the like.

    [0060] Based on the foregoing description, the data visualization apparatus 20 may further include a response module (not shown in FIG. 2). In this embodiment, the processing module 23 may be further configured to generate a URL that points to the data graph. The response module is configured to send the URL as a response to the request side such that the request side accesses the data graph using the URL.

    [0061] An embodiment of the present disclosure further provides a database server, where the database server has a built-in graph engine, to implement that during a data query process, a data graph is generated according to a data graph type that is specified in advance by a developer.

    [0062] FIG. 3 is a schematic structural diagram of Embodiment 1 of a database server according to the present disclosure. As shown in FIG. 3, the database server 30 in this embodiment of the present disclosure includes a database server having standard functions, and components related to graphical processing, where the database server 30 having standard functions includes a receiver 31, a data processing statement parser 32, a data processing command executor 33, and a data storage device 34, and the components related to graphical processing include a data processing command dispatcher 35 and a graph engine 36. The database server 30 having standard functions takes responsibilities such as regular data acquisition and calculation, the data processing command dispatcher 35 is responsible for dispatching a data acquisition process, and after data is acquired, the data processing command dispatcher 35 transfers the data to the graph engine 36 such that the graph engine 36 generates a final data graph according to a data graph type specified by a user.

    [0063] In an embodiment, the receiver 31 is configured to receive a data query request, where the data query request includes a query condition and a data graph type. The data processing statement parser 32 is configured to parse the data query request to obtain a data processing command and a graph generation command, where the data processing command includes the query condition, and the graph generation command includes the data graph type. The data processing command dispatcher 35 is configured to dispatch the data processing command executor 33 to acquire, according to the data processing command, data from the data storage device 34. The graph engine 36 is configured to generate a data graph according to the graph generation command and the data.

    [0064] The graph engine 36 may be configured to determine whether a template corresponding to the data graph type has been loaded into the database server 30, and if it is determined that the template corresponding to the data graph type has been loaded into the database server 30, apply the data to the template, to generate the data graph, otherwise, load the template into the database server 30 and apply the data to the template, to generate the data graph.

    [0065] Optionally, the determining, by the graph engine 36, whether a template corresponding to the data graph type has been loaded into the database server 30 includes searching one or more data graph templates stored by the database server 30, to determine whether the template corresponding to the data graph type exists, and if the template corresponding to the data graph type exists, determining that the template corresponding to the data graph type has been loaded into the database server 30, or if the template corresponding to the data graph type does not exist, determining that the template corresponding to the data graph type has not been loaded into the database server 30.

    [0066] In the foregoing embodiment, if the data graph type is a customized template, the data query request may further include information indicating a location from which the customized template can be acquired, and the like, which is not limited in the present disclosure.

    [0067] Further, the graph engine 36 may be further configured to generate a URL that points to the data graph, and send the URL as a response to a request side such that the request side accesses the data graph using the URL.

    [0068] FIG. 4 is an exemplary diagram of a comparison between functions of a database server of the present disclosure and functions of a conventional database server.

    [0069] As shown in FIG. 4, a conventional database server 41 receives a data query request, parses the data query request, acquires original data from a database, and returns the original data to a request side sending the data query request. Then, the request side parses and processes the original data, generates a data graph by means of coding, and presents the data graph.

    [0070] Referring to FIG. 3 and FIG. 4, in this embodiment of the present disclosure, a database server 42 receives an extended syntax data query request, parses the extended syntax data query request, and acquires original data from a database. Further, a graph engine 36, in the database server 42, generates a data graph according to the original data, and sends the data graph as a response to a request side of the extended syntax data query request such that the request side presents the data graph.

    [0071] It can be seen from the foregoing comparison that, the database server provided in this embodiment of the present disclosure has a data graph generation function, and can directly send a data graph as a response to a request side of a data query request according to the received data query request, where the data query request includes a data graph type.

    [0072] Cooperative work among the foregoing components is described below using a signaling diagram, to describe generation of a data graph. As shown in FIG. 5, the cooperative work includes:

    [0073] S501: The receiver 31 receives a data processing script entered by a data graph requester.

    [0074] The foregoing data processing script is an extended data processing script, which as construed by persons skilled in the art, may include a query statement that includes a part that defines how to implement information virtualization, for example, the foregoing extended SQL statement or the foregoing extended NoSQL statement.

    [0075] S502: The data processing statement parser 32 acquires the foregoing data processing script.

    [0076] S503: The data processing statement parser 32 parses the foregoing data processing script, and splits the foregoing data processing script into a data processing command and a graph generation command.

    [0077] The data processing command may be construed as a command that includes the foregoing query condition, or as another command for processing data. The graph generation command may be construed as a command including information related to generation of a data graph. For example, the command includes a data graph type and information about a template corresponding to the data graph type.

    [0078] S504: The data processing statement parser 32 requests the data processing command dispatcher 35 to dispatch the commands.

    [0079] The data processing command dispatcher 35 sequentially executes the commands.

    [0080] S505: The data processing command dispatcher 35 initializes the graph engine 36.

    [0081] The data processing command dispatcher initializes the graph engine 36 according to a status of the graph engine 36.

    [0082] S506: The data processing command dispatcher 35 dispatches the data processing command executor 33.

    [0083] S507: After being dispatched by the data processing command dispatcher 35, the data processing command executor 33 executes a data processing command, acquires data from the data storage 34, and obtains processed data.

    [0084] Herein, the data processing command is the data processing command obtained after the data processing statement parser 32 parses the script.

    [0085] S508: The data processing command executor 33 returns the processed data to the data processing command dispatcher 35.

    [0086] S509: The data processing command dispatcher 35 dispatches the graph engine 36, and transfers the processed data and a data graph type to the graph engine 36.

    [0087] The data graph type is specified by the data graph requester.

    [0088] S510: The graph engine 36 determines that a data graph template corresponding to the data graph type has been loaded into the database server 30.

    [0089] In an embodiment, the graph engine 36 determines, according to the data graph type, whether the data graph template corresponding to the data graph type has been loaded into the database server 30, and if the data graph template has not been loaded into the database server 30, loads the data graph template corresponding to the data graph type into the database server 30, and then performs S511, or if the data graph template has been loaded into the database server 30, directly performs S511.

    [0090] S511: The graph engine 36 applies the processed data to the data graph template, to generate a data graph, and generates a URL that points to the data graph.

    [0091] Then, the graph engine 36 sends the URL as a response to the data graph requester, and the data graph requester can access the generated data graph according to the URL.

    [0092] In this embodiment of the present disclosure, a query condition and a data graph type are carried in a data query request, a data graph can be generated inside a database server, and a URL for accessing the data graph is sent to a data graph requester as a response such that the data graph requester accesses the data graph using the URL. Therefore, it is unnecessary to develop software multiple times in different architectures, which improves resource utilization, and has a relatively low skill requirement for an operator. In addition, a development process of an application involving graphics and reports is simplified, and development efficiency of the foregoing application is improved.

    [0093] Persons of ordinary skill in the art may understand that all or some of the steps of the method embodiments may be implemented by a program instructing related hardware. The program may be stored in a computer-readable storage medium. When the program runs, the steps of the method embodiments are performed. The foregoing storage medium includes any medium that can store program code, such as a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disc.

    [0094] Finally, it should be noted that the foregoing embodiments are merely intended for describing the technical solutions of the present disclosure, but not for limiting the present disclosure. Although the present disclosure is described in detail with reference to the foregoing embodiments, persons of ordinary skill in the art should understand that they may still make modifications to the technical solutions described in the foregoing embodiments or make equivalent replacements to some or all technical features thereof, without departing from the scope of the technical solutions of the embodiments of the present disclosure.