WO2024001493A1 - 一种可视化的数据分析方法及设备 - Google Patents

一种可视化的数据分析方法及设备 Download PDF

Info

Publication number
WO2024001493A1
WO2024001493A1 PCT/CN2023/091384 CN2023091384W WO2024001493A1 WO 2024001493 A1 WO2024001493 A1 WO 2024001493A1 CN 2023091384 W CN2023091384 W CN 2023091384W WO 2024001493 A1 WO2024001493 A1 WO 2024001493A1
Authority
WO
WIPO (PCT)
Prior art keywords
data source
data
type
sql statement
user
Prior art date
Application number
PCT/CN2023/091384
Other languages
English (en)
French (fr)
Inventor
王莉
李卫华
李昂
Original Assignee
京东方科技集团股份有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 京东方科技集团股份有限公司 filed Critical 京东方科技集团股份有限公司
Publication of WO2024001493A1 publication Critical patent/WO2024001493A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Definitions

  • the present disclosure relates to the field of data analysis technology, and in particular to a visual data analysis method and equipment.
  • the method of obtaining data from an open interface or from a temporary cache and solidifying it into a database will not only occupy the storage resources of the visualization system itself, but is also not conducive to the analysis of massive data on the cloud platform.
  • the present disclosure provides a visual data analysis method and equipment for visual analysis of multiple types of data sources. By establishing connection relationships with various types of data sources, multiple types of data sources can be obtained in real time, and Perform real-time combined analysis of various data sources.
  • embodiments of the present disclosure provide a visual data analysis method, which method includes:
  • the target data set is displayed on the visualization page in the form of a chart.
  • obtain multiple types of data sources through any one or more of the following methods:
  • the corresponding type of data source is obtained according to the parameter information in any one or more of the following ways:
  • obtaining the corresponding type of data source through a file transfer protocol includes:
  • the SQL statement to be executed is used as the obtained data source of the corresponding type, including:
  • establishing connections with various types of data sources includes:
  • establishing connections with each type of data source respectively based on the connection information of each type of data source includes:
  • connections to each type of data source are established based on the connection information of each type of data source in the configuration file.
  • the connection to each type of data source is established respectively according to the connection information of each type of data source, including:
  • a connection to a data source of the database type is established based on database parameters, wherein the database parameters characterize parameters required to connect to the database.
  • the connection with each type of data source is established based on the connection information of each type of data source, including:
  • the connection with each type of data source is established based on the connection information of each type of data source, including:
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • the connection to each type of data source is established based on the connection information of each type of data source, including:
  • the method further includes:
  • establishing connections with various types of data sources includes:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • establishing connections between various business systems and various types of data sources through the shared data source application includes:
  • establishing connections between various business systems and various types of data sources through the shared data source application includes:
  • connection pool of the target data source According to the access requirements of each business system and the number of connections in the connection pool of each data source, determine the connection pool of the target data source corresponding to each business system;
  • connection pool of the target data source Through the connection pool of the target data source, the connection between each business system and the corresponding target data source is established.
  • generating a target data set based on the association relationships between the multiple tables indicated by the association operation includes:
  • generating a target data set based on the table information of each target table and the association relationship includes:
  • a SQL statement is generated, and the SQL statement is executed to obtain the target data set.
  • generating a target data set based on the table information of each target table and the association relationship also includes:
  • a target data set is generated based on the filtering conditions, table information of multiple target tables, and associations between multiple target tables.
  • displaying the target data set on the visualization page through a chart includes:
  • embodiments of the present disclosure provide a visual data analysis system, wherein the system includes a display and a controller:
  • the display is configured to realize human-computer interaction with the user through an interactive interface and display a visual page
  • the controller is configured to perform the following steps based on human-computer interaction:
  • the target data set is displayed on the visualization page in the form of a chart.
  • the controller is specifically configured to obtain multiple types of data sources through any one or more of the following methods:
  • the controller is specifically configured to obtain the corresponding type of data source according to the parameter information in any one or more of the following ways:
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • connections to each type of data source are established based on the connection information of each type of data source in the configuration file.
  • the controller is specifically configured to execute:
  • a connection to a data source of the database type is established based on database parameters, wherein the database parameters characterize parameters required to connect to the database.
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • connection pool of the target data source According to the access requirements of each business system and the number of connections in the connection pool of each data source, determine the connection pool of the target data source corresponding to each business system;
  • connection pool of the target data source Through the connection pool of the target data source, the connection between each business system and the corresponding target data source is established.
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • the controller is specifically configured to execute:
  • a SQL statement is generated, and the SQL statement is executed to obtain the target data set.
  • the controller is specifically configured to execute:
  • table information of multiple target tables, and associations between multiple target tables Generate target data set.
  • the controller is specifically configured to execute:
  • an embodiment of the present disclosure provides a visual data analysis device, including a processor and a memory.
  • the memory is used to store programs executable by the processor.
  • the processor is used to read the memory. program and perform the following steps:
  • the target data set is displayed on the visualization page in the form of a chart.
  • the processor is specifically configured to obtain multiple types of data sources in any one or more of the following ways:
  • the processor is specifically configured to obtain the corresponding type of data source according to the parameter information in any one or more of the following ways:
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • connections to each type of data source are established based on the connection information of each type of data source in the configuration file.
  • the processor is specifically configured to execute:
  • a connection to a data source of the database type is established based on database parameters, wherein the database parameters characterize parameters required to connect to the database.
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • connection pool of the target data source According to the access requirements of each business system and the number of connections in the connection pool of each data source, determine the connection pool of the target data source corresponding to each business system;
  • connection pool of the target data source Through the connection pool of the target data source, the connection between each business system and the corresponding target data source is established.
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • the processor is specifically configured to execute:
  • a SQL statement is generated, and the SQL statement is executed to obtain the target data set.
  • the processor is specifically configured to execute:
  • a target data set is generated based on the filtering conditions, table information of multiple target tables, and associations between multiple target tables.
  • the processor is specifically configured to execute:
  • embodiments of the present disclosure also provide a visual data analysis device, which includes:
  • the visual display unit is used to display various table information contained in various types of connected data sources through a visual page;
  • An associated data unit configured to respond to the user's associated operations on multiple displayed tables and generate a target data set based on the associated relationships between the multiple tables indicated by the associated operations;
  • a chart display unit is used to display the target data set on the visualization page in the form of a chart.
  • connection establishment unit is specifically used to obtain multiple types of data sources through any one or more of the following methods:
  • connection establishment unit is specifically configured to obtain the data source of the corresponding type according to the parameter information in any one or more of the following ways:
  • connection establishment unit is specifically used to:
  • connection establishment unit is specifically used to:
  • connection establishment unit is specifically used to:
  • connection establishment unit is specifically used to:
  • connections to each type of data source are established based on the connection information of each type of data source in the configuration file.
  • connection establishing unit is specifically used to:
  • a connection to a data source of the database type is established based on database parameters, wherein the database parameters characterize parameters required to connect to the database.
  • connection establishment unit is specifically used to:
  • the Establishing connection units is specifically used for:
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • connection establishment unit is specifically used to:
  • connection establishment unit is also specifically used to:
  • connection establishment unit is specifically used to:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • connection establishment unit is specifically used to:
  • connection establishment unit is specifically used to:
  • connection pool of the target data source According to the access requirements of each business system and the number of connections in the connection pool of each data source, determine the connection pool of the target data source corresponding to each business system;
  • connection pool of the target data source Through the connection pool of the target data source, the connection between each business system and the corresponding target data source is established.
  • an operation unit is further included for:
  • the associated data unit is specifically used for:
  • the associated data unit is specifically used for:
  • a SQL statement is generated, and the SQL statement is executed to obtain the target data set.
  • the associated data unit is also used for:
  • a target data set is generated based on the filtering conditions, table information of multiple target tables, and associations between multiple target tables.
  • the chart display unit is specifically used for:
  • embodiments of the present disclosure also provide a computer storage medium on which a computer program is stored, and when the program is executed by a processor, it is used to implement the steps of the method described in the first aspect.
  • Figure 1 is an implementation flow chart of a visual data analysis method provided by an embodiment of the present disclosure
  • Figure 2A is a schematic diagram of an operation interface for data set generation provided by an embodiment of the present disclosure
  • Figure 2B is a schematic diagram of an operation interface for data set generation provided by an embodiment of the present disclosure
  • Figure 2C is an operation interface diagram for filtering a data set provided by an embodiment of the present disclosure
  • Figure 3A is a schematic diagram of the operation of a visualization page for displaying charts provided by an embodiment of the present disclosure
  • Figure 3B is a schematic diagram of the operation of a visualization page for displaying charts provided by an embodiment of the present disclosure
  • Figure 4A is an operation interface diagram for obtaining a database provided by an embodiment of the present disclosure
  • Figure 4B is an operation interface diagram for obtaining a database provided by an embodiment of the present disclosure
  • Figure 5 is a connection operation interface diagram for obtaining/creating Redis provided by an embodiment of the present disclosure
  • Figure 6 is an operation interface diagram for obtaining a SQL data source provided by an embodiment of the present disclosure
  • Figure 7 is an implementation flow chart of a registration data source provided by an embodiment of the present disclosure.
  • Figure 8A is a schematic diagram of an operation interface for connecting to an API data source provided by an embodiment of the present disclosure
  • Figure 8B is a schematic diagram of an operation interface for connecting to an API data source provided by an embodiment of the present disclosure
  • Figure 9 is a connection flow chart for establishing an API data source provided by an embodiment of the present disclosure.
  • Figure 10 is a flow chart for connecting SQL statement data sources provided by an embodiment of the present disclosure.
  • Figure 11 is an operation interface diagram for configuring a SQL data source provided by an embodiment of the present disclosure
  • Figure 12 is a schematic diagram of a SQL parsing syntax tree provided by an embodiment of the present disclosure.
  • Figure 13 is a schematic diagram of a traditional business system-data source connection relationship provided by an embodiment of the present disclosure.
  • Figure 14 is an architectural schematic diagram of the connection between each business system and each data source provided by an embodiment of the present disclosure
  • Figure 15 is an implementation flow chart of a shared data source provided by an embodiment of the present disclosure.
  • Figure 16 is a schematic diagram of a visual data analysis system provided by an embodiment of the present disclosure.
  • Figure 17 is a schematic diagram of a visual data analysis device provided by an embodiment of the present disclosure.
  • Figure 18 is a schematic diagram of a visual data analysis device provided by an embodiment of the present disclosure.
  • the term "and/or” describes the association relationship of associated objects, indicating that there can be three relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone. these three situations.
  • the character "/” generally indicates that the related objects are in an "or” relationship.
  • data source in the embodiments of this disclosure describes the source of data, indicating a device or original media that provides certain required data
  • data set in the embodiment of the present disclosure is also called a data set, a data set or a data set, and represents a collection composed of data.
  • a dataset is a collection of data, usually in tabular form. Each column represents a specific variable. Each row corresponds to a data set for a certain user.
  • database in the embodiment of this disclosure describes "a warehouse that organizes, stores and manages data according to a data structure”. Represents a long-term storage in the computer, organized, shareable, A collection of large amounts of data that is managed uniformly.
  • Remote dictionary service represents an open source log-type Key-Value database written in ANS C language, supporting network, memory-based and persistent, and providing multiple languages. API, often used for caching under high concurrency.
  • Kafka in the embodiment of the present disclosure refers to a high-throughput distributed publish-subscribe messaging system that can process all action flow data of consumers in the website. Such actions (such as web browsing, searches and other user actions) are a key factor in many social functions on the modern web. This data is typically addressed by processing logs and log aggregation due to throughput requirements. This is a feasible solution for log data and offline analysis systems like Hadoop, but requiring real-time processing constraints.
  • the purpose of Kafka is to unify online and offline message processing through Hadoop's parallel loading mechanism, and to provide real-time messages through the cluster.
  • API Application Programming Interface
  • API Application Programming Interface
  • SSH File Transfer Protocol SSH File Transfer Protocol, also known as Secret File Transfer Protocol, Secure FTP or SFTP
  • SSH File Transfer Protocol also known as Secret File Transfer Protocol, Secure FTP or SFTP
  • Presto in this disclosed embodiment is a Facebook open source distributed SQL query engine, suitable for interactive analysis queries, and the data volume supports GB to PB bytes.
  • the architecture of presto evolved from the architecture of relational database.
  • SQL Structured Query Language
  • SQL Structured Query Language
  • CSV Common-Separated Values
  • Minio in this disclosed embodiment is an object storage service based on the Apache License v2.0 open source protocol. It is compatible with the Amazon S3 cloud storage service interface and is very suitable for storing large-capacity unstructured data, such as pictures, videos, log files, backup data and container/virtual machine images, etc., and an object file can be of any size, ranging from several Ranges from kb to a maximum of 5T.
  • the data analysis method provided by this disclosure can access multiple types of data sources, and can realize combined analysis of various data sources through simple combination and association operations, and display them on the visualization page through charts. Not only is it easy to operate, but also because it establishes connections with various types of data sources Relationships do not require the data source to be stored in a solidified manner. Not only can data query and analysis be performed in real time, but storage resources can also be saved.
  • the core idea of the disclosed data analysis method is that after establishing connections with various types of data sources, various data sources are displayed through the visualization page, and the target data set is generated through the user's associated operations on the multiple tables displayed on the visualization interface. And visually display the target data set. During the entire operation process, users only need simple correlation operations to achieve combined analysis of different types of data sources and perform visual display.
  • Step 100 Obtain multiple types of data sources and establish connections with various types of data sources, where the type of data source is used to characterize the source of data acquisition;
  • this embodiment can establish connections with various types of data sources, and can access various types of data sources in real time by establishing connection relationships.
  • this embodiment can obtain multiple types of data in any one or more of the following ways.
  • data source :
  • Method (1) receives the parameter information input by the user, and obtains the data source of the corresponding type according to the parameter information;
  • the parameter information in this embodiment includes but is not limited to one or more of database parameters, interface parameters, text data, Redis parameters, and SQL statements;
  • the corresponding type of data source is obtained according to the parameter information in any one or more of the following ways:
  • this embodiment can receive parameter information of multiple types of data sources input by the user, and obtain corresponding types of data sources based on the multiple parameter information; for example, receive database parameters input by the user, and obtain the database based on the database parameters. type of data source; receiving interface parameters input by the user, obtaining the data source of the interface type according to the interface parameters; and receiving SQL statements input by the user, and determining the input SQL statements as data sources of the SQL statement type.
  • one or more combinations may be selected, and this embodiment does not limit this too much.
  • the files in the FTP server are obtained through SFTP, and the obtained files are determined as FTP type data sources.
  • Method (3) uses the executed SQL statement as the obtained data source of the corresponding type.
  • a SQL statement executed by a user on a connected data source is received, and the executed SQL statement is determined to be a data source of SQL statement type.
  • this embodiment can combine the above methods (1), (2) and (3) to obtain multiple types of data sources through the combined method.
  • This embodiment does not make too many specific combination methods. limited.
  • the data sources in this embodiment include but are not limited to any of the following:
  • Type 1 database type data sources including but not limited to Mysql (relational database management system), PostgreSql (a free object-relational database server (database management system)), Oracle (Oracle, which is a large database software ), Dannyg (database), Hive (a data warehouse analysis system based on Hadoop, which provides a rich set of SQL query methods to analyze data stored in the Hadoop distributed file system), Hbase (a distributed At least one of InfluxDB (a column-oriented open source database) and InfluxDB (an open source time series database developed using the GO language, especially suitable for processing and analyzing time series related data such as resource monitoring data);
  • InfluxDB a column-oriented open source database
  • InfluxDB an open source time series database developed using the GO language, especially suitable for processing and analyzing time series related data such as resource monitoring data
  • Type 2 interface type data source including but not limited to API interface; optional, provided API protocols include but are not limited to: at least one of HTTP protocol, RPC (Remote Procedure Call) protocol, socket protocol, and SDK (Software Development Kit) protocol.
  • HTTP protocol HyperText Transfer Protocol
  • RPC Remote Procedure Call
  • SDK Software Development Kit
  • Type 3 text type data source including but not limited to at least one of Excel text, CSV text, and TXT text;
  • FTP type data source including but not limited to at least one of SFTP type and FTP type;
  • Redis cache type data source including but not limited to at least one of Redis cache or other caches
  • Type 6 SQL statement type data source including but not limited to at least one of user-input SQL statements, executed SQL statements, stored SQL statements, and generated SQL statements.
  • the seventh type other types of data sources, including but not limited to local files, ES (file browser), kafka (is a high-throughput distributed publish-subscribe messaging system, which can handle all consumers in the website At least one of action stream data) and clickhost.
  • ES file browser
  • kafka is a high-throughput distributed publish-subscribe messaging system, which can handle all consumers in the website At least one of action stream data
  • clickhost is a high-throughput distributed publish-subscribe messaging system, which can handle all consumers in the website At least one of action stream data.
  • this embodiment uses the Presto component to obtain and connect various types of data sources.
  • Step 101 Display each table information contained in the connected data sources of various types through the visualization page;
  • this embodiment configures the visual page by embedding the URL into the web, terminal, etc., without the need for joint debugging of the web-end and back-end defined interfaces, etc., so that the visual display does not rely heavily on front-end and back-end development.
  • the table information in this embodiment includes but is not limited to at least one of the data source identifier to which the table belongs, table field names, column field names, and field types of column fields.
  • each type of data source includes one or more table information.
  • it includes at least one library, and each library includes at least one table.
  • the column information in each table of each library of the database can be determined. for table information.
  • This embodiment can display column information in each table contained in various types of data sources, for example, display column field names in each data source on the right side of the visualization page.
  • Step 102 In response to the user's association operation on the multiple displayed tables, generate a target data set based on the association relationships between the multiple tables indicated by the association operation;
  • the target data set is generated based on the relationships between multiple tables.
  • the association operation in this embodiment includes but is not limited to at least one of: a drag operation, a click operation, and an operation of inputting association information, which is not too limited in this embodiment.
  • the user can drag the displayed multiple table information that needs to be associated to the designated area through a simple drag and drop operation.
  • the backend interface will be called to obtain all the information of the table corresponding to the table information, including Information such as the data source, each column field, etc., and then associate multiple tables in the specified area to generate the target data set.
  • this embodiment generates the target data set in the following manner:
  • data information in various data sources can be aggregated through a simple drag-and-drop method.
  • this embodiment provides a schematic diagram of an operation interface for data set generation.
  • the user can select any data source with an established connection (corresponding to area 1 in the figure). ), after selecting the data source, all table information under the data source will be displayed (corresponding to area 2 in the figure). The user selects multiple target tables and drags the table information of multiple target tables to the specified area (corresponding to area 2 in the figure).
  • Area 3 when dragging table information, the backend calls the backend interface to obtain all information of the target table, including data source, all column fields, etc., and then the user can specify the relationship between multiple target tables, that is, multiple Certain column fields in the target table are consistent, thereby associating multiple target tables together.
  • Area 4 in the figure is the attribute area. Each attribute in the generated target data set can be renamed, copied, and deleted. and other operations, where attributes refer to table attribute information such as table fields and column fields.
  • Area 5 in the figure is the preview area, which allows users to intuitively display the data after aggregation. Whether the target data set meets expectations. As shown in Figure 2B, the user can input the association between multiple target tables, that is, define certain column fields in multiple target tables to be the same, thereby determining the association between multiple target tables and generating a target data set.
  • this embodiment generates a target data set based on the table information of each target table and the association relationship in the following manner:
  • this embodiment can also receive filtering conditions input by the user, where the filtering conditions are used to filter data in multiple target tables; based on the filtering conditions, table information of multiple target tables, and Association relationships between multiple target tables generate a target data set.
  • the data set can be generated by simple drag and drop combination of "tables" in multiple data sources.
  • the corresponding connections can be left outer joins and inner joins in SQL.
  • the association between the two tables requires a bridge, so the two tables are associated You need to specify equal attributes (such as the same column fields).
  • filtering conditions can also be added on the basis of association.
  • this embodiment provides an operation interface for filtering data sets. For example, there is a table that contains information related to the products purchased by users. Now you need to create user purchase information for the clothing category. You need to add filter conditions to match the product category to clothes.
  • Table A is a product table
  • Table B is a user table
  • Table C is a user purchase product record table.
  • the relationship between each table is that table A connects table B to table C.
  • the relationship specifically includes that the product ID of table A is equal to table C.
  • the product ID of Table B is equal to the user ID of Table C.
  • the filter condition is that the product type in Table B is clothes.
  • the front-end can obtain the data source IDs of each table in Table A, Table B and Table C (which will be obtained by calling the back-end interface when the user drags and drops, including various information about subsequent required data sources).
  • the retained fields and the fields that are equal when associated with each table are sent to the backend.
  • the backend generates SQL statements in the following format, and then calls Presto to obtain the SQL results and echo them to the interface:
  • Table A retains attributes
  • Table B retains attributes
  • Table C retains attributes
  • the attributes in this embodiment refer to relevant information such as data source ID and its type, table fields and their types, each column field in the table and its type, etc.
  • the generated target data set can be added to this execution body as a new data source for subsequent use.
  • the target data set can be stored in a business database for subsequent use.
  • Step 103 Display the target data set on the visualization page in the form of a chart.
  • this embodiment draws and displays charts in the following manner:
  • this embodiment first specifies the type of chart that needs to be drawn, and then drags the target data column in the target data set that needs to be drawn to the designated area by dragging, and uses the chart component to draw the chart and display it visually.
  • the chart component in this embodiment includes but is not limited to the front-end open source component Echart.
  • the user selects a chart type by clicking to generate a chart, and then configures chart data for the selected chart.
  • this embodiment provides a schematic diagram of the operation of a visual page for displaying charts. After the user selects the line chart, he can set the line chart, such as changing the style, inserting multimedia data, entering text and other editing operations. , after the setting is completed, as shown in Figure 3B, select the target data set to be displayed from the table information of each data source displayed in the right column of the page (corresponding to area 1 marked in the figure).
  • the List all data columns in the target data set (corresponding to area 2 marked in the figure).
  • the user selects the target data column from all data columns, uses the target data column as the chart data corresponding to the chart type, and drags it to Specify an area (corresponding to area 3 marked in the figure), and use the chart component to draw and display a line chart generated based on the target data column (for It should be the area marked 4) in the figure.
  • the method further includes:
  • Receive filtering conditions input by the user (corresponding to area 5 marked in Figure 3B), where the filtering conditions are used to filter the data in the target data column; use the filtered target data column as chart data corresponding to the chart type , use the chart component to draw a chart corresponding to the chart type; display the drawn chart on the visualization page.
  • the user can also edit the color, text format, background, etc. of the displayed chart, which is not too limited in this embodiment.
  • connection relationships mainly includes the process of obtaining and registering data sources (i.e., connections).
  • the sharing of connection relationships mainly includes providing a connection relationship for shared data sources from the overall architecture of the business system and database connection.
  • the first aspect is the establishment of connection relationships.
  • this embodiment obtains multiple types of data sources in any of the following ways:
  • Method 1) Receive the database parameters input by the user, and obtain the data source of the database type according to the database parameters;
  • the database parameters in this embodiment include but are not limited to at least one or more of IP address, port number, database name, database type, login user name, login password, data source name, etc.
  • this embodiment uses the Presto component to obtain and connect various types of data sources.
  • Presto has internally integrated connectors for some databases, such as Mysql, PostgreSql, Oracle and other databases. Different database parameters can be entered for different databases. For details, please refer to the official Presto documentation.
  • plug-in development can be carried out based on the Prsto source code. For example, the connection function can be developed for the Dannyg database. When users choose the method of direct connection to the database (the database corresponding to the internally integrated connector), they need to specify the type of database. There are also differences in the database parameters filled in.
  • this embodiment provides an operation interface diagram for obtaining a database.
  • the content corresponding to "*" indicates the database parameters that the user needs to input.
  • the back-end service can use Presto to connect to the corresponding database to verify whether the entered database parameters are correct. If it is wrong, it will be fed back to the user. If it is correct, it will prompt the user to save.
  • the database parameter information entered by the user will be saved in the local database.
  • Method 2 Receive interface parameters input by the user, and obtain the data source of the interface type according to the interface parameters;
  • the interface parameters in this embodiment include but are not limited to at least one of the following: interface name, interface calling method, and interface path.
  • the interface path includes the interface IP address and port.
  • Method 3 Obtain the text data uploaded by the user, and determine the text data named by the user as a text type data source;
  • the text data in this embodiment includes but is not limited to at least one of Excel text, CSV text, and TXT text.
  • the format of the open source data set is Excel/CSV format
  • this embodiment can support users to upload historically saved data in the form of Excel/CSV/TXT text. Just name the data source name.
  • Presto components since Presto can recognize data in CSV format, it can convert all text data uploaded by users into CSV format and store it in text form in local storage for subsequent use. is in text form, so it does not take up much storage space.
  • Method 4 Obtain the files in the FTP server through SFTP, and determine the obtained files as FTP type data sources;
  • this embodiment also supports users to obtain files from the FTP server through sftp and register them in this execution subject.
  • the supported file formats are Excel, CSV, and TXT formats.
  • the execution subject of this embodiment may be one of a platform, a system, and a device, which is not too limited in this embodiment.
  • Method 5 Receive the Redis parameters input by the user, and obtain the Redis cache type data source according to the Redis parameters;
  • This embodiment also supports Redis cache as a data source.
  • the server will receive a large amount of order information in a short period of time. If the order information is directly stored in the database, high frequency Write operations are very likely to bring down the database and cause service abnormalities. In this case, the order information is usually stored in the cache first, and then synchronized to the database within a period of time. If you want to analyze the current sales situation in a timely manner, it is necessary to obtain the data in the cache.
  • This embodiment provides a method for analyzing the current purchase information by obtaining the data source in the Redis cache and analyzing it in real time for Users recommend more suitable products.
  • this embodiment provides a method of obtaining/creating For Redis connection operation interface, users need to provide data source type: Redis cache type; data source name: Redis cache name; data source address: Redis cache address; data source port number: Redis cache port number; login user name; login password, etc. .
  • Method 6 Receive the SQL statement entered by the user, and determine the entered SQL statement as a data source of SQL statement type; or, receive the SQL statement executed by the user on the connected data source, and determine the executed SQL statement as a SQL statement type. data source.
  • this embodiment provides an operation interface for obtaining a SQL data source, in which the user needs to enter the name of a customized SQL statement.
  • this embodiment can connect the data sources by running SQL statements for the data sources that have already established connections (already registered), and use the SQL statements as an intermediate process to re-use them as a table in a data source.
  • the information is registered back into Presto, allowing the data source to be reused.
  • the basic information of users who purchased windbreakers on the first platform and the second platform can be divided into three steps: Step 1, you can first retrieve the users who purchased the windbreaker from Table C ID; step two, query the users who have purchased windbreakers in table A and also find the user IDs in the results of step one.
  • Step three associate the results of step two with the basic user table to obtain the user IDs on the first platform and the third platform.
  • step two you can reuse the SQL statement executed in step one, and you only need to add some filtering conditions that are different from step one.
  • step three you can also reuse the SQL statement in step two and add relevant filtering conditions. . Since this embodiment uses SQL statements as a data source, when executing complex data combination queries, the generated nested SQL statements can be used as a data source by generating nested SQL statements, without the need to The result of the SQL statement is used as a data source to continue to increase the number of table connections, causing the complexity of multi-table associations to increase exponentially.
  • this embodiment can be applied to any complex SQL statement and simplify the complex SQL statement.
  • the resources occupied when querying complex data combinations are reduced, so that the result set of SQL execution does not need to be stored in physical space, but the SQL statement itself is used as a Data sources are reused, effectively improving query efficiency.
  • this embodiment establishes connections with various types of data sources in the following ways:
  • connection information in this embodiment includes but is not limited to: at least one of database parameters, interface parameters, data source parameters, server parameters, SQL statements, and table information in SQL statements. Specifically, according to the data source type definition, this embodiment does not limit this too much.
  • this embodiment establishes connections with each type of data source in the following manner according to the connection information of each type of data source:
  • connections to each type of data source are established based on the connection information of each type of data source in the configuration file.
  • This embodiment takes Presto as an example.
  • multiple data sources can be connected.
  • catalog can be understood as the data source
  • schema can be understood as the pattern, which corresponds to a specific database in the database
  • table corresponds to the table information in the database.
  • Presto has built-in connectors for multiple data sources, such as Mysql, PostgreSql, Hive, Kafka, Redis, etc.
  • the embodiment also provides an implementation process for registering a data source.
  • the specific registration process ie, the connection establishment process
  • Step 700 Presto service starts
  • Step 701 Initialize and query the data source information of the established connection
  • Step 702 Write the queried data source information into the Presto configuration file to generate the configuration information for registering Presto;
  • Step 703 Send configuration information to Presto through the HTTP interface, and Presto updates the local database according to the received configuration information.
  • the data source connection information obtained in this embodiment will be modified to the Catalog of Presto through the HTTP interface, thereby registering the data source information in Presto.
  • this embodiment also creates a data source ID for each data source, and uses the created data source ID as the name of the connected data source in Presto.
  • this embodiment provides corresponding connection information according to different types of data sources, and establishes a connection relationship with the data source through any of the following situations:
  • the data source is a database type data source.
  • connection information includes database parameters.
  • the database parameters Including but not limited to: at least one or more of IP address, port number, database name, database type, login user name, login password, data source name, etc.
  • the data source is an interface type data source.
  • run the interface according to the interface parameters to obtain JSON data parse the JSON data to obtain data source parameters; establish a connection with the data source of the interface type based on the parsed data source parameters and the interface parameters.
  • connection information includes data source parameters and interface parameters.
  • interface parameters include but are not limited to user-defined interface name, interface calling method, IP address, port, interface path and other interface information.
  • this embodiment provides a schematic diagram of an operation interface for connecting to the API data source.
  • the user when the user creates the API data source, he operates Enter the interface parameters in the interface, including interface name, interface calling method, IP, port, interface path (such as URL (Universal Resource Locator, Uniform Resource Locator)), etc., to obtain the API data source.
  • the API data source After obtaining the API data source, As shown in Figure 8B, run the API interface to obtain JSON (JavaScriptObject Notation, a lightweight data exchange format) data, parse the JSON data, and obtain the data source parameters;
  • JSON JavaScriptObject Notation, a lightweight data exchange format
  • the parsed data source parameters include but are not limited to: data source identification, data source type, at least one of the field types of library fields, table fields, column fields, and column fields; according to the parsed data source parameters and The interface parameters establish a connection with the data source of the interface type.
  • this embodiment provides a connection process for establishing an API data source to illustrate when the data source is an interface type data source. , how to obtain the data source and establish a connection with the data source based on the connection information of the data source.
  • the implementation steps of this process are as follows:
  • Step 900 Receive the API data source input by the user and specify the IP and port of the API data source;
  • Step 901 Receive the URL, interface name, and calling method of the API data source specified by the user;
  • Step 902 Receive the required parameters, message header information, etc. input by the user when calling the API;
  • this embodiment receives interface parameters input by the user, and obtains the interface parameters based on the interface parameters.
  • Port type data source where the interface parameters include API interface parameters.
  • the API interface parameters in this embodiment include but are not limited to the IP address, port, API data source URL, interface name, and calling method. , one or more of the parameters and message header information required when calling the API.
  • Step 903 Run the API according to the calling method, parameters required during the call, and message header information to obtain JSON data;
  • Step 904 Parse the JSON data to obtain data source parameters
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • Step 905 Establish a connection with the data source of the interface type according to the parsed data source parameters and the interface parameters.
  • this embodiment runs the interface according to the interface parameters to obtain JSON data, parses the JSON data to obtain data source parameters, and establishes a connection with the data source of the interface type based on the parsed data source parameters and the interface parameters.
  • the interface parameters include API interface parameters.
  • JavaScript is used to read the JSON data returned by the interface into an object, then parse the corresponding data source parameters according to the data name entered by the user, and store the process of parsing the requested data in the local database.
  • the method of updating the data source is to delete the data source in Presto and then re-register the data source.
  • Presto When registering a data source, taking the API data source as an example, you need to provide Presto with information in a preset format. This information provides the data source parameters and the interface parameters to Presto in the preset format, thereby establishing the relationship between Presto and the API data source. connect.
  • the default format in this embodiment is as follows:
  • sources in the above format is used to indicate the source of data.
  • “sources” is the database source, such as database name, IP address, port number and other information.
  • “sources” refers to the interface source, such as interface name, IP address, port number and other information. The same applies to other types of data sources. “sources” corresponds to the source of the data and is used to fill in the source information of each type of data source.
  • connection information of the data source is written into the configuration file of the distributed query engine according to the above preset format, so that when the distributed query engine is started, the connection information of each type of data source in the configuration file is established respectively. Connections to various types of data sources.
  • the data source is a text type data source.
  • the server parameters in this embodiment include but are not limited to server IP address, port number, etc.
  • the data source parameters in this embodiment include the data source identifier, data source type, library field, table field, column At least one of the field types of field and column fields.
  • this embodiment does not write the data in the above file to the local database, but uploads the file to the Minio server, and provides an interface for querying the file content in the source field of adding a data source through Http.
  • Http For details, see For the above preset format, you can add the server parameters to the source field of the above preset format to register the data source into Presto.
  • files can be registered from the network to Presto through SFTP.
  • the data source is a SQL statement type data source.
  • syntax verification is performed on the SQL statement. After determining that the syntax verification passes, the SQL statement is parsed to obtain the table information in the SQL statement; according to the SQL statement and the table in the SQL statement Information to establish a connection to a data source of SQL statement type.
  • this embodiment provides a process for connecting to a SQL statement data source to illustrate that when the data source is a SQL statement
  • a type of data source is used, how to obtain the data source and establish a connection with the data source based on the connection information of the data source.
  • the implementation process of this process is as follows:
  • Step 1000 Receive the SQL statement input by the user
  • this embodiment receives the SQL statement input by the user and determines the input SQL statement as a data source of the SQL statement type.
  • the syntax of conventional SQL is SELECT query field FROM table name WHERE condition GROUP BY and other contents.
  • the user only needs to replace the table name ("ID".”Schema” and table information) in conventional SQL according to the specified format such as ["ID”.”Schema”.”Table Name”], and this can be achieved Data query between multiple data sources.
  • "ID” refers to the data source ID specified by the user
  • “Schema” is the schema. Different data source types have different corresponding schemas. Database type data sources have their own schema. Other methods such as interface data sources can be specified. Name.
  • the mode of the specified interface is schema.
  • Table name refers to the table name in the database.
  • this embodiment also provides a configuration SQL
  • the data source operation interface according to the table information of the data source in area 1 on the left side of the interface, users can enter SQL statements in area 2 in the specified format based on the displayed table information, making the operation interface more convenient.
  • Step 1001 Perform syntax verification on the SQL statement to ensure that the syntax verification passes;
  • the user clicks to execute SQL calls the SQL verification module, and returns the SQL execution result.
  • the user will perform the subsequent steps, otherwise the SQL statement will be modified; among them, the verification module calls Presto to execute the SQL statement.
  • the SQL result set will be returned and the results will be encapsulated and returned to the user. If it fails, an error message will be returned to the user to prompt the user to modify the SQL statement. After passing through the SQL verification module, the accuracy of the SQL can be guaranteed.
  • Step 1002 Parse the SQL statement to obtain the table information in the SQL statement
  • a connection with a data source of SQL statement type is established based on the SQL statement and the table information in the SQL statement.
  • the user saves the SQL
  • the back-end service will call the SQL parsing module to parse out the table information in the SQL statement, including but not limited to the data source identifier to which the table belongs, table field names, column field names, and column field field types. of at least one.
  • the attribute name, attribute type, attribute remarks and other information of the registration "table" are parsed.
  • information such as the data source identifier, table field names, column field names, and field types of column fields to which the table belongs can be parsed.
  • the structure of SQL is SELECT attribute name FROM table name WHERE condition GROUP BY grouping attribute HAVING grouping condition, in which SQL statements can still be nested in FROM and WHERE.
  • GROUP BY grouping attribute HAVING grouping condition is the first layer
  • the SQL parsing module only needs to parse out the actual physical "table" corresponding to the attribute name in the first layer SELECT
  • the FROM in the first layer describes the table information to which these attributes belong. There is no need to pay attention to conditions such as WHERE, GROUP, and HAVING.
  • the attributes in this embodiment can be understood as table field names and their types, column field names and their types, library field names and their types, data source names and their types, etc.
  • this embodiment provides a schematic diagram of a SQL parsing syntax tree, in which there are three tables, namely table 1, table 2, and table 3, corresponding to the student table.
  • Teacher table, class table According to the above description method, the SQL is analyzed and the syntax tree is divided into three levels.
  • the root node the name field in query table 1, which represents the teacher field and class field in 4.
  • Table 4 is a temporary table in SQL
  • table 4 is a temporary table generated by table 2 and table 3, describing the teacher and The relationship between classes, and the queried fields are the teacher field renamed from the name field in Table 2 and the class field renamed from the ID field and name in Table 3.
  • Table 4 will have two child nodes, namely Table 2 and Table 3.
  • Table 2 queries the name field
  • Table 3 queries the name field. It was finally determined that the last fields queried by this SQL were the name field in Table 1, the name field in Table 2, and the name field in Table 3.
  • the table relationships of the nodes are corresponding until the end of the traversal, and the table information corresponding to all attributes can finally be obtained.
  • the corresponding parsing results in the figure are: students correspond to the name field of "1".public.student; teachers correspond to the name field of "2".public.teacher; classes correspond to the name field of "3".schema.class.
  • Step 1003 Call the SQL registration module to register SQL information into Presto;
  • a connection with a data source of SQL statement type is established based on the SQL statement and the table information in the SQL statement.
  • the SQL results are registered in Presto in the form of an interface.
  • the field information in the table information in the SQL statement is added to the column field registered in the interface, and Presto is called to reload the SQL statement data source. That is to say, in this embodiment, the SQL results are not stored, but the SQL results are returned through the provided interface. This effectively saves the physical memory resources of the server.
  • Step 1004 Store the SQL statement and the table information in the SQL statement in a local database for subsequent reuse of the SQL statement.
  • the SQL statement and the table information in the SQL statement can also be stored in a local database; using the stored SQL statement and the SQL statement input by the user to generate a nested SQL statement, and determine the generated nested SQL statement as the data source of the obtained SQL statement type.
  • the generated nested SQL statements are used as a data source, without the need to use the results of each executed SQL statement as a data source to continue to add tables.
  • the connection causes the complexity of multi-table association to increase exponentially, simplifying complex SQL statements, and reducing the time occupied when querying complex data combinations by generating nested SQL statements and directly executing the final nested SQL statements. resources, so that the result set of SQL execution does not need to be stored in physical space, but the SQL statement itself is reused as a data source, effectively improving query efficiency.
  • This embodiment provides a visual data analysis method that can support multiple data sources, breaking the traditional single way of displaying data from a database; not only can it support multiple data sources, but it can also combine data from multiple data sources.
  • Data is aggregated (that is, associated) together; a SQL data source method is implemented, and the executed SQL result set does not need to be stored in physical space. It can still be reused as a data source, and the SQL results are registered in Presto.
  • This solution provides ideas for expanding other businesses in the future; it simplifies complex SQL and is compatible with all types of complex SQL; it provides user drag-and-drop page configuration, simplifying the coupling of front-end and back-end development.
  • the data set after user combination operation can be used for user data analysis to generate a knowledge graph, providing reliable support for the development of various businesses of the enterprise.
  • the second aspect is the sharing of connection relationships.
  • this embodiment provides a schematic diagram of the traditional business system-data source connection relationship.
  • each business system needs to create and maintain its own data source, resulting in occupying system resources (including the application system itself). physical resources (such as memory) and public resources occupied when accessing the database), each business or application system cannot use the maximum resources of the database.
  • this embodiment provides a method for sharing data source applications.
  • the upper-layer business or application system no longer cares about and
  • the application system no longer needs to access the database, perform data query, etc., and release the resources occupied by this layer in the business system.
  • the shared data source application in this embodiment can maintain the uniqueness of the resources of the same data source and make maximum use of the database's own connection pool. Since multiple business systems are involved, the database can be configured to the greatest extent according to the connection requirements of each business system. High concurrent connections. At the same time, it provides rich aggregation, splitting and federated query capabilities (which can perform query operations such as linked list association across data sources), reducing the complexity of data processing by upper-layer business or application systems. At the same time, the shared data source application provides rich expansion tools. , such as visual data set editor, data performance analysis, etc., to improve user efficiency.
  • connections to various types of data sources are established in the following ways:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • the shared data source application in this embodiment is a service-based application, which can be a Sass (Syntactically Awesome Stylesheets) application.
  • Sass Syntactically Awesome Stylesheets
  • the Sass application is a cascade originally designed by Hampton Catlin and developed by Natalie Weizenbaum. Style sheet language. After developing the initial version, Weizenbaum and Chris Eppstein continued to expand the functionality of Sass through SassScript.
  • SassScript is a small scripting language used in Sass files.
  • various business systems and various types of data are established through the shared data source application.
  • the specific steps are as follows:
  • data source registration that is, establishing a connection
  • metadata description For example, there is the following description:
  • connection-url jdbc:mysql://192.168.52.1:3306//data source address
  • connection-user root//user name
  • connection-password 123456//Password
  • the data source when the data source is registered, determine whether the data source has been registered. If it is registered, bind the data source of the tenant (or user). If it is not registered, dynamically create the data source and bind the tenant ( or user) data source relationship.
  • connection between each business system and each type of data source is established through the shared data source application.
  • this embodiment provides an architectural schematic diagram of the connection between each business system and each data source. Based on This architecture diagram executes the following process:
  • connection pooling represents the technology of creating and managing a buffer pool of connections that can be used by any thread that needs them.
  • each business system can also be shared with multiple tenants through multi-tenant technology.
  • multi-tenancy technology or multi-tenancy technology, is a software architecture technology that explores and implements how to share the same system or program components in a multi-user environment and still ensure that each Isolation of data between users.
  • the operation instructions sent by the business system in the form of metadata are received; at least one operation of aggregation, filtering, and query is performed on the data source corresponding to the operation instructions.
  • metadata is mainly information that describes data attributes and is used to support functions such as indicating storage location, historical data, resource search, and file records.
  • all operations based on the shared data source application will be recorded in the log.
  • Each business or application system in this embodiment can process and sort out the original data in the database, such as aggregation, filtering, or querying data from multiple data sources first, and then perform data processing at the code level to share data sources.
  • the application provides rich aggregation, filtering, federation and visualization capabilities, which can greatly reduce developers' code writing and error rates.
  • the application system can access the data source table through an API interface and directly return the query results.
  • query in the form of metadata description, the query information is as follows:
  • the first-level description key is as follows, including:
  • Row describes the subjects, which are resources that can be grouped in aggregation, that is, group by in SQL;
  • order describes the resources that need to be sorted, that is, order in sql;
  • limit describes the number of items to be queried, that is, the limit in SQL
  • the secondary description keys are as follows, including:
  • ColType describes the database type of a resource field
  • ItemType Describes whether a resource field is a string, number or time
  • Name describes the original naming of a resource field
  • pathId describes the source of this resource (data source, schema, database table, field);
  • filter describes filtering as follows, including:
  • componentType describes the type of filtering
  • config describes the filtering configuration
  • joinType describes the relationship between multiple filter conditions
  • conditionValue describes the filtering formula
  • this embodiment can also establish a binding relationship between tenants and data sources to facilitate later system maintenance.
  • you can build the corresponding relationship between the tenant ID, user ID, and data source ID.
  • You can also build the data source ID, data source type, data source IP, data source port, database name, user name, password, Correspondence between multiple objects in the schema. This embodiment does not limit this too much.
  • this embodiment also provides an implementation process for sharing data sources.
  • the specific implementation steps of this process are as follows:
  • Step 1500 Build a shared data source application based on the connection pool of each data source included in each type of data source;
  • the shared data source application integrates the ability to connect various types of data sources to provide various business systems with services to connect to various types of data sources.
  • Step 1501 Establish a connection between the shared data source application and each type of data source according to the connection information of each data source in each type of data source described by the metadata;
  • Step 1502 Through the shared data source application, connect various types of data sources that are connected to the shared data source application to each business system;
  • Step 1503 Receive the access requirements of each business system through the shared data source application
  • Step 1504 Determine the connection pool of the target data source corresponding to each business system based on the access requirements of each business system and the number of connections in the connection pool of each data source in the shared data source application;
  • each independent business or application system will occupy a certain amount of resources for the same database. For example, the number of databases connected to the database connection pool is limited. This embodiment achieves maximum utilization of database resources through shared data source applications and reduces the need for upper-layer Business or application system running environment resources reduce the complexity of upper-layer business or application system development.
  • Step 1505 Establish a connection between each business system and the corresponding target data source through the connection pool of the target data source.
  • This embodiment uses a shared data source application to centrally manage, monitor, and provide services. By integrating the ability to connect all databases, it can limit current and fuse according to the actual situation of the business system, maximizing the full resource capabilities of the database itself, and sharing
  • the data source application provides powerful data memory computing capabilities, transforming the original single point calculation of large amounts of data in business or application systems into a distributed processing method in high-speed memory.
  • databases are usually sensitive and have high security requirements.
  • the same database server needs to open network connection permissions to each business or application system, which causes high maintenance costs.
  • this embodiment uses a shared data source application to manage database resources. The security of database services can be guaranteed.
  • the shared data source application also provides Based on the metadata description language, developers or business personnel who do not know the SQL language can implement business data operations through simple language descriptions.
  • This embodiment establishes connections with various types of data sources. From the perspective of the connection architecture of each application system or business system and various types of data sources, through the centralized layout of the shared data source application, each application system and various types of data The sources are connected through the shared data source resource pool. When it is determined that an application system establishes a connection with the data source through the resource pool of a data source in the shared data source resource pool, the connection information of the data source can be used.
  • establishing a connection with the data source can maximize the full resource capabilities of the database itself, on the other hand, can query and analyze various types of data in real time, display various data sources through the visualization page, and enable users to The interface performs related operations on multiple displayed tables, generates a target data set, and displays the target data set visually.
  • the embodiment of the present disclosure also provides a visual data analysis system, because this system is the system in the method in the embodiment of the present disclosure, and the principle of solving the problem of the system is the same as that of the method. are similar, so the implementation of the system can be found in the implementation of the method, and the repetitive parts will not be repeated.
  • the system includes a display 1600 and a controller 1601:
  • the display 1600 is configured to implement human-computer interaction with the user through an interactive interface, and to display visual pages;
  • the controller 1601 is configured to perform the following steps based on human-computer interaction:
  • the target data set is displayed on the visualization page in the form of a chart.
  • controller 1601 is specifically configured to pass any of the following Or obtain multiple types of data sources in any number of ways:
  • controller 1601 is specifically configured to obtain the corresponding type of data source according to the parameter information in any one or more of the following ways:
  • controller 1601 is specifically configured to execute:
  • controller 1601 is specifically configured to execute:
  • controller 1601 is specifically configured to execute:
  • controller 1601 is specifically configured to execute:
  • the controller 1601 is specifically configured to execute:
  • a connection to a data source of the database type is established based on database parameters, wherein the database parameters characterize parameters required to connect to the database.
  • the controller 1601 is specifically configured to execute:
  • the controller 1601 is specifically configured to execute:
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • the controller 1601 is specifically configured to execute:
  • the controller 1601 is specifically configured to execute:
  • controller 1601 is specifically configured to execute:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • controller 1601 is specifically configured to execute:
  • controller 1601 is specifically configured to execute:
  • connection pool of the target data source According to the access requirements of each business system and the number of connections in the connection pool of each data source, determine the connection pool of the target data source corresponding to each business system;
  • connection pool of the target data source Through the connection pool of the target data source, the connection between each business system and the corresponding target data source is established.
  • the controller 1601 is specifically configured to execute:
  • controller 1601 is specifically configured to execute:
  • controller 1601 is specifically configured to execute:
  • a SQL statement is generated, and the SQL statement is executed to obtain the target data set.
  • controller 1601 is specifically configured to execute:
  • a target data set is generated based on the filtering conditions, table information of multiple target tables, and associations between multiple target tables.
  • controller 1601 is specifically configured to execute:
  • the embodiment of the present disclosure also provides a visual data analysis device, because this device is the device in the method in the embodiment of the present disclosure, and the principle of solving the problem of the device is the same as that of the method. are similar, so the implementation of the device can be referred to the implementation of the method, and repeated details will not be repeated.
  • the device includes a processor 1700 and a memory 1701.
  • the memory 1701 is used to store programs executable by the processor 1700.
  • the processor 1700 is used to read the programs in the memory 1701 and Perform the following steps:
  • the target data set is displayed on the visualization page in the form of a chart.
  • the processor 1700 is specifically configured to obtain multiple types of data sources through any one or more of the following methods:
  • the processor 1700 is specifically configured to obtain the corresponding type of data source according to the parameter information in any one or more of the following ways:
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • connections to each type of data source are established based on the connection information of each type of data source in the configuration file.
  • the processor 1700 is specifically configured to execute:
  • a connection to a data source of the database type is established based on database parameters, wherein the database parameters characterize parameters required to connect to the database.
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • connection pool of the target data source According to the access requirements of each business system and the number of connections in the connection pool of each data source, determine the connection pool of the target data source corresponding to each business system;
  • connection pool of the target data source Through the connection pool of the target data source, the connection between each business system and the corresponding target data source is established.
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • the processor 1700 is specifically configured to execute:
  • a SQL statement is generated, and the SQL statement is executed to obtain the target data set.
  • the processor 1700 is specifically configured to execute:
  • a target data set is generated based on the filtering conditions, table information of multiple target tables, and associations between multiple target tables.
  • the processor 1700 is specifically configured to execute:
  • the embodiment of the present disclosure also provides a visual data analysis device, because this device is the device in the method in the embodiment of the present disclosure, and the principle of solving the problem of the device is the same as that of the method. are similar, so the implementation of the device can be referred to the implementation of the method, and repeated details will not be repeated.
  • the device includes:
  • connection establishment unit 1800 is used to obtain multiple types of data sources and establish connections with various types of data sources, where the type of data source is used to characterize the source of data acquisition;
  • Visual display unit 1801 used to display various types of connected data through visual pages Each table information contained in the source;
  • the associated data unit 1802 is configured to respond to the user's associated operations on multiple displayed tables and generate a target data set based on the associated relationships between the multiple tables indicated by the associated operations;
  • the chart display unit 1803 is used to display the target data set in the form of a chart on the visualization page.
  • connection establishment unit 1800 is specifically configured to obtain multiple types of data sources through any one or more of the following methods:
  • connection establishment unit 1800 is specifically configured to obtain the corresponding type of data source according to the parameter information in any one or more of the following ways:
  • connection establishment unit 1800 is specifically used to:
  • connection establishment unit 1800 is specifically used to:
  • connection establishment unit 1800 is specifically used to:
  • connection establishment unit 1800 is specifically used to:
  • connections to each type of data source are established based on the connection information of each type of data source in the configuration file.
  • connection establishment unit 1800 is specifically used to:
  • a connection to a data source of the database type is established based on database parameters, wherein the database parameters characterize parameters required to connect to the database.
  • connection establishment unit 1800 is specifically used to:
  • connection establishment unit 1800 is specifically used to:
  • the data source parameters include at least one of the data source identifier, data source type, library field, table field, column field, and field type of the column field.
  • connection establishment unit 1800 is specifically used to:
  • connection establishment unit 1800 is also specifically used to:
  • connection establishment unit 1800 is specifically used to:
  • Connections between each business system and various types of data sources are established through the shared data source application, wherein the shared data source application integrates the ability to connect to various types of data sources to provide services for each business system to connect to various types of data sources.
  • connection establishment unit 1800 is specifically used to:
  • connection establishment unit 1800 is specifically used to:
  • connection pool of the target data source According to the access requirements of each business system and the number of connections in the connection pool of each data source, determine the connection pool of the target data source corresponding to each business system;
  • connection pool of the target data source Through the connection pool of the target data source, the connection between each business system and the corresponding target data source is established.
  • an operation unit is further included for:
  • the associated data unit 1802 is specifically used to:
  • the associated data unit 1802 is specifically used to:
  • a SQL statement is generated, and the SQL statement is executed to obtain the target data set.
  • the associated data unit 1802 is also specifically used to:
  • a target data set is generated based on the filtering conditions, table information of multiple target tables, and associations between multiple target tables.
  • chart display unit 1803 is specifically used to:
  • embodiments of the present disclosure also provide a computer storage medium on which a computer program is stored.
  • the program is used to implement the following steps when executed by a processor:
  • the target data set is displayed on the visualization page in the form of a chart.
  • embodiments of the present disclosure may be provided as methods, systems, or computer program products. Accordingly, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment that combines software and hardware aspects. Furthermore, the present disclosure may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, magnetic disk storage, optical storage, and the like) embodying computer-usable program code therein.
  • a computer-usable storage media including, but not limited to, magnetic disk storage, optical storage, and the like
  • These computer program instructions may also be stored in a computer-readable memory that causes a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including the instructed device, the instructions
  • the equipment implements the functions specified in a process or processes in the flow diagram and/or in a block or blocks in the block diagram.
  • These computer program instructions may also be loaded onto a computer or other programmable data processing device, causing a series of operating steps to be performed on the computer or other programmable device to produce computer-implemented processing, thereby executing on the computer or other programmable device.
  • Instructions provide steps for implementing the functions specified in a process or processes of a flowchart diagram and/or a block or blocks of a block diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种可视化的数据分析方法及设备,用于对多种类型的数据源进行可视化分析,通过建立与各类型数据源的连接关系,使得能够实时获取到多种类型的数据源,并进行各类数据源实时的组合分析。该方法包括:获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;通过可视化页面显示已连接的各类型的数据源包含的各个表信息;响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;将所述目标数据集通过图表的方式在所述可视化页面进行显示。

Description

一种可视化的数据分析方法及设备
相关申请的交叉引用
本申请要求在2022年06月29日提交中国专利局、申请号为202210760354.0、申请名称为“一种可视化的数据分析方法及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本公开涉及数据分析技术领域,特别涉及一种可视化的数据分析方法及设备。
背景技术
近些年来,各公司都在构建可视化数据分析***,目前搭建的可视化平台大多数都是针对某一具体数据源实现的。大数据的发展带来了数据的多元化,数据的来源不仅仅是从数据库中获取,还可以从外界开放的接口、一些产品运作时的临时缓存数据等,这些数据都可以通过一定的方式固化到数据库中,从而再通过数据库可视化***进行可视化展示。
但是,从开放接口获取数据或从临时缓存获取数据,并固化到数据库的方式,不仅会占用可视化***自身的存储资源,而且不利于云平台的海量数据分析。
发明内容
本公开提供一种可视化的数据分析方法及设备,用于对多种类型的数据源进行可视化分析,通过建立与各类型数据源的连接关系,使得能够实时获取到多种类型的数据源,并进行各类数据源实时的组合分析。
第一方面,本公开实施例提供的一种可视化的数据分析方法,该方法包括:
获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
将所述目标数据集通过图表的方式在所述可视化页面进行显示。
作为一种可选的实施方式,通过如下任一或任多种方式获取多种类型的数据源:
接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
通过文件传送协议获取对应类型的数据源;
将执行的SQL语句作为获取的对应类型的数据源。
作为一种可选的实施方式,通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述通过文件传送协议获取对应类型的数据源,包括:
通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
作为一种可选的实施方式,所述将执行的SQL语句作为获取的对应类型的数据源,包括:
接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述建立与各类型数据源的连接,包括:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为数据库类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
作为一种可选的实施方式,当所述数据源为接口类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为文本类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
根据文件存储服务器存储的数据源,确定数据源参数;
根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
作为一种可选的实施方式,当所述数据源为SQL语句类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;
根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
作为一种可选的实施方式,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,还包括:
将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
作为一种可选的实施方式,所述建立与各类型数据源的连接,包括:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接,包括:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接,包括:
通过所述共享数据源应用接收各业务***的访问需求;
根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,还包括:
通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
作为一种可选的实施方式,所述响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集,包括:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;
接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
作为一种可选的实施方式,所述根据各个目标表的表信息和所述关联关系,生成目标数据集,包括:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;
根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
作为一种可选的实施方式,所述根据各个目标表的表信息和所述关联关系,生成目标数据集,还包括:
接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
作为一种可选的实施方式,所述将所述目标数据集通过图表的方式在所述可视化页面进行显示,包括:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
第二方面,本公开实施例提供的一种可视化的数据分析***,其中,该***包括显示器和控制器:
所述显示器被配置为通过交互界面实现与用户的人机交互操作,并进行可视化页面的显示;
所述控制器被配置为基于人机交互操作执行如下步骤:
获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
将所述目标数据集通过图表的方式在所述可视化页面进行显示。
作为一种可选的实施方式,所述控制器具体被配置为通过如下任一或任多种方式获取多种类型的数据源:
接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
通过文件传送协议获取对应类型的数据源;
将执行的SQL语句作为获取的对应类型的数据源。
作为一种可选的实施方式,所述控制器具体被配置为通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源; 或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述控制器具体被配置为执行:
通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
作为一种可选的实施方式,所述控制器具体被配置为执行:
接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述控制器具体被配置为执行:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,所述控制器具体被配置为执行:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为数据库类型的数据源时,所述控制器具体被配置为执行:
根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
作为一种可选的实施方式,当所述数据源为接口类型的数据源时,所述控制器具体被配置为执行:
根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为文本类型的数据源时,所述控制器具体被配置为执行:
根据文件存储服务器存储的数据源,确定数据源参数;
根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
作为一种可选的实施方式,当所述数据源为SQL语句类型的数据源时,所述控制器具体被配置为执行:
对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;
根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
作为一种可选的实施方式,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,所述控制器具体还被配置为执行:
将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
作为一种可选的实施方式,所述控制器具体被配置为执行:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
作为一种可选的实施方式,所述控制器具体被配置为执行:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数 据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
作为一种可选的实施方式,所述控制器具体被配置为执行:
通过所述共享数据源应用接收各业务***的访问需求;
根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,所述控制器具体还被配置为执行:
通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
作为一种可选的实施方式,所述控制器具体被配置为执行:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;
接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
作为一种可选的实施方式,所述控制器具体被配置为执行:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;
根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
作为一种可选的实施方式,所述控制器具体被配置为执行:
接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系, 生成目标数据集。
作为一种可选的实施方式,所述控制器具体被配置为执行:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
第三方面,本公开实施例提供的一种可视化的数据分析设备,包括处理器和存储器,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行如下步骤:
获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
将所述目标数据集通过图表的方式在所述可视化页面进行显示。
作为一种可选的实施方式,所述处理器具体被配置为通过如下任一或任多种方式获取多种类型的数据源:
接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
通过文件传送协议获取对应类型的数据源;
将执行的SQL语句作为获取的对应类型的数据源。
作为一种可选的实施方式,所述处理器具体被配置为通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型 的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述处理器具体被配置为执行:
通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
作为一种可选的实施方式,所述处理器具体被配置为执行:
接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述处理器具体被配置为执行:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,所述处理器具体被配置为执行:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为数据库类型的数据源时,所述处理器具体被配置为执行:
根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
作为一种可选的实施方式,当所述数据源为接口类型的数据源时,所述处理器具体被配置为执行:
根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为文本类型的数据源时,所述处理器具体被配置为执行:
根据文件存储服务器存储的数据源,确定数据源参数;
根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
作为一种可选的实施方式,当所述数据源为SQL语句类型的数据源时,所述处理器具体被配置为执行:
对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;
根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
作为一种可选的实施方式,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,所述处理器具体还被配置为执行:
将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
作为一种可选的实施方式,所述处理器具体被配置为执行:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
作为一种可选的实施方式,所述处理器具体被配置为执行:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据 源,与各业务***建立连接。
作为一种可选的实施方式,所述处理器具体被配置为执行:
通过所述共享数据源应用接收各业务***的访问需求;
根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,所述处理器具体还被配置为执行:
通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
作为一种可选的实施方式,所述处理器具体被配置为执行:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;
接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
作为一种可选的实施方式,所述处理器具体被配置为执行:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;
根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
作为一种可选的实施方式,所述处理器具体还被配置为执行:
接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
作为一种可选的实施方式,所述处理器具体被配置为执行:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
第四方面,本公开实施例还提供一种可视化的数据分析装置,该装置包括:
建立连接单元,用于获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
可视化显示单元,用于通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
关联数据单元,用于响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
图表显示单元,用于将所述目标数据集通过图表的方式在所述可视化页面进行显示。
作为一种可选的实施方式,所述建立连接单元具体用于通过如下任一或任多种方式获取多种类型的数据源:
接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
通过文件传送协议获取对应类型的数据源;
将执行的SQL语句作为获取的对应类型的数据源。
作为一种可选的实施方式,所述建立连接单元具体用于通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述建立连接单元具体用于:
通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
作为一种可选的实施方式,所述建立连接单元具体用于:
接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述建立连接单元具体用于:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,所述建立连接单元具体用于:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为数据库类型的数据源时,所述建立连接单元具体用于:
根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
作为一种可选的实施方式,当所述数据源为接口类型的数据源时,所述建立连接单元具体用于:
根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为文本类型的数据源时,所述 建立连接单元具体用于:
根据文件存储服务器存储的数据源,确定数据源参数;
根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
作为一种可选的实施方式,当所述数据源为SQL语句类型的数据源时,所述建立连接单元具体用于:
对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;
根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
作为一种可选的实施方式,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,所述建立连接单元具体还用于:
将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
作为一种可选的实施方式,所述建立连接单元具体用于:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
作为一种可选的实施方式,所述建立连接单元具体用于:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
作为一种可选的实施方式,所述建立连接单元具体用于:
通过所述共享数据源应用接收各业务***的访问需求;
根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,还包括操作单元具体用于:
通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
作为一种可选的实施方式,所述关联数据单元具体用于:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;
接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
作为一种可选的实施方式,所述关联数据单元具体用于:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;
根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
作为一种可选的实施方式,所述关联数据单元具体还用于:
接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
作为一种可选的实施方式,所述图表显示单元具体用于:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
第五方面,本公开实施例还提供计算机存储介质,其上存储有计算机程序,该程序被处理器执行时用于实现上述第一方面所述方法的步骤。
本公开的这些方面或其他方面在以下的实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本公开实施例提供的一种可视化的数据分析方法的实施流程图;
图2A为本公开实施例提供的一种数据集生成的操作界面示意图;
图2B为本公开实施例提供的一种数据集生成的操作界面示意图;
图2C为本公开实施例提供的一种过滤数据集的操作界面图;
图3A为本公开实施例提供的一种显示图表的可视化页面操作示意图;
图3B为本公开实施例提供的一种显示图表的可视化页面操作示意图;
图4A为本公开实施例提供的一种获取数据库的操作界面图;
图4B为本公开实施例提供的一种获取数据库的操作界面图;
图5为本公开实施例提供的一种获取/创建Redis的连接操作界面图;
图6为本公开实施例提供的一种获取SQL数据源的操作界面图;
图7为本公开实施例提供的一种注册数据源的实施流程图;
图8A为本公开实施例提供的一种连接API数据源的操作界面示意图;
图8B为本公开实施例提供的一种连接API数据源的操作界面示意图;
图9为本公开实施例提供的一种建立API数据源的连接流程图;
图10为本公开实施例提供的一种连接SQL语句数据源的流程图;
图11为本公开实施例提供的一种配置SQL数据源的操作界面图;
图12为本公开实施例提供的一种SQL解析语法树的示意图;
图13为本公开实施例提供的一种传统的业务***-数据源的连接关系示意图;
图14为本公开实施例提供的一种各业务***和各数据源连接的架构示意图;
图15为本公开实施例提供的一种共享数据源的实施流程图;
图16为本公开实施例提供的一种可视化的数据分析***示意图;
图17为本公开实施例提供的一种可视化的数据分析设备示意图;
图18为本公开实施例提供的一种可视化的数据分析装置示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开作进一步地详细描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
本公开实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本公开实施例中的术语“数据源”,描述数据的来源,表示提供某种所需要数据的器件或原始媒体;
本公开实施例中的术语“数据集”,又称为资料集、数据集合或资料集合,表示一种由数据所组成的集合。数据集是一个数据的集合,通常以表格形式出现。每一列代表一个特定变量。每一行都对应于某一用户的数据集。
本公开实施例中的术语“数据库”,描述“按照数据结构来组织、存储和管理数据的仓库”。表示一个长期存储在计算机内的、有组织的、可共享的、 统一管理的大量数据的集合。
本公开实施例中的术语“Redis”,即远程字典服务,表示一个开源的使用ANS C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API,常用于高并发下的缓存。
本公开实施例中的术语“Kafka”,表示一种高吞吐量的分布式发布订阅消息***,它可以处理消费者在网站中的所有动作流数据。这种动作(如网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。对于像Hadoop一样的日志数据和离线分析***,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
本公开实施例中的术语“API”,是应用程序接口(Application Programming Interface,API),又称为应用编程接口,是软件***不同组成部分衔接的约定。用于提供应用程序与开发人员以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
本公开实施例中的术语“SFTP”,在计算机领域,SSH文件传输协议(SSH File Transfer Protocol,也称Secret File Transfer Protocol,安全文件传送协议,Secure FTP或SFTP)是一种数据流连接,提供文件访问、传输和管理功能的网络传输协议。
本公开实施例中的术语“Presto”,是一个facebook开源的分布式SQL查询引擎,适用于交互式分析查询,数据量支持GB到PB字节。presto的架构由关系型数据库的架构演化而来。
本公开实施例中的术语“SQL”,是结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库***。
本公开实施例中的术语“CSV(Comma-Separated Values)”,又称逗号分隔值,是一种通用的、相对简单的文件格式。可在程序之间转移表格数据。
本公开实施例中的术语“Minio”,是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
本公开实施例描述的应用场景是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域普通技术人员可知,随着新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。其中,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
示例的,近些年来,各公司都在构建可视化数据分析***,目前搭建的可视化平台大多数都是针对某一具体数据源实现的。大数据的发展带来了数据的多元化,数据的来源不仅仅是从数据库中获取,还可以从外界开放的接口、一些产品运作时的临时缓存数据等,这些数据都可以通过一定的方式固化到数据库中,从而再通过数据库可视化***进行可视化展示。但是,从开放接口获取数据或从临时缓存获取数据,并固化到数据库的方式,不仅会占用可视化***自身的存储资源,而且不利于云平台的海量数据分析。
目前,针对某些企业共用一套用户体系的情况,由于一套用户体系包括多种业务平台,每个用户都会在各个业务平台上留下大量用户数据,为了后续精准推送相关产品,需要汇总分析用户在不同业务平台的所有行为。每个业务平台都会涉及大量的表数据,例如Presto中的表数据,进行业务查询分析时,虽然用一条SQL语句可以将各业务***中的数据组合起来,但每增加一个表的连接,连接的复杂度将会成指数级增长,这无疑会给查询引擎的性能带来挑战。并且,各业务平台的用户对其它平台的业务不了解,进行SQL关联前需要做大量的业务梳理工作。
而本公开提供的数据分析方法,可以访问多种类型的数据源,并且可以通过简单的组合关联操作实现对各类数据源的组合分析,通过图表的方式在可视化页面进行显示。不仅操作简单,而且由于与各类型的数据源建立连接 关系,不需要将数据源通过固化的方式进行存储,不仅能够实时进行数据的查询分析,还可以节省存储资源。本公开的数据分析方法的核心思想是,建立与各类型数据源的连接后,通过可视化页面显示各类数据源,通过用户在可视化界面对显示的多个表的关联操作,生成目标数据集,并将该目标数据集进行可视化显示。用户在操作的整个过程中,只需要简单的关联操作就能实现不同类型的数据源的组合分析,并进行可视化展示。
如图1所示,本实施例提供的一种可视化的数据分析方法的具体实施流程如下所示:
步骤100、获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
实施中,本实施例可以建立与各类型数据源的连接,通过建立连接关系可以实时访问各类型的数据源,可选的,本实施例通过如下任一或任多种方式获取多种类型的数据源:
方式(1)接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
在一些实施例中,本实施例中的参数信息包括但不限于数据库参数、接口参数、文本数据、Redis参数、SQL语句中的一种或多种;
在一些实施例中,通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
实施中,本实施例可以接收用户输入的多种类型的数据源的参数信息,根据多种参数信息,获取对应类型的数据源;例如,接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;以及接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。其中上述根据所述参数信息获取对应类型的数据源的方式中,可以选择其中一种或多种组合,本实施例对此不作过多限定。
方式(2)通过文件传送协议获取对应类型的数据源;
在一些实施例中,通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
方式(3)将执行的SQL语句作为获取的对应类型的数据源。
在一些实施例中,接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
实施中,本实施例可以将上述方式(1)、方式(2)和方式(3)进行组合,通过组合后的方式获取多种类型的数据源,本实施例对具体的组合方式不作过多限定。
在一些实施例中,本实施例中的数据源包括但不限于如下任多种:
第1种、数据库类型的数据源,包括但不限于Mysql(关系型数据库管理***)、PostgreSql(是一个自由的对象-关系数据库服务器(数据库管理***))、Oracle(甲骨文,是一个大型数据库软件)、达梦(数据库)、Hive(是基于Hadoop构建的一套数据仓库分析***,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件***中的数据)、Hbase(是一个分布式的、面向列的开源数据库)、InfluxDB(是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据)中的至少一种;
第2种、接口类型的数据源,包括但不限于API接口;可选的,提供的 API协议包括但不限于:HTTP协议、RPC(Remote Procedure Call,远程过程调用)协议、socket(套接字)协议、SDK(Software Development Kit,软件开发工具包)协议中的至少一种。
第3种、文本类型的数据源,包括但不限于Excel文本、CSV文本、TXT文本中的至少一种;
第4种、FTP类型的数据源,包括但不限于SFTP类型、FTP类型中的至少一种;
第5种、Redis缓存类型的数据源,包括但不限于Redis缓存或其他缓存中的至少一种;
第6种、SQL语句类型的数据源,包括但不限于用户输入的SQL语句、执行的SQL语句、存储的SQL语句、生成的SQL语句中的至少一种。
第7种、其他类型的数据源,包括但不限于本地文件、ES(文件浏览器)、kafka(是一种高吞吐量的分布式发布订阅消息***,它可以处理消费者在网站中的所有动作流数据)、clickhost中的至少一种。
可选的,本实施例利用Presto组件获取并连接各类型的数据源。
步骤101、通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
在一些实施例中,本实施例通过URL嵌入到web、终端等的形式配置可视化页面,不需要进行web端与后端定义接口进行联调等,使得可视化展示不强依赖于前后端开发。
在一些实施例中,本实施例中的表信息包括但不限于表所属的数据源标识、表字段名称、列字段名称、列字段的字段类型中的至少一种。
实施中,每个类型的数据源包括一个或多个表信息,以数据库为例,包括至少一个库,每个库包括至少一个表,可以将该数据库的各个库的各个表中的列信息确定为表信息。
本实施例可以显示各类型的数据源包含的各表中的各列信息,例如在可视化页面的右侧显示每个数据源中的各列字段名。
步骤102、响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
实施中,由于在可视化页面已经将各类型的数据源中的表信息都显示出来,用户只需要通过简单的关联操作就可以建立两个或两个以上的表间的关联关系,最终通过执行SQL语句的方式,根据多个表间的关联关系生成目标数据集。
在一些实施例中,本实施例中的关联操作包括但不限于:拖拽操作、点击操作、输入关联信息操作中的至少一种,本实施例对此不作过多限定。实施中,用户可以通过简单的拖拽操作,将显示的需要关联的多个表信息拖拽到指定区域,其中拖拽操作执行时会调用后端接口获取表信息对应的表的全部信息,包括所属数据源、各列字段等信息,然后将指定区域中的多个表进行关联,生成目标数据集。
在一些实施例中,本实施例通过如下方式生成目标数据集:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
可选的,本实施例可以将各类数据源中的数据信息通过简单的拖拽方式实现数据的聚合。实施中,如图2A-2B所示,本实施例提供一种数据集生成的操作界面示意图,其中,如图2A所示,用户可选择任意已经建立连接的数据源(对应图中的区域1),选择数据源之后,会显示该数据源下的所有表信息(对应图中的区域2),用户选择多个目标表,将多个目标表的表信息拖拽到指定区域(对应图中的区域3),拖拽表信息时,后端调用后端接口获取该目标表的全部信息,包括数据源、所有列字段等,然后用户可以指定多个目标表之间的关系,即多个目标表中的某些列字段一致,从而将多个目标表关联到一起,其中,图中的区域4为属性区,可以针对产生的目标数据集中的各属性进行重命名,复制属性、删除属性等操作,其中属性是指表字段、列字段等表属性信息。图中的区域5为预览区,给用户直观的展示数据聚合后 的目标数据集是否符合预期。如图2B所示,用户可以输入多个目标表间的关联关系,即定义多个目标表中的某些列字段相同,以此确定多个目标表间的关联关系从而生成目标数据集。
在一些实施例中,本实施例通过如下方式根据各个目标表的表信息和所述关联关系,生成目标数据集:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
在一些实施例中,本实施例还可以接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
实施中,数据集可由多个数据源中的“表”进行简单的拖拽组合生成,对应的连接可为SQL中左外连接和内连接,两个表的关联需要一个桥梁,因此两表关联时需要指定相等的属性(如列字段相同)。除了进行关联外,还可在关联的基础上增加过滤条件,如图2C所示,本实施例提供的一种过滤数据集的操作界面。例如,有一张表,包含了用户购买商品相关的信息,现需要创建一个衣服品类的用户购买信息,则需要增加过滤条件,将商品的品类匹配为衣服。
下面通过具体例子对本实施例中的数据关联和过滤的过程进行说明:
例如表A为商品表,表B为用户表,表C为用户购买商品记录表,各表间的关联关系为表A连接表B连接表C,关联关系具体包括表A的商品ID等于表C的商品ID,表B的用户ID等于表C的用户ID。过滤条件为表B的商品类型为衣服。实施中,前端可以将表A,表B和表C的各表数据源ID(用户进行拖拽时都会调用后端接口获取到,包括后续所需数据源的各种信息),各表关联后所保留的字段及各表关联时相等的字段发送给后端,后端按照如下格式生成SQL语句,然后通过调用Presto获取SQL结果回显到界面:
SELECT A表保留属性,B表保留属性,C表保留属性
FROM A(left)join B(left)join C on A.id=C.produc_id and B.id=C.user_id
WHERE A.product_type=‘衣服’
可选的,本实施例中的属性是指数据源ID及其类型、表字段及其类型、表中的各列字段及其类型等相关信息。
在一些实施例中,可以将生成的目标数据集作为一个新的数据源添加到本执行主体中,以供后续使用。可选的,可以将目标数据集存储到业务数据库以供后续使用。
步骤103、将所述目标数据集通过图表的方式在所述可视化页面进行显示。
在一些实施例中,本实施例通过如下方式绘制图表并显示:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
实施中,本实施例首先指定需要绘制的图表类型,然后通过拖拽的方式将需要绘制的目标数据集中的目标数据列拖拽到指定区域,利用图表组件绘制图表并进行可视化显示。
在一些实施例中,本实施例中的图表组件包括但不限于前端开源组件Echart,用户通过点击选中一种图表类型,生成一个图表,然后针对选中的图表配置图表数据。如图3A-3B所示,本实施例提供一种显示图表的可视化页面操作示意图,其中,用户选中折线图后,可以对折线图进行设置,例如更改样式、***多媒体数据、输入文字等编辑操作,设置完成后,如图3B所示,在页面右侧栏显示的各数据源的表信息中选择所需显示的目标数据集(对应图中标注的区域1),选择完目标数据集后会列出该目标数据集中的所有数据列(对应图中标注的区域2),用户从所有数据列中选择目标数据列,将所述目标数据列作为所述图表类型对应的图表数据,拖拽到指定区域(对应图中标注的区域3),利用图表组件绘制并显示基于目标数据列生成的折线图(对 应图中标注的区域4)。
在一些实施例中,确定用户指定的图表类型以及目标数据集中的目标数据列之后,还包括:
接收用户输入的过滤条件(对应图3B中标注的区域5),其中所述过滤条件用于对目标数据列中的数据进行筛选;将筛选后的目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;将绘制的图表在可视化页面进行显示。
可选的,用户还可以对显示的图表的颜色、文字格式、背景等进行编辑操作,本实施例对此不作过多限定。
需要说明的是,本实施例中与各类型的数据源建立连接主要包括两个方面,一方面侧重于连接关系的建立,另一方面侧重于连接关系的共享。其中,连接关系的建立主要包括数据源的获取和注册(即连接)的过程,连接关系的共享主要包括从业务***和数据库连接的整体架构上,提供一种共享数据源的连接关系。
第一方面,连接关系的建立。
在一些实施例中,本实施例通过如下任多种方式获取多种类型的数据源:
方式1)接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;
在一些实施例中,本实施例中的数据库参数包括但不限于IP地址、端口号、数据库库名、数据库类型、登录用户名、登录密码、数据源名称等中的至少一种或多种。
可选的,本实施例利用Presto组件获取并连接各类型的数据源。其中,Presto内部集成了一些数据库的连接器,如Mysql、PostgreSql、Oracle等数据库,针对不同数据库可输入不同的数据库参数,具体可参考Presto官方文档。对于未支持的数据库类型,可以针对Prsto源码进行插件开发,例如可以对达梦数据库进行连接功能的开发。用户选择直连数据库(内部集成的连接器对应的数据库)的方式时,需要具体指定数据库的类型,针对不同数据库的类 型填入的数据库参数也存在差异,以Mysql和PostgreSql为例,如图4A-图4B所示,本实施例提供的一种获取数据库的操作界面图。其中“*”对应的内容表示用户需要输入的数据库参数。用户输入数据库参数后,根据用户所输入的数据库参数,后端服务可以利用Presto连接对应的数据库,来校验输入的数据库参数是否正确。如果错误则反馈给用户,正确则提示用户保存,将用户输入的数据库参数信息保存在本地数据库中。
方式2)接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;
在一些实施例中,本实施例中的接口参数包括但不限于接口名称、接口调用方式、接口路径中的至少一种信息。其中接口路径包括接口IP地址和端口。
方式3)获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;
在一些实施例中,本实施例中的文本数据包括但不限于Excel文本、CSV文本、TXT文本中的至少一种。
在实际开发过程中,难免会用一些开源数据集,当开源数据集的格式为Excel/CSV格式时,本实施例可以支持用户将历史保存的数据以Excel/CSV/TXT文本的方式上传,用户只需命名数据源名称即可。当利用Presto组件获取并连接各类型的数据源时,由于Presto可识别CSV格式的数据,可以将用户上传的文本数据都转换为CSV格式,以文本形式存储到本地存储器,供后续使用,由于存储的是文本形式,因此并不会占用较多的存储空间。
方式4)通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源;
实施中,鉴于早期的企业,有很多数据是存储于ftp服务器上,为了更好提供服务,本实施例还支持用户将文件通过sftp的方式从FTP服务器中获取文件,并注册到本执行主体中,支持的文件格式为Excel、CSV、TXT格式。 其中,本实施例的执行主体可以是一个平台、***、设备中的一种,本实施例对此不作过多限定。
方式5)接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;
本实施例还支持Redis缓存作为数据源,在特定环境下,例如双11电商大促时,服务器在短时间内会收到大量订单信息,若直接把订单信息存入到数据库中,高频率的写操作极大可能将数据库搞垮,造成服务异常。这种情况下通常都会先把订单信息存储在缓存中,一段时间内再同步到数据库。如果想要及时的分析当前销售情况,获取缓存中数据就很有必要,本实施例提供一种实施分析当前购买信息的方法,通过获取Redis缓存中的数据源,并实时进行分析以用于对用户推荐更适合的商品。
需要说明的是,本实施例中获取Redis缓存类型的数据源后,便认为建立了与Redis缓存类型的数据源的连接关系,其中,如图5所示,本实施例提供一种获取/创建Redis的连接操作界面,用户需要提供数据源类型:Redis缓存类型;数据源名称:Redis缓存名称;数据源地址:Redis缓存地址;数据源端口号:Redis缓存端口号;登录用户名;登录密码等。
方式6)接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源;或,接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
如图6所示,本实施例提供一种获取SQL数据源的操作界面,其中用户需要输入自定义的SQL语句的名称即可。
实施中,本实施例可以针对已经建立连接(已经注册过)的数据源,通过运行SQL语句,将各数据源联系起来,并将SQL语句作为一个中间过程重新作为一个数据源中的一种表信息注册回Presto中,从而可以实现该数据源的复用。创建SQL数据源时只需要输入数据源类型为SQL类型,输入数据源名称即可。
例如,获取在第一平台和第二平台下同时购买风衣的用户基本信息,简 单来说,至少需要3张表,一张为用户信息表记为表A,一张为第一平台的用户购买记录记为表B,一张为第二平台的用户购买记录记为表C,假设风衣的商品ID共用一个,可以将获取在第一平台和第二平台下同时购买风衣的用户基本信息分为三个步骤执行:步骤一,可以先在表C中取出购买过风衣的用户ID;步骤二,再在A表中查询出购买过风衣的用户,同时还在步骤一的结果中的用户ID,步骤三,将步骤二的结果关联用户基本表,得到在第一平台和第二平台上同时购买风衣的用户基本信息。对于步骤二来说,可以复用步骤一执行的SQL语句,只需要再添加一些区别于步骤一的筛选条件,对于步骤三来说,同样可以复用步骤二的SQL语句,添加相关的筛选条件。由于本实施例将SQL语句作为一种数据源,在执行复杂的数据组合查询时,可以通过生成嵌套SQL语句的方式,将生成的嵌套SQL语句作为一个数据源,而无需将每次执行的SQL语句的结果作为一个数据源继续增加表的连接,造成多表关联的复杂度成指数级增长,本实施例基于本方法能够适用于任何复杂的SQL语句,将复杂的SQL语句简单化,通过生成嵌套SQL语句,并直接执行最终嵌套的SQL语句的方式降低了查询复杂数据组合时占用的资源,使得SQL执行的结果集无需存储在物理空间,而是将SQL语句本身作为一种数据源进行复用,有效提高了查询效率。
在一些实施例中,本实施例通过如下方式建立与各类型数据源的连接:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
在一些实施例中,本实施例中的连接信息包括但不限于:数据库参数、接口参数、数据源参数、服务器参数、SQL语句、SQL语句中的表信息中的至少一种,具体根据数据源的类型定义,本实施例对此不作过多限定。
在一些实施例中,本实施例根据各类型的数据源的连接信息,通过如下方式分别建立与各类型的数据源的连接:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
本实施例以Presto为例,利用Presto分布式查询引擎的特点,可以将多个数据源之间建立联系。Presto引擎中有目录(catalog),图解(schema),表(table)三个概念。其中catalog可以理解为数据源,schema理解为模式,对应数据库中的具体某一个数据库,table对应于数据库中的表信息。Presto中内置多种数据源的连接器,如Mysql、PostgreSql、Hive、Kafka、Redis等。
对于Presto中内置连接器的数据源类型,只需将数据源连接信息(如数据库的数据库参数例如URL,用户名,密码等)写入Presto的配置文件中即可,如图7所示,本实施例还提供一种注册数据源的实施流程,具体注册流程(即建立连接流程)如下所示:
步骤700、Presto服务启动;
步骤701、初始化查询已建立连接的数据源信息;
步骤702、将查询出来的数据源信息写入Presto的配置文件中,生成注册Presto的配置信息;
步骤703、通过Http接口向Presto发送配置信息,Presto根据接收的配置信息更新本地数据库。
实施中,Presto服务启动时,会将在本实施例中获取的数据源连接信息通过Http接口修改到Presto的Catalog下,从而将数据源信息注册到Presto中。
在使用过程中,如需要编辑数据源,则可以通过http接口删除数据源,再重新注册即可。Presto中的数据源名称唯一,为了便于管理维护,本实施例还创建了各个数据源的数据源ID,将创建的数据源ID作为Presto中连接的数据源名称。
在一些实施例中,本实施例根据不同类型的数据源,提供对应的连接信息,通过如下任一种情况建立和数据源间的连接关系:
情况1、数据源为数据库类型的数据源。
可选的,根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
在一些实施例中,连接信息包括数据库参数,本实施例中的数据库参数 包括但不限于:IP地址、端口号、数据库库名、数据库类型、登录用户名、登录密码、数据源名称等中的至少一种或多种。
情况2、数据源为接口类型的数据源。
可选的,根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
在一些实施例中,连接信息包括数据源参数和接口参数。可选的,接口参数包括但不限于用户定义的接口名称、接口调用方式、IP地址、端口、接口路径等接口信息。
实施中,以API接口类型的数据源为例,如图8A-8B所示,本实施例提供一种连接API数据源的操作界面示意图,图8A中,用户在创建API数据源时,在操作界面中输入接口参数,包括接口名称、接口调用方式、IP、端口、接口路径(如URL(Universal Resource Locator,统一资源定位符))等,从而获取到API数据源,获取到API数据源之后,如图8B所示,运行API接口,得到JSON(JavaScriptObject Notation,JS对象简谱,一种轻量级的数据交换格式)数据,对JSON数据进行解析,得到数据源参数;
其中,解析得到的数据源参数包括但不限于:数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种;根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
如图9所示,以建立连接的数据源为接口类型的数据源为例,本实施例提供一种建立API数据源的连接流程,用于说明当所述数据源为接口类型的数据源时,如何获取该数据源并根据该数据源的连接信息,建立与该数据源的连接,该流程的实施步骤如下所示:
步骤900、接收用户输入的API数据源,指定API数据源的IP和端口;
步骤901、接收用户指定的API数据源的URL、接口名称、调用方式;
步骤902、接收用户输入的API调用时所需参数、消息头信息等;
实施中,本实施例接收用户输入的接口参数,根据所述接口参数获取接 口类型的数据源,其中接口参数包括API接口参数,可选的,本实施例中的API接口参数包括但不限于API数据源的IP地址、端口、API数据源的URL、接口名称、调用方式、API调用时所需参数、消息头信息中的一种或多种。
步骤903、根据调用方式和调用时所需参数、消息头信息运行API,得到JSON数据;
步骤904、对JSON数据进行解析,得到数据源参数;
其中,数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
步骤905、根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
实施中,本实施例根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。其中,接口参数包括API接口参数。
实施中,利用JavaScript把接口返回的JSON数据读取成一个对象,然后根据用户输入的数据名称解析出对应的数据源参数,并将请求解析出数据这一过程存储在本地的数据库中。其中,更新数据源采用的是将数据源在Presto中删除,然后重新注册数据源。注册数据源时,以API数据源为例,需要给Presto提供预设格式的信息,该信息按预设格式,将数据源参数和所述接口参数提供给Presto,从而建立Presto与API数据源的连接。
在一些实施例中,本实施例中的预设格式如下:

其中,上述格式中的"sources"用于表示数据的来源,当数据源为数据库时,"sources"为数据库来源,如数据库名称、IP地址、端口号等信息,当数据源为接口数据源时,"sources"为接口来源,如接口名称、IP地址、端口号等信息,其他类型的数据源同理,"sources"对应数据的来源,用于填写各类型数据源的来源信息。
实施中,按上述预设格式将数据源的连接信息写入分布式查询引擎的配置文件中,从而当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
情况3、数据源为文本类型的数据源。
可选的,根据文件存储服务器存储的数据源,确定数据源参数;根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
可选的,本实施例中的服务器参数包括但不限于服务器IP地址、端口号等,本实施例中的数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
实施中,如果用户以Excel/CSV/TXT格式的数据进行数据源的创建,本 实施例没有将以上文件中的数据写入到本地数据库中,而是将文件上传到Minio服务器上,并提供一个查询文件内容的接口放在通过Http增加数据源的方式的source字段中,详见上述预设格式,可以将该服务器参数添加到上述预设格式的source字段中,从而将该数据源注册到Presto中。
可选的,对于数据源为FTP类型的数据源,可以将文件通过SFTP的方式从网络注册到Presto中。
情况4、数据源为SQL语句类型的数据源。
可选的,对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
实施中,如图10所示,以建立连接的数据源为SQL语句类型的数据源为例,本实施例提供一种连接SQL语句数据源的流程,用于说明当所述数据源为SQL语句类型的数据源时,如何获取该数据源并根据该数据源的连接信息,建立与该数据源的连接,该流程的实施过程如下所示:
步骤1000、接收用户输入的SQL语句;
实施中,本实施例接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
实施中,常规SQL的语法为SELECT查询字段FROM表名WHERE条件GROUP BY等内容。在本实施例中用户只需按照指定格式例如[“ID”.”Schema”.”表名”]来替代常规SQL中的表名(“ID”.”Schema”及表信息),就可实现多数据源之间的数据查询。其中,”ID”指用户指定的数据源ID,”Schema”为模式,其中数据源类型不同对应的Schema也不同,数据库类型的数据源有其自有的schema,其他方式如接口数据源可以指定名称,本实施中指定接口的模式为schema,”表名”在数据库中指表名、其他方式如接口数据源为用户定义的接口名;如图11所示,本实施例还提供一种配置SQL数据源的操作界面,根据该界面中左侧区域1中数据源的各表信息,用户可以根据显示的各表信息按指定格式在区域2输入SQL语句,使得操作界面更加便捷。
步骤1001、对SQL语句进行语法校验,确定语法校验通过;
实施中,用户点击执行SQL,调用SQL校验模块,返回SQL执行结果,用户看到预览的结果无误后执行后续步骤,否则修改SQL语句;其中,校验模块调用Presto执行SQL语句,执行成功后会返回SQL结果集,封装成结果返回给用户,若失败,则将错误信息返回给用户,以提示用户修改SQL语句。经过SQL校验模块后,可以保证SQL的准确性。
步骤1002、对所述SQL语句进行解析,得到所述SQL语句中的表信息;
实施中,根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
实施中,用户保存SQL,后端服务会调用SQL解析模块,解析出SQL语句中的表信息,包括但不限于表所属的数据源标识、表字段名称、列字段名称、列字段的字段类型中的至少一种。
其中,通过SQL解析模块,解析出注册“表”的属性名称、属性类型、属性备注等信息。实施中,能够解析出表所属的数据源标识、表字段名称、列字段名称、列字段的字段类型等信息。
实施中,SQL的结构为SELECT属性名FROM表名WHERE条件GROUP BY分组属性HAVING分组条件,其中FROM和WHERE中依然可以嵌套SQL语句。假设最外一层的SELECT属性名FROM表名WHERE条件GROUP BY分组属性HAVING分组条件为第一层,SQL解析模块只需要解析出第一层的SELECT中的属性名对应的实际物理“表”中的名称、数据类型、备注信息即可,第一层中的FROM中就描述了这些属性所归属的表信息,WHERE、GROUP、HAVING等条件都不需要关注。由于FROM中可以嵌套SQL语句,因此需要依次递归解析FROM中的SELECT,FROM信息,由此形成一个语法树,其中每一层节点记录了每一层的属性及其所在的表信息,叶子节点作为实际连接的表信息,根节点为查询属性分别归属于实际的哪个表。接下来只需要从叶子节点出发,向根节点进行遍历,就可以最终确定SQL最后要查询的属性分别对应的是物理存储的哪张“表”。
可选的,本实施例中的属性可以理解为表字段名及其类型,列字段名及其类型、库字段名及其类型、数据源名称及其类型等。
如图12所示,本实施例提供一种SQL解析语法树的示意图,其中,设有3张表,分别为表(table)1,表2,表3,对应分别为学生(student)表,教师(teacher)表,班级(class)表。按照上述描述方法,将SQL分析出语法树为3层,根节点:查询表1中的名称字段,表示4中的老师字段和班级字段。则在根节点有两个儿子节点,一个为表1,一个为表4,表4在SQL中为一个临时表,并且表4是由表2和表3生成的临时表,描述的是教师和班级之间的关系,并且查询的字段是由表2中的名称(name)字段重命名为的老师(teacher)字段和表3中的ID字段及名称重命名的班级(class)字段。因此表4会有两个儿子节点,分别为表2,表3,其中表2查询名称字段,表3查询名称字段。最终确定出该SQL最后查询的字段为表1中的名称字段及表2中的名称字段,表3中的名称字段。从最下层(第三层)的叶子节点出发,进行树的后序遍历,每到达根节点时,找出根节点中列(column)与叶子节点的对应关系,并且把根节点的列和叶子节点的表关系对应上,直到遍历结束,便可最终获得所有属性对应的表信息。图中对应的解析结果为:学生对应"1".public.student的名称字段;老师对应"2".public.teacher的名称字段;班级对应"3".schema.class的名称字段。
步骤1003、调用SQL注册模块,将SQL的信息注册到Presto中;
实施中,根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
其中,由于SQL结果的数据量不确定,将SQL结果保存到内存中显然不太可能。本实施例中,将SQL结果以接口的形式注册到Presto中,我们只需要在后端提供一个接口,用于返回执行SQL结果,并将该接口放在上述提供给Presto的预设格式中的source字段中,SQL语句中表信息中的字段信息添加到接口注册的列字段中,调用Presto重新加载该SQL语句数据源即可。也就是说,本实施例中并不存储SQL结果,而是通过提供的接口返回SQL结果, 从而有效节省服务器的物理内存资源。
步骤1004、将SQL语句和SQL语句中的表信息存储在本地数据库中,以供后续复用该SQL语句。
实施中,还可以利用存储的SQL语句和用户再次输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源,从而实现对存储的SQL语句的复用。
其中,无需将SQL语句的执行结果保存,有效节约服务器的物理内存。
在一些实施例中,对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,还可以将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
其中,在执行复杂的数据组合查询时,通过生成嵌套SQL语句的方式,将生成的嵌套SQL语句作为一个数据源,而无需将每次执行的SQL语句的结果作为一个数据源继续增加表的连接,造成多表关联的复杂度成指数级增长,将复杂的SQL语句简单化,通过生成嵌套SQL语句,并直接执行最终嵌套的SQL语句的方式降低了查询复杂数据组合时占用的资源,使得SQL执行的结果集无需存储在物理空间,而是将SQL语句本身作为一种数据源进行复用,有效提高了查询效率。
本实施例提供的一种可视化的数据分析方法,能够支持多种数据源,打破了传统只能从数据库中展示数据的单一方式;不仅可支持多种数据源,还可将多种数据源的数据聚合(即关联)在一起;实现一种SQL数据源方式,而且执行的SQL结果集无需存储在物理空间上,依然可以作为一种数据源进行复用,并且将SQL结果注册到Presto的一种解决方式,为日后拓展其他业务提供思路;将复杂SQL简单化,可兼容支持各类复杂SQL;提供了用户拖式的页面配置,简化了前后端的开发的耦合性。用户组合操作后的数据集可用户数据分析,生成知识图谱,为企业各业务的开展提供可靠支持。
第二方面,连接关系的共享。
需要说明的是,如图13所示,本实施例提供一种传统的业务***-数据源的连接关系示意图,目前每个业务***需要自己创建维护数据源,导致占用***资源(包括应用***本身的物理资源(如内存)以及访问数据库时占用的公共资源),各业务或应用***无法使用数据库的最大资源。
为了解决上述问题,本实施例提供一种共享数据源应用的方法,通过将多个业务***通过共享数据源资源池的方式,与各数据源建立连接,使得上层业务或应用***不再关心及实现数据控制层,应用***不需要再访问数据库,进行数据查询等工作,释放该层在业务***占用的资源。另外,还可以通过元数据描述的方式将数据源注册到共享数据源应用中,再根据业务或应用需求,通过元数据描述语言进行数据查询即可。
本实施例中的共享数据源应用,可以维护相同数据源的资源唯一性,最大程度利用数据库自身的连接池,由于涉及多个业务***,那么根据各个业务***的连接需求,最大程度进行数据库的高并发连接。同时提供了丰富的聚合拆分及联邦查询能力(可以进行跨数据源的链表关联等查询操作),降低上层业务或应用***对数据的处理复杂度,同时该共享数据源应用提供丰富的扩展工具,如可视化的数据集编辑器,数据性能分析等,提升使用者效率。
在一些实施例中,通过如下方式建立与各类型数据源的连接:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
可选的,本实施例中的共享数据源应用是一个以服务为主的应用,可以是Sass(Syntactically Awesome Stylesheets)应用,其中,Sass应用是一个最初由Hampton Catlin设计并由Natalie Weizenbaum开发的层叠样式表语言。在开发最初版本之后,Weizenbaum和Chris Eppstein继续通过SassScript来继续扩充Sass的功能。SassScript是一个在Sass文件中使用的小型脚本语言。
在一些实施例中,通过所述共享数据源应用建立各业务***与各类型数 据源的连接,具体执行步骤如下所示:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
实施中,例如通过元数据描述进行数据源注册(即建立连接),以mysql为例,有如下描述:
connector.name=mysql//数据源类型
connection-url=jdbc:mysql://192.168.52.1:3306//数据源地址
connection-user=root//用户名
connection-password=123456//密码
可选的,当数据源注册时判断是否该数据源已注册,如果已注册,则绑定该租户(或用户)的数据源,如果未注册,则动态创建数据源,并绑定该租户(或用户)数据源关系。
在一些实施例中,通过所述共享数据源应用建立各业务***与各类型数据源的连接,如图14所示,本实施例提供一种各业务***和各数据源连接的架构示意图,基于该架构示意图,执行如下流程:
通过所述共享数据源应用接收各业务***的访问需求;根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。其中,连接池表示创建和管理一个连接的缓冲池的技术,这些连接可以被任何需要它们的线程使用。
可选的,如图14所示,各业务***还可以通过多租户技术共享给多个租户使用。其中,多租户技术(multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的***或程序组件,并且仍可确保各用户间数据的隔离性。
在一些实施例中,基于上述架构,当多个租户或用户同时访问同一数据 库时,通过http建立连接,首先确定租户或用户名称,并确定是否具备访问数据库权限,如果具备访问权限则可以利用JDBC访问搜索引擎或本实施例中的Presto,经过对数据库中数据的处理,将处理结果返回业务***。
在一些实施例中,通过共享数据源应用,接收业务***以元数据形式发送的操作指令;对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。其中,元数据主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件纪录等功能。可选的,所有基于该共享数据源应用的操作都会被记录到日志中。本实施例中的各业务或应用***都可以对数据库中的原始数据进行加工梳理,比如聚合、过滤,或者将多个数据源的数据先查询出来,再在代码层面进行数据处理,共享数据源应用提供了丰富的聚合、过滤、联邦及可视化能力,能够大幅度减少开发人员代码编写及错误出现率。
实施中,应用***可以通过一个API接口访问数据源的表,直接返回查询结果,例如通过元数据描述的形式查询,查询信息如下所示:

其中,一级描述key如下所示,包括:
Row:描述了科目,在聚合是可以分型分组的资源,即sql中的group by;
column:描述了需要聚合的资源,即sql中的max,sum等;
filter:描述了需要过滤的资源,即sql中的where;
order:描述了需要排序的资源,即sql中的order;
limit:描述了需要查询的条数,即sql中的limit;
其中,二级描述key如下所示,包括:
Caption:描述了一个资源字段的备注等;
ColType:描述了一个资源字段的数据库类型;
ItemType:描述了一个资源字段是字符串、数字或时间;
Name:描述了一个资源字段的原始命名;
Owner:描述了一个资源字段的唯一映射;
pathId:描述了这个资源的来源(数据源、schema、数据库表、字段);
remark:描述了自定义信备注说明;
其中,filter:描述过滤如下所示,包括:
componentType:描述了过滤的类型;
config:描述了过滤的配置;
joinType:描述了多个过滤条件间的关系;
conditions:描述了过滤的匹配规则;
conditionValue:描述了过滤的公式;
value:描述了过滤的值。
在一些实施例中,本实施例还可以建立租户-数据源之间的绑定关系,便于后期***维护。可选的,可以构建租户ID、用户ID、数据源ID三者之间的对应关系,还可以构建数据源ID、数据源类型、数据源IP、数据源端口、数据库名称、用户名、密码、schema中多者间的对应关系。本实施例对此不作过多限定。
如图15所示,本实施例还提供一种共享数据源的实施流程,该流程的具体实施步骤如下所示:
步骤1500、根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
其中,共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
步骤1501、根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
步骤1502、通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接;
步骤1503、通过所述共享数据源应用接收各业务***的访问需求;
步骤1504、根据各业务***的访问需求以及共享数据源应用中各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
实施中,各独立的业务或应用***都会对相同的数据库保持一定的资源占用,如数据库连接池连接的数据库数量是有限的,本实施例通过共享数据源应用实现数据库资源的最大利用,减少上层业务或应用***运行环境资源,降低上层业务或应用***开发复杂度。
步骤1505、通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
由于业务或应用***经常同时连接访问相同数据源的情况,而这些业务或应用***通常是独立的,需要各自开发实现对数据库连接与操作,且需要耗费一定的***资源。本实施例通过共享数据源应用进行中心化管理、监控,并提供服务,通过整合的所有数据库连接的能力,并可根据业务***实际情况限流熔断,最大程度发挥数据库自身的全量资源能力,共享数据源应用提供了强大的数据内存计算能力,将原来在业务或应用***中的对大量数据单点计算的形式,变为了在高速内存中分布式处理的方式。另外,数据库通常都是敏感的,对安全要求高,同一个数据库服务器需要对各业务或应用***都开放网络连接权限,维护成本大,而本实施例通过共享数据源应用管理数据库资源的方式,可以保证数据库服务的安全性。共享数据源应用还提供了 基于元数据描述的语言,开发者或者不会sql语言的业务人员,可以通过简单的语言描述即可实现业务数据操作。
本实施例建立和各类型数据源的连接,从各应用***或业务***和各类型数据源的连接架构而言,通过共享数据源应用中心化的布局方式,将各应用***和各类型的数据源通过共享数据源资源池的方式进行连接,当确定某个应用***通过共享数据源资源池中的某个数据源的资源池,和该数据源建立连接时,可以根据该数据源的连接信息,建立和该数据源的连接,一方面,能够最大程度发挥数据库自身的全量资源能力,另一方面,能够实时进行各类型数据的查询分析,通过可视化页面显示各类数据源,通过用户在可视化界面对显示的多个表的关联操作,生成目标数据集,并将该目标数据集进行可视化显示。
示例的,基于相同的发明构思,本公开实施例还提供了一种可视化的数据分析***,由于该***即是本公开实施例中的方法中的***,并且该***解决问题的原理与该方法相似,因此该***的实施可以参见方法的实施,重复之处不再赘述。
如图16所示,该***包括显示器1600和控制器1601:
所述显示器1600被配置为通过交互界面实现与用户的人机交互操作,并进行可视化页面的显示;
所述控制器1601被配置为基于人机交互操作执行如下步骤:
获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
将所述目标数据集通过图表的方式在所述可视化页面进行显示。
作为一种可选的实施方式,所述控制器1601具体被配置为通过如下任一 或任多种方式获取多种类型的数据源:
接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
通过文件传送协议获取对应类型的数据源;
将执行的SQL语句作为获取的对应类型的数据源。
作为一种可选的实施方式,所述控制器1601具体被配置为通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息, 分别建立与各类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为数据库类型的数据源时,所述控制器1601具体被配置为执行:
根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
作为一种可选的实施方式,当所述数据源为接口类型的数据源时,所述控制器1601具体被配置为执行:
根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为文本类型的数据源时,所述控制器1601具体被配置为执行:
根据文件存储服务器存储的数据源,确定数据源参数;
根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
作为一种可选的实施方式,当所述数据源为SQL语句类型的数据源时,所述控制器1601具体被配置为执行:
对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;
根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
作为一种可选的实施方式,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,所述控制器1601具体还被配置为执行:
将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
通过所述共享数据源应用接收各业务***的访问需求;
根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,所述控制器1601具体还被配置为执行:
通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;
接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;
根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
作为一种可选的实施方式,所述控制器1601具体被配置为执行:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
示例的,基于相同的发明构思,本公开实施例还提供了一种可视化的数据分析设备,由于该设备即是本公开实施例中的方法中的设备,并且该设备解决问题的原理与该方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。
如图17所示,该设备包括处理器1700和存储器1701,所述存储器1701用于存储所述处理器1700可执行的程序,所述处理器1700用于读取所述存储器1701中的程序并执行如下步骤:
获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个 表间的关联关系,生成目标数据集;
将所述目标数据集通过图表的方式在所述可视化页面进行显示。
作为一种可选的实施方式,所述处理器1700具体被配置为通过如下任一或任多种方式获取多种类型的数据源:
接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
通过文件传送协议获取对应类型的数据源;
将执行的SQL语句作为获取的对应类型的数据源。
作为一种可选的实施方式,所述处理器1700具体被配置为通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为数据库类型的数据源时,所述处理器1700具体被配置为执行:
根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
作为一种可选的实施方式,当所述数据源为接口类型的数据源时,所述处理器1700具体被配置为执行:
根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为文本类型的数据源时,所述处理器1700具体被配置为执行:
根据文件存储服务器存储的数据源,确定数据源参数;
根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
作为一种可选的实施方式,当所述数据源为SQL语句类型的数据源时,所述处理器1700具体被配置为执行:
对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;
根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
作为一种可选的实施方式,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,所述处理器1700具体还被配置为执行:
将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
通过所述共享数据源应用接收各业务***的访问需求;
根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,所述处理器1700具体还被配置为执行:
通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个 目标表的表信息;
接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;
根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
作为一种可选的实施方式,所述处理器1700具体还被配置为执行:
接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
作为一种可选的实施方式,所述处理器1700具体被配置为执行:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
示例的,基于相同的发明构思,本公开实施例还提供了一种可视化的数据分析装置,由于该装置即是本公开实施例中的方法中的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图18所示,该装置包括:
建立连接单元1800,用于获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
可视化显示单元1801,用于通过可视化页面显示已连接的各类型的数据 源包含的各个表信息;
关联数据单元1802,用于响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
图表显示单元1803,用于将所述目标数据集通过图表的方式在所述可视化页面进行显示。
作为一种可选的实施方式,所述建立连接单元1800具体用于通过如下任一或任多种方式获取多种类型的数据源:
接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
通过文件传送协议获取对应类型的数据源;
将执行的SQL语句作为获取的对应类型的数据源。
作为一种可选的实施方式,所述建立连接单元1800具体用于通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
作为一种可选的实施方式,所述建立连接单元1800具体用于:
通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
作为一种可选的实施方式,所述建立连接单元1800具体用于:
接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为 SQL语句类型的数据源。
作为一种可选的实施方式,所述建立连接单元1800具体用于:
根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,所述建立连接单元1800具体用于:
将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为数据库类型的数据源时,所述建立连接单元1800具体用于:
根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
作为一种可选的实施方式,当所述数据源为接口类型的数据源时,所述建立连接单元1800具体用于:
根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,当所述数据源为文本类型的数据源时,所述建立连接单元1800具体用于:
根据文件存储服务器存储的数据源,确定数据源参数;
根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
作为一种可选的实施方式,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
作为一种可选的实施方式,当所述数据源为SQL语句类型的数据源时,所述建立连接单元1800具体用于:
对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行 解析,得到所述SQL语句中的表信息;
根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
作为一种可选的实施方式,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,所述建立连接单元1800具体还用于:
将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
作为一种可选的实施方式,所述建立连接单元1800具体用于:
根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
作为一种可选的实施方式,所述建立连接单元1800具体用于:
根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
作为一种可选的实施方式,所述建立连接单元1800具体用于:
通过所述共享数据源应用接收各业务***的访问需求;
根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
作为一种可选的实施方式,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,还包括操作单元具体用于:
通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
作为一种可选的实施方式,所述关联数据单元1802具体用于:
响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;
接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
作为一种可选的实施方式,所述关联数据单元1802具体用于:
根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联后保留的第二字段;
根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
作为一种可选的实施方式,所述关联数据单元1802具体还用于:
接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
作为一种可选的实施方式,所述图表显示单元1803具体用于:
确定用户指定的图表类型以及目标数据集中的目标数据列;
将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
将绘制的图表在可视化页面进行显示。
基于相同的发明构思,本公开实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时用于实现如下步骤:
获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个 表间的关联关系,生成目标数据集;
将所述目标数据集通过图表的方式在所述可视化页面进行显示。
本领域内的技术人员应明白,本公开的实施例可提供为方法、***、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的设备。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令设备的制造品,该指令设备实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。

Claims (24)

  1. 一种可视化的数据分析方法,其中,该方法包括:
    获取多种类型的数据源,建立与各类型数据源的连接,其中数据源的类型用于表征数据获取的来源;
    通过可视化页面显示已连接的各类型的数据源包含的各个表信息;
    响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集;
    将所述目标数据集通过图表的方式在所述可视化页面进行显示。
  2. 根据权利要求1所述的方法,其中,通过如下任一或任多种方式获取多种类型的数据源:
    接收用户输入的参数信息,根据所述参数信息获取对应类型的数据源;
    通过文件传送协议获取对应类型的数据源;
    将执行的SQL语句作为获取的对应类型的数据源。
  3. 根据权利要求2所述的方法,其中,通过如下任一或任多种方式根据所述参数信息获取对应类型的数据源:
    接收用户输入的数据库参数,根据所述数据库参数获取数据库类型的数据源;或,
    接收用户输入的接口参数,根据所述接口参数获取接口类型的数据源;或,
    获取用户上传的文本数据,将用户命名的所述文本数据确定为文本类型的数据源;或,
    接收用户输入的Redis参数,根据所述Redis参数获取Redis缓存类型的数据源;或,
    接收用户输入的SQL语句,将输入的SQL语句确定为SQL语句类型的数据源。
  4. 根据权利要求2所述的方法,其中,所述通过文件传送协议获取对应 类型的数据源,包括:
    通过SFTP的方式获取FTP服务器中的文件,将获取的文件确定为FTP类型的数据源。
  5. 根据权利要求2所述的方法,其中,所述将执行的SQL语句作为获取的对应类型的数据源,包括:
    接收用户对已连接的数据源执行的SQL语句,将执行的SQL语句确定为SQL语句类型的数据源。
  6. 根据权利要求1~5任一所述的方法,其中,所述建立与各类型数据源的连接,包括:
    根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
  7. 根据权利要求6所述的方法,其中,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
    将各类型的数据源的连接信息写入分布式查询引擎的配置文件中;
    当启动分布式查询引擎时,根据配置文件中各类型的数据源的连接信息,分别建立与各类型的数据源的连接。
  8. 根据权利要求6所述的方法,其中,当所述数据源为数据库类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
    根据数据库参数建立与所述数据库类型的数据源的连接,其中所述数据库参数表征连接数据库所需的参数。
  9. 根据权利要求6所述的方法,其中,当所述数据源为接口类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
    根据接口参数运行接口得到JSON数据,对JSON数据进行解析,得到数据源参数;
    根据解析出的数据源参数和所述接口参数,建立与接口类型的数据源的连接。
  10. 根据权利要求6所述的方法,其中,当所述数据源为文本类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
    根据文件存储服务器存储的数据源,确定数据源参数;
    根据文件存储服务器的服务器参数和所述数据源参数,建立与接口类型的数据源的连接。
  11. 根据权利要求9或10所述的方法,其中,所述数据源参数包括所述数据源标识、数据源的类型、库字段、表字段、列字段、列字段的字段类型中的至少一种。
  12. 根据权利要求6所述的方法,其中,当所述数据源为SQL语句类型的数据源时,所述根据各类型的数据源的连接信息,分别建立与各类型的数据源的连接,包括:
    对SQL语句进行语法校验,确定语法校验通过后,对所述SQL语句进行解析,得到所述SQL语句中的表信息;
    根据所述SQL语句和所述SQL语句中的表信息,建立与SQL语句类型的数据源的连接。
  13. 根据权利要求12所述的方法,其中,所述对所述SQL语句进行解析,得到所述SQL语句中的表信息之后,还包括:
    将所述SQL语句和所述SQL语句中的表信息存储到本地数据库;
    利用存储的SQL语句和用户输入的SQL语句生成嵌套的SQL语句,将生成的嵌套的SQL语句确定为获取的SQL语句类型的数据源。
  14. 根据权利要求1~5任一所述的方法,其中,所述建立与各类型数据源的连接,包括:
    根据各类型的数据源包含的每个数据源的连接池,构建共享数据源应用;
    通过所述共享数据源应用建立各业务***与各类型数据源的连接,其中所述共享数据源应用通过整合各类型数据源连接的能力,为各业务***提供与各类型数据源连接的服务。
  15. 根据权利要求14所述的方法,其中,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接,包括:
    根据元数据描述的各类型数据源中每个数据源的连接信息,建立共享数据源应用与各类型数据源的连接;
    通过所述共享数据源应用,将与共享数据源应用建立连接的各类型数据源,与各业务***建立连接。
  16. 根据权利要求14所述的方法,其中,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接,包括:
    通过所述共享数据源应用接收各业务***的访问需求;
    根据各业务***的访问需求以及各数据源的连接池的连接数量,确定各业务***对应的目标数据源的连接池;
    通过所述目标数据源的连接池,建立各业务***与对应的目标数据源的连接。
  17. 根据权利要求14所述的方法,其中,所述通过所述共享数据源应用建立各业务***与各类型数据源的连接之后,还包括:
    通过共享数据源应用,接收业务***以元数据形式发送的操作指令;
    对所述操作指令对应的数据源执行聚合、过滤、查询中的至少一种操作。
  18. 根据权利要求1所述的方法,其中,所述响应于用户对显示的多个表的关联操作,根据所述关联操作指示的多个表间的关联关系,生成目标数据集,包括:
    响应于用户对显示的多个表的拖拽指令,确定所述拖拽指令对应的各个目标表的表信息;
    接收用户输入的多个目标表间的关联关系,根据各个目标表的表信息和所述关联关系,生成目标数据集。
  19. 根据权利要求18所述的方法,其中,所述根据各个目标表的表信息和所述关联关系,生成目标数据集,包括:
    根据所述关联关系确定多个目标表间相同的第一字段和多个目标表关联 后保留的第二字段;
    根据各个目标表的表信息、所述第一字段以及所述第二字段,生成SQL语句,执行所述SQL语句得到所述目标数据集。
  20. 根据权利要求18所述的方法,其中,所述根据各个目标表的表信息和所述关联关系,生成目标数据集,还包括:
    接收用户输入的过滤条件,其中所述过滤条件用于对多个目标表中的数据进行筛选;
    根据所述过滤条件、多个目标表的表信息以及多个目标表间的关联关系,生成目标数据集。
  21. 根据权利要求1所述的方法,其中,所述将所述目标数据集通过图表的方式在所述可视化页面进行显示,包括:
    确定用户指定的图表类型以及目标数据集中的目标数据列;
    将所述目标数据列作为所述图表类型对应的图表数据,利用图表组件绘制所述图表类型对应的图表;
    将绘制的图表在可视化页面进行显示。
  22. 一种可视化的数据分析***,其中,该***包括显示器和控制器:
    所述显示器被配置为通过交互界面实现与用户的人机交互操作,并进行可视化页面的显示;
    所述控制器被配置为基于人机交互操作执行如权利要求1~21任一所述方法的步骤。
  23. 一种可视化的数据分析设备,其中,该设备包括处理器和存储器,所述存储器用于存储所述处理器可执行的程序,所述处理器用于读取所述存储器中的程序并执行权利要求1~21任一所述方法的步骤。
  24. 一种计算机存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现如权利要求1~21任一所述方法的步骤。
PCT/CN2023/091384 2022-06-29 2023-04-27 一种可视化的数据分析方法及设备 WO2024001493A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210760354.0A CN115017182A (zh) 2022-06-29 2022-06-29 一种可视化的数据分析方法及设备
CN202210760354.0 2022-06-29

Publications (1)

Publication Number Publication Date
WO2024001493A1 true WO2024001493A1 (zh) 2024-01-04

Family

ID=83079548

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2023/091384 WO2024001493A1 (zh) 2022-06-29 2023-04-27 一种可视化的数据分析方法及设备

Country Status (2)

Country Link
CN (1) CN115017182A (zh)
WO (1) WO2024001493A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115017182A (zh) * 2022-06-29 2022-09-06 京东方科技集团股份有限公司 一种可视化的数据分析方法及设备
CN115793911A (zh) * 2022-12-23 2023-03-14 北京字跳网络技术有限公司 数据处理方法、装置、电子设备及存储介质
CN116302206B (zh) * 2023-03-31 2024-03-12 中电云计算技术有限公司 一种基于MQ的presto数据源热加载方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109992589A (zh) * 2019-04-11 2019-07-09 北京启迪区块链科技发展有限公司 基于可视化页面生成sql语句的方法、装置、服务器及介质
RU2704873C1 (ru) * 2018-12-27 2019-10-31 Общество с ограниченной ответственностью "ПЛЮСКОМ" Система и способ управления базами данных (субд)
CN112463151A (zh) * 2020-11-03 2021-03-09 杭州讯酷科技有限公司 一种基于数据源的可视化页面构筑方法
CN112612835A (zh) * 2020-12-23 2021-04-06 厦门市美亚柏科信息股份有限公司 一种数据模型的创建方法和终端
CN115017182A (zh) * 2022-06-29 2022-09-06 京东方科技集团股份有限公司 一种可视化的数据分析方法及设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2704873C1 (ru) * 2018-12-27 2019-10-31 Общество с ограниченной ответственностью "ПЛЮСКОМ" Система и способ управления базами данных (субд)
CN109992589A (zh) * 2019-04-11 2019-07-09 北京启迪区块链科技发展有限公司 基于可视化页面生成sql语句的方法、装置、服务器及介质
CN112463151A (zh) * 2020-11-03 2021-03-09 杭州讯酷科技有限公司 一种基于数据源的可视化页面构筑方法
CN112612835A (zh) * 2020-12-23 2021-04-06 厦门市美亚柏科信息股份有限公司 一种数据模型的创建方法和终端
CN115017182A (zh) * 2022-06-29 2022-09-06 京东方科技集团股份有限公司 一种可视化的数据分析方法及设备

Also Published As

Publication number Publication date
CN115017182A (zh) 2022-09-06

Similar Documents

Publication Publication Date Title
US11429600B2 (en) Loading queries using search points
WO2024001493A1 (zh) 一种可视化的数据分析方法及设备
US11651012B1 (en) Coding commands using syntax templates
US10061807B2 (en) Collection query driven generation of inverted index for raw machine data
US11036752B2 (en) Optimizing incremental loading of warehouse data
US10216814B2 (en) Supporting combination of flow based ETL and entity relationship based ETL
US10073867B2 (en) System and method for code generation from a directed acyclic graph using knowledge modules
US9659012B2 (en) Debugging framework for distributed ETL process with multi-language support
US20140181154A1 (en) Generating information models in an in-memory database system
US20140244680A1 (en) Sql query parsing and translation
US9507838B2 (en) Use of projector and selector component types for ETL map design
CN106687955B (zh) 简化将数据从数据源转移到数据目标的导入过程的调用
US10296505B2 (en) Framework for joining datasets
US11379530B2 (en) Leveraging references values in inverted indexes to retrieve associated event records comprising raw machine data
US9330140B1 (en) Transient virtual single tenant queries in a multi-tenant shared database system
US20230015186A1 (en) Partially typed semantic based query execution optimization
CN109284469B (zh) 网页开发框架
CN114969441A (zh) 基于图数据库的知识挖掘引擎***
US8386500B2 (en) Apparatus, system, and method for XML based disconnected data access for multivalued/hierarchical databases
Gupta Building Web Applications with Python and Neo4j
CN113779313B (zh) 一种基于图数据库的知识管理方法和***
US20240061855A1 (en) Optimizing incremental loading of warehouse data
US20120089593A1 (en) Query optimization based on reporting specifications
JP2023075925A (ja) ノートブックおよびパイプラインの自動的な双方向の生成および同期化
CN118170853A (zh) 农业大数据的管理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23829679

Country of ref document: EP

Kind code of ref document: A1