WO2017170459A1 - Method, program, and system for automatic discovery of relationship between fields in environment where different types of data sources coexist - Google Patents

Method, program, and system for automatic discovery of relationship between fields in environment where different types of data sources coexist Download PDF

Info

Publication number
WO2017170459A1
WO2017170459A1 PCT/JP2017/012496 JP2017012496W WO2017170459A1 WO 2017170459 A1 WO2017170459 A1 WO 2017170459A1 JP 2017012496 W JP2017012496 W JP 2017012496W WO 2017170459 A1 WO2017170459 A1 WO 2017170459A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
field
query
similarity
fields
Prior art date
Application number
PCT/JP2017/012496
Other languages
French (fr)
Japanese (ja)
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 スマートインサイト株式会社
Priority to US16/089,532 priority Critical patent/US20190317938A1/en
Priority to JP2017523549A priority patent/JP6159908B6/en
Publication of WO2017170459A1 publication Critical patent/WO2017170459A1/en

Links

Images

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/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/288Entity relationship models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems

Definitions

  • the present invention relates to a method, a program, and a system for analyzing data, and more particularly, a method, a program, and a method for automatically discovering and associating relationships between fields in a heterogeneous data source mixed environment. About the system.
  • Data sources are also called data repositories, data stores, data storage, etc. in some contexts
  • the conventional system it is difficult to determine where the data is located and how the fields in the plurality of data sources are related to each other. For example, even for products of the same model, the product code may differ between the sales department database and the service department database. In different data sources, the field names of related data may be different. Sometimes it was meaningless to map fields between different data sources. In addition, each data source often has a different data model designed by another data designer. In addition, the data in the data source is not always clean (eg, there may be missing data, inaccurate data, or incorrect formatting). The same input items may be stored in different formats depending on the data source. Considering that the amount of data in a company changes from terabytes to petabytes, the conventional system often cannot easily determine the relationship between tables (entities) and fields in different data sources.
  • EII Enterprise Information Integration
  • Patent publication gazette JP2000-222430
  • a method, a program, and a system for efficiently performing association between fields for performing data analysis across a plurality of data sources having different designs are provided.
  • the present invention is a method for analyzing data in a plurality of data stores, the step of eliminating duplication from a set of character strings in a plurality of fields in a table in the plurality of data stores, and the elimination of the duplication A stored character string in a transposed index, a step of determining similarity between the character strings stored in the transposed index, and a plurality of fields based on the determined similarity between the character strings.
  • Executed by a computer including a step of determining similarity and a step of generating graph-format data in which the similarity relationship is expressed by an edge using a table including fields determined to have high similarity between the plurality of fields as a node. This method is addressed by providing a method.
  • the step of determining the similarity between the character strings stored in the transposed index further includes a step of dividing the character strings in the plurality of fields by applying morphological analysis, and the character strings
  • the step of determining the similarity between the character strings stored in the transposed index further includes a step of storing a set of character strings in the plurality of fields in a temporary table;
  • the present invention further includes a step of determining similarity between the fields based on attributes of data in a plurality of fields in a table in the plurality of data stores, wherein the attributes include concentrations, individual values, and the like.
  • the method described in Paragraph 0008, Paragraph 0009, or Paragraph 0010 which is any one or more of the number of sigma, the boundary of the histogram, the number of null values, or the number of non-null values, addresses the above problem. .
  • the invention of the present application is a computer-implemented method using the graph format data created by the method according to paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, wherein the first data store Receiving a query for a first field of a first table of the first table, identifying a second field similar to the first field based on the graph-format data, and the second field;
  • the problem is addressed by providing a method including a step of displaying at least one of a second table including the second field and a second data store including the second table.
  • the invention of the present application is a computer-implemented method using the graph format data created by the method according to paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, wherein the first data store Displaying information about, receiving a query for a first field of a first table in the first data store, and second similar to the first field based on the graph-format data Identifying information on the first data store in response to the query, and displaying information relating to the second data store including the second field, and displaying the information relating to the first data store in response to the query. And updating the display of information about in parallel.
  • the invention of the present application is a method executed by a computer using the graph format data created by the method described in paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, and is stored in the first data store.
  • Receiving a query for a first field of the first table of the first table, identifying a second field similar to the first field based on the graph-format data, and for the first data store Combining the query result with the query result for a second data store including a second table including the second field and displaying on the same screen.
  • the present invention is a method executed by a computer using the transposed index created by the method described in paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, wherein the information about the first data store
  • a step of displaying Receiving a query for a first field of a first table in the first data store; identifying a second field similar to the first field based on the graphical data; Displaying information related to the second data store including the second field, displaying information related to the first data store in response to the query, and displaying information related to the second data store in parallel
  • FIG. 3 is a diagram illustrating examples of various data sources in an enterprise environment. It is a figure showing the process of enterprise data graph preparation performed by the data management analysis apparatus of the Example which concerns on this invention. It is a 1st example of the algorithm which judges the similarity between the fields of the table concerning this invention. It is a 2nd example of the algorithm which judges the similarity between the fields of the table which concerns on this invention. It is a typical expression figure of the example of an enterprise data graph concerning the invention in this application. It is a figure showing the example of a screen display of the enterprise data graph in the Example which concerns on this invention. It is a figure showing the process of the 1st Example of the query using an enterprise data graph performed by the data management analysis apparatus of the Example which concerns on this invention.
  • FIG. 1 illustrates an example of a computing environment that includes a computer device suitable for use in an embodiment according to the present invention.
  • FIG. 1 shows examples of various data sources in an enterprise environment (100).
  • Data used in the enterprise environment (100) is provided from various types of data sources (105-135).
  • One type of data source is a search engine (105).
  • Search engines (105) eg, SOLR and ELASTICSEARCH
  • SOLR and ELASTICSEARCH use a transposed index for high-speed search using character strings divided by tokenizers and n-grams, and are useful for storing and searching text data It is.
  • the inverted index stores terms and keywords mapped to a plurality of documents (107). Each document may correspond to one record including one or more attribute values. Some fields of each record may be indexed for efficient search.
  • RDBMS relational database management system
  • the relational database (110) stores data in tables (113), each table representing an entity in the system, and specific fields (also called attributes) representing relationships between entities. The relationship may be one to one, one to many, or many to many.
  • RDBMS can be queried by Structured Query Language (SQL) and provides a robust and mature mechanism for storing and querying structured data.
  • SQL Structured Query Language
  • RDBMS typically uses a B-tree data structure for efficient reading from disk and inserting data into a relational database (110).
  • a B-tree is a data structure that sorts and maintains data so that it can be searched, inserted, and deleted in logarithmic time (log N).
  • the columnar database (115) is similar to the relational database (110), but is characterized by storing data in a column (118) orientation rather than in a row oriented structure.
  • the columner database (115) enables efficient search processing of data having a small number of columns (118) in a large number of rows.
  • Many analytical queries require that some columns (118) be aggregated, in which case the columner database (115) is advantageous in terms of storage and retrieval efficiency. It is. This is because column-oriented storage requires fewer disk readings for reading a specific column (118).
  • AMAZON REDSHIFT is an example of a columnar database (115)
  • APACHE PARQUET is an example of a column-oriented file format.
  • the key value store (120) uses a data storage scheme designed to store, retrieve and manage the associative array (123).
  • the associative array (123) is a data structure commonly referred to as a dictionary or hash.
  • the key / value store (120) for example, RIAK, REDIS, MEMCACHE
  • high-speed data search is possible based on the key.
  • the key value store (120) may be implemented as a map data structure on disk or memory.
  • the key value store (120) can follow a consistency model based on serialization and eventual consistency. Key access to the key value store (120) can be executed with O (1) order (constant) complexity.
  • the web service (125) serves as a common integration interface to various data systems inside and outside the enterprise environment (100). For example, most social media data is accessed via REST (Representational State Transfer) API (application programming interface). External cloud-based applications (160) (Salesforce.com, Google Analytics, etc.) can also be accessed via the REST API.
  • the web service (125) provides real-time request-response access to data stored by the service provider.
  • Another type of data source is a file system stored on shared storage in an enterprise environment.
  • file system in addition to structured file data such as CSV / Excel, there are many unstructured data such as proposals and design documents.
  • the storage in which the file is stored may exist in another document management system in addition to a general shared folder.
  • live streaming data source 130
  • live data source provides live data generated or received in real time.
  • Live data is often provided from a real-time stream from a socket (such as Kinesis or Kafka).
  • Stream processing can serve the dual purpose of lambda architecture (batch processing and real-time interactive processing). In the latter case, the delay requirement may be less than 1 second. In some cases, reprocessing is performed when a stream event is missing.
  • Big data data sources store large amounts of data (more than terabytes) in a clustered environment such as Hadoop or Spark. Big data typically provides a SQL-like query language.
  • a real-time model eg, SPARKSQL or Impala
  • an asynchronous model eg, HIVE
  • Data marts are often analytical cubes for online analytical processing (OLAP) or analysis services (eg, SQL Server Analysis Services (SSAS)).
  • An analytical query eg, SQL-based
  • SQL-based may be issued to query the data mart (140).
  • SQL queries may be pre-aggregated data or cleaned data and are used to meet various reporting needs.
  • business object layer Another type of data source type is the business object layer (145).
  • Business objects eg, SAP, Infomatica
  • SAP, Infomatica are often front-end applications that allow business users to view, categorize and analyze business intelligence data. These front-end application layers may be queried directly using specific APIs.
  • a plurality of types of data sources (105-145) may be communicably connected to each other via a wired connection or a wireless connection network (150). Furthermore, the data management analyzer (155) may be connected to the network (150).
  • the data management analyzer (155) may be a computer (eg, laptop or desktop), a mobile device (eg, a smartphone, a wearable device (eg, smartwatch), and a server computer.
  • the data management analysis device (155) may include a computing environment (900) as shown in FIG.
  • the data management analyzer (155) can execute the process for data analysis described below.
  • the embodiment mainly uses a relational database data source as an example, but is applicable to other types of data sources.
  • FIG. 2 shows an example (200) of a process executed by the data management / analysis apparatus (155) to determine the similarity of fields between different data sources and generate an enterprise data graph.
  • an enterprise data graph is a relationship between multiple data sources, a relationship between multiple data models within one or more data sources, or a relationship between entities stored in one or more data sources. Is a graph expressing In the following examples, enterprise data graphs representing relationships between entities will be described, but the same idea applies to relationships between data sources and data models.
  • An entity refers to a real-world thing represented by a database (data source) and corresponds to a table or view (virtual table) in a relational database (in the following description, an entity and a table are synonymous). And the table includes a view).
  • a field refers to a column in the table.
  • a heuristic index for extracting words from the character string format field of each table in each data source of the plurality of data sources is prepared.
  • the heuristic index is used to extract meaningful words in text contained in the string format field of the table in the data source, and how often the word is in which field of which table of which data source.
  • This index is used to point to whether or not it exists, and can be implemented using the transposed index function provided by search engines such as Lucene.
  • FIG. 3 shows a first example of the similarity determination algorithm.
  • the relevance is determined by the similarity of the character strings included in the field.
  • the feature is that the matching is determined in consideration of partial matching and fluctuation due to tokenization, not perfect matching. For example, even if there are differences in expressions for the same term depending on the data source (for example, “External device” and “External device”, “Co., Ltd.” and “Patent”), similar fields can be found. Has an advantage.
  • the first example algorithm consists of the following steps: (1) The character string type field of each table is identified, and all values held for each field are acquired. (2) A DISTINCT operation is applied to the acquired value set to eliminate duplication (analysis focusing on “type” instead of “number of values”).
  • the duplicated value set is fed to a search engine that can perform morphological analysis (for example, Apache Lucene / ⁇ Solr).
  • the character string is divided into sequences by token decomposition or n-gram processing by a morphological analyzer. How to divide the character string can be set by changing the schema on the search engine side according to the user's needs.
  • index structure an index containing Bag of Words is formed.
  • One fed character string corresponds to one document.
  • (4) Find cosine similarity between fields. (5) Although the cosine similarity is a real value between 0 and 1, a logistic function is applied because there is a non-linear relationship between the calculated value and the similarity felt by humans.
  • FIG. 4 shows a second example of the similarity determination algorithm.
  • the relevance is determined based on the degree to which a character string is included in the field.
  • This method does not absorb ambiguous fluctuations, and makes a determination with a perfect match, and includes the following steps. (1) A character string type field is identified from each data model, and all values held for each field are acquired. (2) A DISTINCT operation is applied to the acquired value set to eliminate duplication (focus on “type” instead of “number of values”). (3) The duplicated value set is held as a temporary table of 1 column ⁇ n rows. An in-memory DBMS may be used for temporary tables. (4) In the temporary table group of 1 column ⁇ n rows generated in step 3 above, a join operation (natural join) is performed.
  • the number of rows in this result set is compared with the number of records in the original two tables.
  • (5) As a comparison method, three methods of a Dice coefficient, a Simpson coefficient, and a Jaccard coefficient are applied, and respective similarities are obtained. The three values are combined after weighting, and a real value (similarity) having a range from 0 to 1 is calculated.
  • (6) It is preferable to discard all temporary table groups of 1 column ⁇ n rows at the stage where the similarity can be calculated for all the combinations of tables.
  • each field (not limited to the character string field) of each table of each data store (for example, concentration (cardinality), number of individual values (NDV), histogram range, number of null values, non-values, etc. The number of null values) may be collected and stored.
  • the similarity determined by the heuristic index and the similarity determined by the field attribute may be weighted and averaged, and may be determined to be similar when a predetermined threshold is exceeded.
  • a predetermined threshold When the similarity determined by the heuristic index exceeds a predetermined threshold, it may be determined that they are similar regardless of the similarity determined by the field attribute.
  • the similarity determined by the field attribute exceeds a predetermined threshold, it may be determined that they are similar regardless of the similarity determined by the heuristic index.
  • the degree of similarity determined by the heuristic index is equal to or less than a predetermined threshold, it may be determined that they are not similar regardless of the degree of similarity determined by the field attribute.
  • the degree of similarity determined by the field attribute is equal to or less than a predetermined threshold, it may be determined that they are not similar regardless of the degree of similarity determined by the heuristic index. It is preferable that the determination method and the predetermined threshold value can be set as parameters by the user or described as a script.
  • the similarity between the tables is determined based on the determined similarity between the fields. It is preferable to treat a table including many fields determined to be similar as having strong similarity.
  • FIG. 5 shows a schematic representation of an example of an enterprise data graph according to the present invention.
  • An enterprise data graph node is a table (entity) that includes fields that belong to different data sources but are determined to be similar, and edges represent the similarity between the tables.
  • the degree of similarity between tables may be set according to the number of similar fields and the degree of similarity.
  • each node is a table, but similar relationships between data sources and data models may be expressed in the same way.
  • the generated enterprise data graph is preferably displayed in graphical form on the screen to enhance understanding of the relationship between the user's data and to support queries across data sources. .
  • FIG. 6 shows a screen display example of the enterprise data graph (600) in the embodiment according to the present invention.
  • the enterprise data graph (600) is an area of a start data store (605) (here, "Complaints") that is a starting point of a mapping process between data stores (data repositories). 610).
  • This area (610) may contain information about the starting data store (605) (eg, the number of fields and links (607) to confirm the contents of the fields and tables).
  • This starting data store (605) may be automatically selected based on the query received from the user.
  • the enterprise data graph (600) is an area that illustrates similarity relationships between the plurality of data stores (620-655) determined by the process of FIG. 2 to be similar to the start data store (605). (615) may also be included.
  • the starting data store (605) in this example, “Complaints” has eight other data stores: “Supplier” (620), “Blue” (625), “Sales” (630), It is determined to be similar to “Recalls” (635), “Investigations” (640), “Parts” (645), “Reviews” (650), and “BOM” (655).
  • the technology and design (data model) of these multiple data stores are not necessarily the same, and the contents of the stored data are not always completely consistent, but the similarity between the fields mentioned above
  • the judgment algorithm can graphically represent the relationship between tables (entities) and data stores (data repositories), and can support user data analysis work.
  • the enterprise data graph (600) includes a table determined to have fields similar to the user selected data store (in this example, “Supplier” (620) is selected). An area (665) indicating the data store (625-660) may also be included.
  • Some of these data stores (625-660) have been determined to also contain similar fields in the starting data repository (605). For example, “Blue” (625), “Sales” (630), “Recalls” (635), “Investigations” (640), “Investigations” (645), and “Reviews” (650) are all areas. (615) and region (665).
  • region (665) may not be shown in region (615). In this case, it means that these data stores do not contain fields similar to the fields in the table in the start data store (605).
  • region (815) may not be shown in region (665), in which case these data stores are tables in user-selected data store (620). Means that it does not contain fields similar to those in For example, “Call log” (660) is shown only in region (665) and therefore does not include a field similar to the field in the table in start data store (605).
  • “BOM” ′ (655) is shown only in region (615) and therefore does not include fields similar to those in the table in user selected data store (620).
  • the enterprise data graph (600) includes an information area (670) that provides information about the starting data store (605) (eg, the number of fields) and a link to display the fields in the starting data store (605) ( 872) and one or more of them may be included.
  • information area (670) that provides information about the starting data store (605) (eg, the number of fields) and a link to display the fields in the starting data store (605) ( 872) and one or more of them may be included.
  • the enterprise data graph (600) includes an information area (675) that provides information (eg, number of fields) about the user selected data store (620) and a link (677) to display the fields. May be.
  • the enterprise data graph (600) may also include an area (680) that provides information regarding the relationship between the starting data store (605) and the user selected data store (620).
  • This region (680) may include a list (685) of fields in the starting data store (605) that have been determined to be similar to fields in the user selected data store (620).
  • the region (680) may also include a link (690) for displaying a field in the start data store (605) that has been determined to be similar to a field in the user selected data store (620).
  • FIG. 7 illustrates a process (700 for a first embodiment of a query using an enterprise data graph (referred to herein as a data chain) that may be performed by an embodiment of the data management and analysis apparatus (155) of the application. ).
  • a query for a field of a specific table in the data store is received from a user.
  • the enterprise data graph is used to identify fields in other tables similar to the table queried.
  • the heuristic index may be re-queried to identify similar fields to the user's query target and display to the user.
  • the field identified at 710 or 715 is used to allow the user to query the corresponding data store and display the results.
  • This embodiment is effective when, for example, the shipment details and production performance data stored in different data stores are traced and analyzed using the serial number of the product inquired at the call center. At this time, there is an advantage in that it is possible to reach a data store or a table to be obtained only by partial matching even if the word does not completely match like a normal RDBMS table-to-table relationship.
  • FIG. 8 shows a second example of a query using an enterprise data graph (referred to as a federated query or a federal query) that can be executed by the data management analyzer (155) according to an embodiment of the present application.
  • the process (800) is shown.
  • the enterprise data graph is used to identify tables in other data stores that are similar to the subject table of the query received at 810 and the fields it contains.
  • the heuristic index may be re-queried to identify and display to the user the fields associated with the user's query.
  • the display on the screen corresponding to each data store is updated. For example, if a user sends a query that narrows the query period to a certain data store, an equivalent query is issued to other data stores, and the screen display of each can be changed. User convenience can be improved.
  • FIG. 9 illustrates a third example of a query using an enterprise data graph (real-time data fusion, virtual integration, or composite) that can be performed by a data management analyzer (155) according to an embodiment of the present application. (Referred to as data model) process (900).
  • enterprise data graph real-time data fusion, virtual integration, or composite
  • field choices identified as similar may be displayed to the user for selection by the user.
  • the field requested in 905 and the field identified in 910 are combined to generate a query result.
  • This embodiment allows two or more physically different data stores to be treated like a single data store. For example, when certain sales data is stored in a separate database or table for each region, the analysis can be performed as a single table without physical integration, improving user convenience.
  • FIG. 10 illustrates a process (1000) of a fourth embodiment of a query using a heuristic index (referred to as an M ⁇ gen search) that can be performed by a data management and analysis apparatus (155) according to an embodiment of the present invention. .
  • a heuristic index referred to as an M ⁇ gen search
  • a character string (keyword) that is a search target input by the user is received.
  • autocomplete may be performed by searching the heuristic index.
  • a heuristic index is searched based on the received keyword, and a table including a field including the keyword and a list including the table are generated and displayed to the user.
  • a screen (dashboard) corresponding to the selected table or field is displayed, an inquiry request from the user is received, and the result is displayed.
  • enterprise data graphs and heuristic indexes can be used to accommodate various queries across multiple data stores. For example, all (or some) values contained in a particular field of the current search result can be used to search across other data stores.
  • the method according to the present invention since the relationship between tables is extracted as a heuristic index and an enterprise data graph, the number of data stores does not require a large load on the system for accessing the data stores. Even in a large-scale system with a large number of data, efficient data inquiry and analysis becomes possible.
  • FIG. 11 shows a functional schematic diagram of an embodiment of the data management analysis apparatus (155), and shows an outline of the execution method of the processes and queries shown in FIGS.
  • the data management analysis device (155) may include a user interface layer (1105) that receives query parameters (Params) from the user and presents the query results to the user.
  • the user interface layer (1105) receives the query and sends it to the query engine (1110).
  • the query engine (1110) includes a query transformer (1120), a query pipeline (1125), a cry executor (1155), a result pipeline (1160), and a result combiner (1165).
  • the query transformer (1120) is a generic search object for retrieving queries from the user interface layer (1105) via various form elements and passing them to the query transformer (1120) within the query engine (1110). (1115).
  • the search object (1115) contains all metadata (data model, field, data repository, filter) related to the query retrieved from the internal metadata (1130).
  • the role of the query transformer (1120) in the federated search is to search the enterprise data graph (1135) and identify similar fields.
  • the query transformer (1120) transforms the search object (1115) based on the enterprise data graph (1135).
  • a search object (1115) is then provided to the query pipeline (1125) to determine the order of queries to be executed by the query pipeline (1125) and to perform transformations such as security (1175).
  • the query executor (1155) may check whether the result of the query exists in the query result cache (1150). If the query is for one data source, the query executor (1155) may execute directly.
  • the entire query execution flow may be recorded in internal metadata (1130) along with corresponding statistics. For example, statistics such as query conversion time, physical query execution time, total network transfer transfer time, query template / format for which the workflow was executed may be recorded.
  • the query executor (1155) takes the search object (1115) and converts it into an executable query using the native data engine API or language. Pushdowns may be used whenever possible to improve query execution efficiency.
  • the query executor (1155) then returns a data structure containing the query results to the result pipeline (1160).
  • the query executor (1155) may return multiple query results as a result pipeline (1160) that coordinates the sequence of results. Transformations based on proprietary logic may be performed at this layer.
  • the result combiner (1165) may be invoked to join or combine intermediate results at each join point of the query.
  • the result combiner (1165) may accept the intermediate results, determine the best join strategy, and then return the join results for both intermediate data sets.
  • the result combiner (765) implements a distributed join strategy by performing calculations using a clustered in-memory engine (eg, APACHE SPARK). Can be used.
  • a clustered in-memory engine eg, APACHE SPARK.
  • Such a query may be executed in real time, and may be executed asynchronously if the processing in the clustered environment includes an overhead that is greater than the network overhead.
  • the join can be executed using the in-memory SQL engine.
  • sufficient speed for real-time execution can be realized by executing SQL after batch insertion into the RAM disk table.
  • the join fetches each intermediate result and then applies the appropriate join algorithm to generate a result object (1170), resulting in two data sources at the result joiner (1165).
  • the query results may be returned to the user interface layer (1105).
  • each intermediate result is obtained and applied with an appropriate join algorithm to generate a result object (1170) for return through the user interface layer (1105), so that the join It may be performed across two data sources.
  • an in-memory SQL engine may be used.
  • the intermediate data set may be written to a POSTGRESQL or MYSQL table on a RAM disk (which may reside on another server on the same network).
  • a SQL join query (which may be used with a calculation) may then be executed on the database to generate the final result set.
  • the final result set may be sent back to the result joiner (1165).
  • other in-memory SQL engines eg, MemSQL
  • the infrastructure running the in-memory server may have a large amount of memory.
  • other columnar databases may be used. When a complex query that is expensive or the performance of the target data source is poor, write to a columnar database with excellent query performance to provide comfortable performance to users.
  • By pushing down search, comparison, local join, sorting, aggregation, and grouping to a lower data source you can take advantage of the data source's capabilities, transferred over the network, and processed by an in-memory engine The amount of intermediate data can be limited.
  • data query caching may be used.
  • a cache cluster eg, REDIS, MEMCACHED
  • REDIS REDIS
  • MEMCACHED data query caching
  • You may check for any results in the cache before querying any store. Only when the result is not in the cache is the data source accessed. Performance can be improved when queries are frequently executed against sources with high latency.
  • IMPALA for example, IMPALA
  • compound queries for example, if the query is split into multiple physical queries and the results are merged by an in-memory SQL engine
  • the performance improvement is significant. There is a possibility.
  • concurrent processing may be performed. For example, if a query spans many data sources, parallel processing may reduce query execution time. Further, in some embodiments, mutually exclusive queries may be identified and executed in parallel threads during query execution plan determination.
  • distributed processing may be performed.
  • the native data source's distributed processing capabilities may be used inherently while executing queries using specific engines (eg, HIVE, IMPALA) on the Hadoop platform or Spark platform.
  • specific engines eg, HIVE, IMPALA
  • other ecosystem tools may be required to decentrally join large intermediate sets on clustered engines such as Spark and Hadoop.
  • non-real time optimal query plan generation may be used.
  • the query engine (1110) can record the execution time of each stage in the query execution workflow.
  • This log may include query processing for specific data model data sources, network forwarding and data merging. This log is useful as data for further optimizing the query plan for subsequent query workflow execution.
  • this optimization process runs as a background process that determines the optimal execution plan and caches it for reuse in the internal metadata store (1130). Also good.
  • FIG. 12 illustrates an example computing environment (1200) that includes a computing device (1205) suitable for implementing a particular embodiment.
  • the computing device (1205) in the computing environment (1200) may include one or more processing units, cores, or processors (1210), memory (1215) (eg, RAM, ROM, etc.), internal storage (1220). (Eg, magnetic disk, optical disk, semiconductor storage, organic storage), I / O interface (1225), which are connected on a communication mechanism or bus (1230) for the exchange of information. It may be embedded in a computing device (1205).
  • the computing device (1205) may be communicatively connected to an input user interface (1235) and an output device interface (1240). Either or both of the input user interface (1235) and the output device interface (1240) may be wired or wireless and may be removable.
  • the input user interface (1235) includes any device, component, or sensor that can provide input, whether physical or virtual (eg, buttons, touch screen interface, keyboard, pointer, cursor control, microphone, braille) , Motion sensor, optical reader, etc.).
  • the output device interface (1240) includes a display, a television, a monitor, a printer, a speaker, Braille, and the like. In some embodiments, the input user interface (1235) and the output device interface (1240) may be embedded in or physically connected to the computing device (1205). In other embodiments, other computing devices may provide the functionality of the input user interface (1235) and output device interface (1240) of the computing device (1205).
  • the computing device (1205) is a mobile device (eg, tablet, notebook, laptop, personal computer, portable TV, radio, etc.), a highly portable device (eg, smartphone, vehicle and other mechanical devices) , Devices carried by humans and animals), computers (eg, desktop computers, server devices, other computers, information kiosks, televisions with one or more processors embedded therein, and / or televisions coupled to them, radios Etc.), but is not limited to this.
  • a mobile device eg, tablet, notebook, laptop, personal computer, portable TV, radio, etc.
  • a highly portable device eg, smartphone, vehicle and other mechanical devices
  • computers eg, desktop computers, server devices, other computers, information kiosks, televisions with one or more processors embedded therein, and / or televisions coupled to them, radios Etc.
  • the computing device (1205) may communicate with any number of network components, devices, and systems, including one or more homogeneous or heterogeneous computing devices, external storage (1245) and network ( 1250) (eg, via an I / O interface (1225)).
  • the computing device (1205), or any connected computing device functions as a server, client, thin server, general machine, special purpose machine, or other termed computer. , Can provide services or refer to them.
  • the I / O interface (1225) is any communication or I / O protocol or standard (eg, Ethernet) for a network for communicating information between connected components, devices, and networks in the computer environment 900. (Registered trademark), 802.11x, universal system bus, WiMAX, modem, cellular network protocol, and the like), but not limited thereto.
  • the network (950) may be any network (eg, the Internet, a local area network, an area network, a telephone network, a cellular network, a satellite network) or a combination thereof.
  • the computing device (1205) may be used and communicated using computer usable or computer readable media including temporary and non-temporary media.
  • Temporary media include transmission media (eg, metal cables, optical fibers), signals, carrier waves, and the like.
  • Non-transitory media include magnetic media (eg, disks and tapes), optical media (eg, CD-ROM, digital video disc, Blu-ray disc), semiconductor media (eg, RAM, ROM, flash memory, solid state storage) , And other non-volatile storage devices or memories.
  • the computing device (1205) may be used to implement techniques, methods, applications, processes, or computer-executable instructions in some computing environment embodiments.
  • Computer-executable instructions can be retrieved from temporary media, stored on non-transitory media, and retrieved therefrom.
  • Executable instructions may consist of one or more of programming, scripting, and machine language (eg, C, C ++, C #, Java, Visual Basic, Python, Perl, JavaScript, etc.).
  • the processor (1210) may execute under any operating system (OS) (not shown) in a native or virtual environment.
  • the generation unit (1285), the analytic graphics unit (1290), and the inter-unit communication mechanism (1295) communicate with the OS and other applications (not shown) to communicate with each other.
  • the heuristic index generation unit (1275), the similarity determination unit (1280), the enterprise data graph generation unit (1285), and the analytic graphics unit (1290) may include one or more of the ones shown in FIGS. Processing can be implemented.
  • the described units and elements can be changed in design, function, configuration, or implementation, and are not limited to the content of the description.
  • the API unit (1260) receives one or more execution instructions and receives one or more other units (eg, heuristic index generation unit (1275), similarity determination unit (1280), enterprise May communicate with a data graph generation unit (1285), an analysis graphics unit (1290), and a query unit (1297), for example, a heuristic index is generated via a heuristic index generation unit (1275); When done, a heuristic index may be provided to the similarity determination unit (1280) to determine the similarity between the different entities. 285) may generate the enterprise data graph, the similarity determination unit (1280) may provide the similarity data, and the enterprise data graph generation unit (1285) may further analyze the graphics (1290). The data analysis graphic may be generated and displayed using the output unit (1270).
  • the logical unit (1255) controls the information flow between the units and includes an API unit (1260), an input unit (1265), an output unit (1270), a heuristic index generation unit (1275), A similarity determination unit (1280), an enterprise data graph generation unit (1285), and an analysis graphics unit (1290) are included.
  • the flow or implementation of one or more processes can be controlled by the logical unit (1255) alone or in conjunction with the API unit (1260).
  • the query unit (1297) executes a query in each data repository in cooperation with the API unit (1260), the logical unit (1255), and the similarity determination unit (980).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Fuzzy Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention efficiently associates fields for conducting a data analysis across the boundary of a plurality of data sources differing in design, and responds to various analyses. The present invention adds an index to the field of each of a plurality of data stores, determines the level of similarity between the fields, and generates data in graphical form (enterprise data graph) such that fields determined to have high similarity constitute a node. A feature such as a morphological analysis, etc., provided by a search engine may be used for the determination of similarity. Use of the enterprise data graph makes it possible to respond to various inquiry requests across the boundary between a plurality of data stores.

Description

異種データソース混在環境におけるフィールド間の関係性の自動的発見のための方法、プログラム、および、システムMethod, program, and system for automatic discovery of relationships between fields in a heterogeneous data source mixed environment
本願発明は、データ分析するための方法、プログラム、および、システムに関し、より詳細には、異種データソース混在環境におけるフィールド間の関係性を自動的に発見し、対応付けるための方法、プログラム、および、システムに関する。 The present invention relates to a method, a program, and a system for analyzing data, and more particularly, a method, a program, and a method for automatically discovering and associating relationships between fields in a heterogeneous data source mixed environment. About the system.
今日の企業は、複数の異なるタイプのデータソースにデータを分散している。たとえば、企業の各部門(販売、サービス、出荷など)に独自のデータソースがある場合もある。一方で、報告や分析のために異なるデータソースのデータを統合する必要性が高まっている。ここで、データソースとは、データの保管および提供を行なう技術の総称であり、典型的にはデータベースだが、これに限定されない。データソースの例については後述する。データソースは、文脈によってはデータ・リポジトリ、データストア、データ・ストレージ等とも呼ばれる Today's enterprises distribute data across several different types of data sources. For example, each department of a company (sales, service, shipping, etc.) may have its own data source. On the other hand, there is a growing need to integrate data from different data sources for reporting and analysis. Here, the data source is a general term for technologies for storing and providing data, and is typically a database, but is not limited thereto. An example of the data source will be described later. Data sources are also called data repositories, data stores, data storage, etc. in some contexts
しかしながら、従来システムでは、データがどこに位置するか、複数のデータソース内のフィールドが互いにどのように関係しているかを判断することが困難であった。たとえば、同じモデルの製品であっても、営業部門のデータベースとサービス部門のデータベースとで製品コードが異なることがあった。異なるデータソースにおいて、関連したデータのフィールド名が異なることもあった。異なるデータソース間のフィールドを対応させることに意味がないこともあった。さらに、各データソースが、しばしば別のデータ設計者によって設計された異なるデータモデルを有することがあった。加えて、データソース内のデータはクリーンであるとは限らない(たとえば、データの欠損、不正確なデータ、形式の誤りがあることがある)。また、データソースによって同じ入力項目が異なる形式で保管されていることもある。企業内のデータ量がテラバイトからペタバイト級になることを考えると、従来システムでは、異なるデータソース内のテーブル(エンティティ)やフィールド間の関係を容易に判断できない場合が多かった。 However, in the conventional system, it is difficult to determine where the data is located and how the fields in the plurality of data sources are related to each other. For example, even for products of the same model, the product code may differ between the sales department database and the service department database. In different data sources, the field names of related data may be different. Sometimes it was meaningless to map fields between different data sources. In addition, each data source often has a different data model designed by another data designer. In addition, the data in the data source is not always clean (eg, there may be missing data, inaccurate data, or incorrect formatting). The same input items may be stored in different formats depending on the data source. Considering that the amount of data in a company changes from terabytes to petabytes, the conventional system often cannot easily determine the relationship between tables (entities) and fields in different data sources.
このような問題を解決するための技術として、複数のデータソースを組み合わせて仮想データベースを構築するためのEII(Enterprise Information Integration)と呼ばれる技術が知られている(たとえば、特許文献1、非特許文献1)が、設計が異なるデータソース間でフィールドの対応付けを行なうことは依然として困難であり、十分な効果を発揮できていなかった。 As a technique for solving such a problem, a technique called EII (Enterprise Information Integration) for constructing a virtual database by combining a plurality of data sources is known (for example, Patent Document 1, Non-Patent Document). 1), however, it is still difficult to associate fields between data sources with different designs, and sufficient effects have not been achieved.
特許公開公報 特開2000-222430Patent publication gazette JP2000-222430
設計の異なる複数のデータソース間を横断してデータ分析を行なうためのフィールド間の関連づけを効率的に行なう方法、プログラム、および、システムを提供する。 A method, a program, and a system for efficiently performing association between fields for performing data analysis across a plurality of data sources having different designs are provided.
本願発明は、複数のデータストア内のデータを分析する方法であって、前記複数のデータストア内のテーブル内の複数のフィールド内の文字列の集合から重複を排除するステップと、前記重複を排除した文字列を転置インデックスに保存するステップと、前記転置インデックスに保存された文字列間の類似性を判定するステップと、前記判定された文字列間の類似性に基づいて前記複数のフィールド間の類似性を判定するステップと、前記複数のフィールド間の類似性が高いと判定されたフィールドを含むテーブルをノードとして類似関係をエッジで表現したグラフ形式データを生成するステップとを含むコンピューターにより実行される方法を提供することで前記課題に対応する。 The present invention is a method for analyzing data in a plurality of data stores, the step of eliminating duplication from a set of character strings in a plurality of fields in a table in the plurality of data stores, and the elimination of the duplication A stored character string in a transposed index, a step of determining similarity between the character strings stored in the transposed index, and a plurality of fields based on the determined similarity between the character strings. Executed by a computer including a step of determining similarity and a step of generating graph-format data in which the similarity relationship is expressed by an edge using a table including fields determined to have high similarity between the plurality of fields as a node. This method is addressed by providing a method.
また、本願発明は、前記転置インデックスに保存された文字列間の類似性を判定するステップは、さらに、前記複数のフィールド内の文字列に形態素解析を適用して分割するステップと、前記文字列間のコサイン類似度を求めるステップと、前記コサイン類似度にロジステック関数を適用するステップとを含む段落0008に記載の方法を提供することで前記課題に対応する。 According to the present invention, the step of determining the similarity between the character strings stored in the transposed index further includes a step of dividing the character strings in the plurality of fields by applying morphological analysis, and the character strings This problem is addressed by providing a method as described in paragraph 0008, including the step of obtaining a cosine similarity between and applying a logistics function to the cosine similarity.
また、本願発明は、前記転置インデックスに保存された文字列間の類似性を判定するステップは、さらに、前記複数のフィールド内の文字列の集合を一時的テーブルに保存するステップと、前記テーブルに自然結合演算を適用するステップと、前記テーブル間の類似度を計算するステップとを含む段落0008に記載の方法を提供することで前記課題に対応する。 In the present invention, the step of determining the similarity between the character strings stored in the transposed index further includes a step of storing a set of character strings in the plurality of fields in a temporary table; The problem is addressed by providing the method of paragraph 0008 including the step of applying a natural join operation and the step of calculating the similarity between the tables.
また、本願発明は、さらに、前記複数のデータストア内のテーブル内の複数のフィールド内のデータの属性に基づいて前記フィールド間の類似性を判定するステップを含み、前記属性は、濃度、個別値の数、ヒストグラムの境界、ヌル値の数、または、非ヌル値の数のいずれかひとつ以上である段落0008、段落0009、または、段落0010に記載の方法を提供することで前記課題に対応する。 In addition, the present invention further includes a step of determining similarity between the fields based on attributes of data in a plurality of fields in a table in the plurality of data stores, wherein the attributes include concentrations, individual values, and the like. The method described in Paragraph 0008, Paragraph 0009, or Paragraph 0010, which is any one or more of the number of sigma, the boundary of the histogram, the number of null values, or the number of non-null values, addresses the above problem. .
また、本願発明は、段落0008、段落0009、段落0010、または、段落0011に記載の方法で作成された前記グラフ形式データを使用した、コンピューターにより実行される方法であって、第一のデータストア内の第一のテーブルの第一のフィールドに対するクエリーを受信するステップと、前記グラフ形式データに基づいて前記第一のフィールドに類似する第二のフィールドを識別するステップと、前記第二のフィールドと前記第二のフィールドを含む第二のテーブルと前記第二のテーブルを含む第二のデータストアとのいずれかひとつ以上を表示するステップとを含む方法を提供することで前記課題に対応する。 The invention of the present application is a computer-implemented method using the graph format data created by the method according to paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, wherein the first data store Receiving a query for a first field of a first table of the first table, identifying a second field similar to the first field based on the graph-format data, and the second field; The problem is addressed by providing a method including a step of displaying at least one of a second table including the second field and a second data store including the second table.
また、本願発明は、段落0008、段落0009、段落0010、または、段落0011に記載の方法で作成された前記グラフ形式データを使用した、コンピューターにより実行される方法であって、第一のデータストアに関する情報を表示するステップと、前記第一のデータストア内の第一のテーブルの第一のフィールドに対するクエリーを受信するステップと、前記グラフ形式データに基づいて前記第一のフィールドに類似する第二のフィールドを識別するステップと、前記第二のフィールドを含む第二のデータストアに関する情報を表示するステップと、前記クエリーに応じて前記第一のデータストアに関する情報の表示と前記第二のデータストアに関する情報の表示とを並列的に更新するステップとを含む方法。 The invention of the present application is a computer-implemented method using the graph format data created by the method according to paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, wherein the first data store Displaying information about, receiving a query for a first field of a first table in the first data store, and second similar to the first field based on the graph-format data Identifying information on the first data store in response to the query, and displaying information relating to the second data store including the second field, and displaying the information relating to the first data store in response to the query. And updating the display of information about in parallel.
また、本願発明は、段落0008、段落0009、段落0010、または、段落0011に記載の方法で作成された前記グラフ形式データを使用したコンピューターにより実行される方法であって、第一のデータストア内の第一のテーブルの第一のフィールドに対するクエリーを受信するステップと、前記グラフ形式データに基づいて前記第一のフィールドに類似する第二のフィールドを識別するステップと、前記第一のデータストアに対する前記クエリーの結果と、前記第二のフィールドを含む第二のテーブルを含む第二のデータストアに対する前記クエリーの結果とを組み合わせて同一画面上に表示するステップとを含む方法を提供することで前記課題に対応する。 The invention of the present application is a method executed by a computer using the graph format data created by the method described in paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, and is stored in the first data store. Receiving a query for a first field of the first table of the first table, identifying a second field similar to the first field based on the graph-format data, and for the first data store Combining the query result with the query result for a second data store including a second table including the second field and displaying on the same screen. Respond to challenges.
また、本願発明は、段落0008、段落0009、段落0010、または、段落0011に記載の方法で作成された前記転置インデックスを使用したコンピューターにより実行される方法であって、第一のデータストアに関する情報を表示するステップと、
前記第一のデータストア内の第一のテーブルの第一のフィールドに対するクエリーを受信するステップと、前記グラフ形式データに基づいて前記第一のフィールドに類似する第二のフィールドを識別するステップと、前記第二のフィールドを含む第二のデータストアに関する情報を表示するステップと、前記クエリーに応じて前記第一のデータストアに関する情報の表示と前記第二のデータストアに関する情報の表示とを並列的に更新するステップとを含む方法を提供することで前記課題に対応する。
Further, the present invention is a method executed by a computer using the transposed index created by the method described in paragraph 0008, paragraph 0009, paragraph 0010, or paragraph 0011, wherein the information about the first data store A step of displaying
Receiving a query for a first field of a first table in the first data store; identifying a second field similar to the first field based on the graphical data; Displaying information related to the second data store including the second field, displaying information related to the first data store in response to the query, and displaying information related to the second data store in parallel To address the above-mentioned problem.
設計の異なる複数のデータソース間を横断してデータ分析を行なうためのフィールド間の関連づけを効率的に行なう方法、プログラム、および、システムが提供される。 Provided are a method, a program, and a system for efficiently performing association between fields for performing data analysis across a plurality of data sources having different designs.
エンタープライズ環境における多様なデータソースの例を表わす図である。FIG. 3 is a diagram illustrating examples of various data sources in an enterprise environment. 本願発明に係る実施例のデータ管理分析装置によって実行される、エンタープライズ・データ・グラフ作成のプロセスを表わす図である。It is a figure showing the process of enterprise data graph preparation performed by the data management analysis apparatus of the Example which concerns on this invention. 本願発明に係るテーブルのフィールド間の類似性を判断するアルゴリズムの第一の例である。It is a 1st example of the algorithm which judges the similarity between the fields of the table concerning this invention. 本願発明に係るテーブルのフィールド間の類似性を判断するアルゴリズムの第二の例である。It is a 2nd example of the algorithm which judges the similarity between the fields of the table which concerns on this invention. 本願発明に係るエンタープライズ・データ・グラフの例の模式的表現図である。It is a typical expression figure of the example of an enterprise data graph concerning the invention in this application. 本願発明に係る実施例におけるエンタープライズ・データ・グラフの画面表示例を表わす図である。It is a figure showing the example of a screen display of the enterprise data graph in the Example which concerns on this invention. 本願発明に係る実施例のデータ管理分析装置によって実行される、エンタープライズ・データ・グラフを使用したクエリーの第一の実施例のプロセスを表わす図である。It is a figure showing the process of the 1st Example of the query using an enterprise data graph performed by the data management analysis apparatus of the Example which concerns on this invention. 本願発明に係る実施例のデータ管理分析装置によって実行される、エンタープライズ・データ・グラフを使用したクエリーの第二の実施例のプロセスを表わす図である。It is a figure showing the process of the 2nd Example of the query using an enterprise data graph performed by the data management analyzer of the Example which concerns on this invention. 本願発明に係る実施例のデータ管理分析装置によって実行される、エンタープライズ・データ・グラフを使用したクエリーの第三の実施例のプロセスを表わす図である。It is a figure showing the process of the 3rd Example of the query using an enterprise data graph performed by the data management analysis apparatus of the Example which concerns on this invention. 本願発明に係る実施例のデータ管理分析装置によって実行される、エンタープライズ・データ・グラフを使用したクエリーの第四の実施例のプロセスを表わす図である。It is a figure showing the process of the 4th Example of the query using an enterprise data graph performed by the data management analyzer of the Example which concerns on this invention. 本願発明に係るデータ管理分析装置の実施例の機能的概略を表わす図である。It is a figure showing the functional outline of the Example of the data management analyzer which concerns on this invention. 本願発明に係る実施例での使用に適したコンピューター・デバイスを含むコンピューティング環境の例を示す図である。FIG. 1 illustrates an example of a computing environment that includes a computer device suitable for use in an embodiment according to the present invention.
発明の詳細な説明Detailed Description of the Invention
以下に図を用いて本願発明に係る実施例を説明する。明確化のために詳細は省略されている。図はすべて例示である。 Embodiments according to the present invention will be described below with reference to the drawings. Details are omitted for clarity. All figures are exemplary.
図1に、エンタープライズ環境(100)における多様なデータソースの例を示す。エンタープライズ環境(100)で使用されるデータは多様なタイプのデータソース(105-135)から提供される。データソースのタイプの一つに検索エンジン(105)がある。検索エンジン(105)(たとえば、SOLRやELASTICSEARCH)は、トークナイザーやn-グラムによって分割された文字列を用いた高速検索のための転置インデックスを使用しており、テキストデータの保存や検索に有用である。転置インデックスは、複数の文書(107)にマップされた用語やキーワードを保存する。各文書は、一つ以上の属性値を含む一つのレコードに対応してよい。各レコードのフィールドの一部には検索の効率化のためにインデックスが付されていてよい。 FIG. 1 shows examples of various data sources in an enterprise environment (100). Data used in the enterprise environment (100) is provided from various types of data sources (105-135). One type of data source is a search engine (105). Search engines (105) (eg, SOLR and ELASTICSEARCH) use a transposed index for high-speed search using character strings divided by tokenizers and n-grams, and are useful for storing and searching text data It is. The inverted index stores terms and keywords mapped to a plurality of documents (107). Each document may correspond to one record including one or more attribute values. Some fields of each record may be indexed for efficient search.
他のデータソースのタイプとしてリレーショナル・データベース(リレーショナル・データベース管理システム(RDBMS)とも呼ばれる)(110)がある。リレーショナル・データベース(110)はデータをテーブル(113)に保存し、各テーブルはシステム中のエンティティを表現し、特定のフィールド(アトリビュートとも呼ばれる)がエンティティ間の関係を表わす。関係は、1対1、1対多、または、多対多であってよい。RDBMSは構造化照会言語(SQL)により照会することができ、構造化データの保存と照会のための堅牢で成熟したメカニズムを提供する。RDBMSは、ディスクからの効率的な読み取りとリレーショナル・データベース(110)へのデータ挿入のために、典型的にはBツリーのデータ構造を使用する。Bツリーは、対数時間(log N)で検索、挿入、削除が行なえるようデータをソートして維持するデータ構造である。 Another type of data source is a relational database (also referred to as a relational database management system (RDBMS)) (110). The relational database (110) stores data in tables (113), each table representing an entity in the system, and specific fields (also called attributes) representing relationships between entities. The relationship may be one to one, one to many, or many to many. RDBMS can be queried by Structured Query Language (SQL) and provides a robust and mature mechanism for storing and querying structured data. RDBMS typically uses a B-tree data structure for efficient reading from disk and inserting data into a relational database (110). A B-tree is a data structure that sorts and maintains data so that it can be searched, inserted, and deleted in logarithmic time (log N).
他のデータソースのタイプとしてカラムナー・データベース(115)がある。カラムナー・データベース(115)は、リレーショナル・データベース(110)と類似しているが、データを行指向の構造ではなく、カラム(列)(118)指向で保存する点に特徴がある。カラムナー・データベース(115)では、多数の行に少数のカラム(118)を有するデータの効率的な検索処理が可能である。多くの分析型照会では、一部のカラム(118)に対して集計処理を行なうことが必要であり、このような場合に、カラムナー・データベース(115)は保存と検索の効率性の点で有利である。カラム指向の保存では、特定のカラム(118)を読むためのディスク読み取り回数が少なくてすむためである。AMAZON REDSHIFTはカラムナー・データベース(115)の一例であり、APACHE PARQUET はカラム指向ファイル形式の一例である。 Another type of data source is the columner database (115). The columnar database (115) is similar to the relational database (110), but is characterized by storing data in a column (118) orientation rather than in a row oriented structure. The columner database (115) enables efficient search processing of data having a small number of columns (118) in a large number of rows. Many analytical queries require that some columns (118) be aggregated, in which case the columner database (115) is advantageous in terms of storage and retrieval efficiency. It is. This is because column-oriented storage requires fewer disk readings for reading a specific column (118). AMAZON REDSHIFT is an example of a columnar database (115), and APACHE PARQUET is an example of a column-oriented file format.
他のデータソースのタイプとしてキー・バリュー・データベース(キー・バリュー・ストアとも呼ばれる)(120)がある。キー・バリュー・ストア(120)は、連想アレイ(123)を保管、検索、管理するために設計されたデータ保管方式を使用する。連想アレイ(123)は、一般的にはディクショナリーまたはハッシュと呼ばれるデータ構造である。キー・バリュー・ストア(120)(たとえば、RIAK、REDIS、MEMCACHE)では、キーに基づいて高速なデータの検索が可能である。キー・バリュー・ストア(120)は、ディスクまたはメモリー上のマップデータ構造として実装されることもある。キー・バリュー・ストア(120)はシリアライザビリティや結果整合性に基づく整合性モデルに従うことができる。キー・バリュー・ストア(120)へのキーによるアクセスはO(1)のオーダー(定数)の複雑性で実行できる。 Another type of data source is a key-value database (also called key-value store) (120). The key value store (120) uses a data storage scheme designed to store, retrieve and manage the associative array (123). The associative array (123) is a data structure commonly referred to as a dictionary or hash. In the key / value store (120) (for example, RIAK, REDIS, MEMCACHE), high-speed data search is possible based on the key. The key value store (120) may be implemented as a map data structure on disk or memory. The key value store (120) can follow a consistency model based on serialization and eventual consistency. Key access to the key value store (120) can be executed with O (1) order (constant) complexity.
他のタイプのデータソースのタイプとしてウェブ・サービス(125)がある。ウェブ・サービス(125)は、エンタープライズ環境(100)内外の多様なデータ・システムに対する共通の統合インターフェースとして機能する。たとえば、ほとんどのソーシャル・メディアのデータへのアクセスは、REST(Representational State Transfer)API(アプリケーション・プログラミング・インターフェース)を経由して行なわれる。外部のクラウドベースのアプリケーション(160)(Salesforce.com、Google Analyticsなど)もREST API経由でアクセス可能である。ウェブ・サービス(125)は、サービスプロバイダが格納したデータに対するリアルタイムの要求-応答型アクセスを実現する。 Another type of data source is a web service (125). The web service (125) serves as a common integration interface to various data systems inside and outside the enterprise environment (100). For example, most social media data is accessed via REST (Representational State Transfer) API (application programming interface). External cloud-based applications (160) (Salesforce.com, Google Analytics, etc.) can also be accessed via the REST API. The web service (125) provides real-time request-response access to data stored by the service provider.
他のタイプのデータソースのタイプとして、エンタープライズ環境内の共有ストレージに保管されているファイルシステムがある。ファイルシステムの中には、CSV/Excelなどのような構造化されたファイルデータに加えて、提案書、設計書などの非構造のデータも多く存在する。ファイルが保管されるストレージは、一般的な共有フォルダに加えて他の文書管理システム内に存在でもよい。 Another type of data source is a file system stored on shared storage in an enterprise environment. In the file system, in addition to structured file data such as CSV / Excel, there are many unstructured data such as proposals and design documents. The storage in which the file is stored may exist in another document management system in addition to a general shared folder.
他のタイプのデータソースのタイプとして、リアルタイムで生成または受信されたライブデータを提供するライブ・ストリーミング・データソース(130)がある。ライブデータは、ソケット(KinesisやKafkaなど)からのリアルタイム・ストリームから提供されることが多い。ストリーム処理はラムダ・アーキテクチャ(バッチ処理とリアルタイム対話型処理)の二重の目的を果たすことができる。後者では、遅延時間の要件が1秒未満であることもある。ストリーム・イベントが欠落した場合の再処理が行なわれるケースもある。 Another type of data source is a live streaming data source (130) that provides live data generated or received in real time. Live data is often provided from a real-time stream from a socket (such as Kinesis or Kafka). Stream processing can serve the dual purpose of lambda architecture (batch processing and real-time interactive processing). In the latter case, the delay requirement may be less than 1 second. In some cases, reprocessing is performed when a stream event is missing.
他のタイプのデータソースのタイプとして「ビッグデータ」(103)がある。ビッグデータのデータソースは、Hadoopや Sparkなどのクラスター化された環境に大量の(TB(テラバイト)単位以上)のデータを保存する。典型的にはビッグデータはSQL的な照会言語を提供する。リアルタイムモデル(たとえば、SPARKSQLやImpala)または非同期モデル(たとえば、HIVE)が採用されることもある。 Another type of data source is “big data” (103). Big data data sources store large amounts of data (more than terabytes) in a clustered environment such as Hadoop or Spark. Big data typically provides a SQL-like query language. A real-time model (eg, SPARKSQL or Impala) or an asynchronous model (eg, HIVE) may be employed.
他のタイプのデータソースのタイプにデータマート(104)がある。データマートは、オンライン分析処理(OLAP)または分析サービス(たとえば、SQL Server Analysis Services(SSAS))の分析用キューブであることが多い。データマート(140)を照会するために分析クエリー(たとえば、SQLベース)が発行されることがある。これらの分析クエリーは、事前集計済のデータであっても、洗浄済のデータであってもよく、様々なレポートのニーズに合わせて使用される。 Another type of data source is the data mart (104). Data marts are often analytical cubes for online analytical processing (OLAP) or analysis services (eg, SQL Server Analysis Services (SSAS)). An analytical query (eg, SQL-based) may be issued to query the data mart (140). These analytical queries may be pre-aggregated data or cleaned data and are used to meet various reporting needs.
他のタイプのデータソースのタイプに、ビジネス・オブジェクト層(145)がある。ビジネス・オブジェクト(たとえば、SAP、Infomatica)は、ビジネス・ユーザーがビジネスインテリジェンスのデータを閲覧、分類、分析することを可能にするフロントエンド・アプリケーションであることが多い。これらのフロントエンド・アプリケーション層が、特定のAPIを使用して直接照会されてもよい。 Another type of data source type is the business object layer (145). Business objects (eg, SAP, Infomatica) are often front-end applications that allow business users to view, categorize and analyze business intelligence data. These front-end application layers may be queried directly using specific APIs.
複数のタイプのデータソース(105-145)を、有線接続や無線接続のネットワーク(150)を介して互いに通信可能に接続してもよい。さらに、データ管理分析装置(155)をネットワーク(150)に接続してもよい。データ管理分析装置(155)は、コンピューター(たとえば、ラップトップまたはデスクトップ)、モバイル・デバイス(たとえば、スマートフォン、ウェアラブル・デバイス(たとえば、スマートウォッチ)、および、サーバー・コンピューターであってよいが、これらに限定されない。データ管理分析装置(155)は、末尾の図9に示すようなコンピューティング環境(900)を有していてもよい。  A plurality of types of data sources (105-145) may be communicably connected to each other via a wired connection or a wireless connection network (150). Furthermore, the data management analyzer (155) may be connected to the network (150). The data management analyzer (155) may be a computer (eg, laptop or desktop), a mobile device (eg, a smartphone, a wearable device (eg, smartwatch), and a server computer. The data management analysis device (155) may include a computing environment (900) as shown in FIG.
上記の課題に対応するために、データ管理分析装置(155)は、以降に示すデータ分析のためのプロセスを実行することができる。実施例は、主に、リレーショナル・データベースのデータソースを例に使用しているが、他のタイプのデータソースにも適用可能である。 In order to deal with the above problem, the data management analyzer (155) can execute the process for data analysis described below. The embodiment mainly uses a relational database data source as an example, but is applicable to other types of data sources.
図2に、データ管理分析装置(155)が実行する、異なるデータソース間でフィールドの類似判定を行ない、エンタープライズ・データ・グラフを生成するプロセスの例(200)示す。ここで、エンタープライズ・データ・グラフとは、複数のデータソース間の関係、ひとつ以上のデータソース内の複数のデータモデル間の関係、または、ひとつ以上のデータソースに保管されたエンティティ間の関連性を表現したグラフである。以降の例では、エンティティ間の関係を表わすエンタープライズ・データ・グラフを説明するが、同様の考え方はデータソースやデータモデル間の関係に対しても適用される。なお、エンティティとは、データベース(データソース)により表現される現実世界の物のことを指し、リレーショナル・データベースではテーブルまたはビュー(仮想的テーブル)に相当する(以下の説明では、エンティティとテーブルは同義として扱い、テーブルにはビューを含むものとする)。また、フィールドとはテーブル中の列(カラム)のことを指す。 FIG. 2 shows an example (200) of a process executed by the data management / analysis apparatus (155) to determine the similarity of fields between different data sources and generate an enterprise data graph. Here, an enterprise data graph is a relationship between multiple data sources, a relationship between multiple data models within one or more data sources, or a relationship between entities stored in one or more data sources. Is a graph expressing In the following examples, enterprise data graphs representing relationships between entities will be described, but the same idea applies to relationships between data sources and data models. An entity refers to a real-world thing represented by a database (data source) and corresponds to a table or view (virtual table) in a relational database (in the following description, an entity and a table are synonymous). And the table includes a view). A field refers to a column in the table.
(205)複数のデータソースの各データソース中の各テーブルの文字列形式フィールドから単語を抽出するためのヒューリスティック・インデックスを準備する。ここで、ヒューリスティクス・インデックスとは、データソース中のテーブルの文字列形式フィールドに含まれるテキスト中の意味のある単語を抽出し、単語がどのデータソースのどのテーブルのどのフィールドにどの程度の頻度で存在するかを指し示すためのインデックスであり、Luceneなどの検索エンジンが提供する転置インデックス機能を使用して実装することができる。 (205) A heuristic index for extracting words from the character string format field of each table in each data source of the plurality of data sources is prepared. Here, the heuristic index is used to extract meaningful words in text contained in the string format field of the table in the data source, and how often the word is in which field of which table of which data source. This index is used to point to whether or not it exists, and can be implemented using the transposed index function provided by search engines such as Lucene.
(210)次に、類似性判定アルゴリズムにより、ヒューリスティクス・インデックスに格納された文字列形式フィールド間の類似性を判定する。具体的アルゴリズムの実施例のうちの2種類を以下に説明する。 (210) Next, the similarity between the character string format fields stored in the heuristic index is determined by the similarity determination algorithm. Two types of specific algorithm examples are described below.
図3に類似性判定アルゴリズムの第一の例を示す。この例では、フィールドに含まれる文字列の類似性で関連性を判定する。完全な一致ではなく、部分一致やトークナイズによる揺らぎなどを考慮した一致判定を行なう点に特色がある。たとえば、データソースによって同じ用語に対する表現の相違(たとえば、「車外装置」と「車外用装置」、「株式会社特許」と「(株)特許」)があっても、類似するフィールドを発見できる点に優位性がある。アルゴリズムの第一の例は以下のステップから成る。(1)各テ-ブルの文字列型フィールドを識別し、フィールド毎に保持される値を全て取得する。(2)取得した値集合に対してDISTINCT演算を適用し、重複除去を行なう(値の「件数」ではなく「種類」に着目した分析を行なう)。(3)重複除去された値集合を、形態素解析が可能な検索エンジン(たとえば、Apache Lucene / Solr) にフィードする。文字列に対して形態素解析器によりトークン分解、または n-gram 処理よりシーケンス分割を施す。文字列をどのように分割するかは、ユーザーのニーズに応じて検索エンジン側のスキーマを変更させることで設定することができる。検索エンジンのインデックス構造体には、Bag of Wordsを溜め込んだ索引が形成される。フィードした一件の文字列が、1ドキュメントに相当する。(4)フィールド間のコサイン類似度を求める。(5)コサイン類似度は0から1の間の実数値であるが、算出値と人間が感じる類似感には非線形な関係がある為、ロジスティック関数を適用する。0.5 近辺の変動鋭敏性を高め、0.0近辺と1.0近辺の鋭敏性を緩めることが好ましい。ロジスティック関数のパラメータは、設定ファイルで変更可能とすることが好ましい。(6)算出したフィールド間の類似度値に対して、所定の閾値に基づいてHigh / Medium / Low / None 等の属性を設定することが好ましい。 FIG. 3 shows a first example of the similarity determination algorithm. In this example, the relevance is determined by the similarity of the character strings included in the field. The feature is that the matching is determined in consideration of partial matching and fluctuation due to tokenization, not perfect matching. For example, even if there are differences in expressions for the same term depending on the data source (for example, “External device” and “External device”, “Co., Ltd.” and “Patent”), similar fields can be found. Has an advantage. The first example algorithm consists of the following steps: (1) The character string type field of each table is identified, and all values held for each field are acquired. (2) A DISTINCT operation is applied to the acquired value set to eliminate duplication (analysis focusing on “type” instead of “number of values”). (3) The duplicated value set is fed to a search engine that can perform morphological analysis (for example, Apache Lucene / 形態 Solr). The character string is divided into sequences by token decomposition or n-gram processing by a morphological analyzer. How to divide the character string can be set by changing the schema on the search engine side according to the user's needs. In the search engine index structure, an index containing Bag of Words is formed. One fed character string corresponds to one document. (4) Find cosine similarity between fields. (5) Although the cosine similarity is a real value between 0 and 1, a logistic function is applied because there is a non-linear relationship between the calculated value and the similarity felt by humans. It is preferable to increase the fluctuation sensitivity around 0.5 mm and loosen the sensitivity around 0.0 and 1.0. It is preferable that the parameters of the logistic function can be changed in the setting file. (6) It is preferable to set an attribute such as High / Medium / Low / None based on a predetermined threshold for the calculated similarity value between fields.
図4に類似性判定アルゴリズムの第二の例を示す。この例では、フィールドに文字列が含まれている度合で関連性を判定する。曖昧な揺らぎの吸収は行わず、完全一致での判定を行う方式であり、以下のステップから成る。(1)各データモデルから文字列型フィールドを識別し、フィールド毎に保持される値を全て取得する。(2)取得した値集合に対してDISTINCT演算を適用し、重複除去を行なう(値の「件数」ではなく「種類」に着目する)。(3)重複除去された値集合を、1列×n行のテンポラリテーブルとして保持する。テンポラリー・テーブルにはインメモリDBMSを使用してよい。(4)上記ステップ3で生成された1列×n行のテンポラリテーブル群において、相互に結合演算(自然結合)を行なう。この結果セットの行数と元の2テーブルの各レコード数を比較する。(5)比較方法として、Dice係数、Simpson係数、Jaccard係数の3手法を適用し、各々の類似度を求める。3つの値は、重み付けした上で合成し、0から1の範囲を値域とする実数値(類似度)を算出する。(6)全テーブルの組み合わせで類似度が算出できた段階で、1列×n行のテンポラリテーブル群を全て破棄することが好ましい。(7)算出したフィールド間の類似度値に対して所定の閾値に基づいてHigh / Medium / Low / None 等の属性を設定することが好ましい。 FIG. 4 shows a second example of the similarity determination algorithm. In this example, the relevance is determined based on the degree to which a character string is included in the field. This method does not absorb ambiguous fluctuations, and makes a determination with a perfect match, and includes the following steps. (1) A character string type field is identified from each data model, and all values held for each field are acquired. (2) A DISTINCT operation is applied to the acquired value set to eliminate duplication (focus on “type” instead of “number of values”). (3) The duplicated value set is held as a temporary table of 1 column × n rows. An in-memory DBMS may be used for temporary tables. (4) In the temporary table group of 1 column × n rows generated in step 3 above, a join operation (natural join) is performed. The number of rows in this result set is compared with the number of records in the original two tables. (5) As a comparison method, three methods of a Dice coefficient, a Simpson coefficient, and a Jaccard coefficient are applied, and respective similarities are obtained. The three values are combined after weighting, and a real value (similarity) having a range from 0 to 1 is calculated. (6) It is preferable to discard all temporary table groups of 1 column × n rows at the stage where the similarity can be calculated for all the combinations of tables. (7) It is preferable to set an attribute such as High / Medium / Low / None for the calculated similarity value between fields based on a predetermined threshold.
(215)さらに、各データストアの各テーブルの各フィールド(文字列フィールドに限られない)の属性(たとえば、濃度(cardinality)、個別値数 (NDV)、ヒストグラムの範囲、ヌル値の件数、非ヌル値の件数)を収集し、保存してもよい。 (215) Further, the attributes of each field (not limited to the character string field) of each table of each data store (for example, concentration (cardinality), number of individual values (NDV), histogram range, number of null values, non-values, etc. The number of null values) may be collected and stored.
(220)生成されたヒューリックス・インデックスと収集されたフィールド属性のいずれか、または、その両方に基づいて、異なるデータストア内の各テーブルの類似性を判定する。ヒューリックス・インデックスにより判定された類似度とフィールド属性により判定された類似度を重み付け平均し、所定の閾値を超えた場合に類似すると判定してもよい。ヒューリックス・インデックスにより判定された類似度が所定の閾値を超えた場合には、フィールド属性により判定された類似度にかかわらず、類似すると判定してよい。フィールド属性により判定された類似度が所定の閾値を超えた場合には、ヒューリックス・インデックスにより判定された類似度にかかわらず、類似すると判定してよい。ヒューリックス・インデックスにより判定された類似度が所定の閾値以下の場合には、フィールド属性により判定された類似度にかかわらず、類似しないと判定してよい。フィールド属性により判定された類似度が所定の閾値以下の場合には、ヒューリックス・インデックスにより判定された類似度にかかわらず、類似しないと判定してよい。このような判定の方法や所定の閾値はユーザーがパラメーターとして設定したり、スクリプトとして記述したりできるようになっていることが好ましい。 (220) Determine the similarity of each table in the different data stores based on either or both of the generated heuristic index and the collected field attributes. The similarity determined by the heuristic index and the similarity determined by the field attribute may be weighted and averaged, and may be determined to be similar when a predetermined threshold is exceeded. When the similarity determined by the heuristic index exceeds a predetermined threshold, it may be determined that they are similar regardless of the similarity determined by the field attribute. When the similarity determined by the field attribute exceeds a predetermined threshold, it may be determined that they are similar regardless of the similarity determined by the heuristic index. If the degree of similarity determined by the heuristic index is equal to or less than a predetermined threshold, it may be determined that they are not similar regardless of the degree of similarity determined by the field attribute. When the degree of similarity determined by the field attribute is equal to or less than a predetermined threshold, it may be determined that they are not similar regardless of the degree of similarity determined by the heuristic index. It is preferable that the determination method and the predetermined threshold value can be set as parameters by the user or described as a script.
(225)判定された各フィールド間の類似性に基づいて、テーブル間の類似性を判定する。類似すると判定されたフィールドを多く含むテーブルは類似性が強いとして扱うことが好ましい。 (225) The similarity between the tables is determined based on the determined similarity between the fields. It is preferable to treat a table including many fields determined to be similar as having strong similarity.
(230)判定されたテーブル間の類似性に基づいてエンタープライズ・データ・グラフを生成する。図5に本願発明に係るエンタープライズ・データ・グラフの例の模式的表現を示す。エンタープライズ・データ・グラフのノードは、異なるデータソースに属するが、類似すると判定されたフィールドを含むテーブル(エンティティ)であり、エッジがテーブル間の類似性を表現する。類似するフィールドの数やその類似度に応じてテーブル間の類似度を設定してもよい。この例では各ノードはテーブルだが、同様の考え方でデータソースやデータモデル間の類似関係を表現してもよい。 (230) An enterprise data graph is generated based on the determined similarity between the tables. FIG. 5 shows a schematic representation of an example of an enterprise data graph according to the present invention. An enterprise data graph node is a table (entity) that includes fields that belong to different data sources but are determined to be similar, and edges represent the similarity between the tables. The degree of similarity between tables may be set according to the number of similar fields and the degree of similarity. In this example, each node is a table, but similar relationships between data sources and data models may be expressed in the same way.
(235)生成されたエンタープライズ・データ・グラフは、ユーザーのデータ間の関係の理解を高めたり、データソースを横断したクエリーを支援したりするために、画面上にグラフィック形式で表示することが好ましい。 (235) The generated enterprise data graph is preferably displayed in graphical form on the screen to enhance understanding of the relationship between the user's data and to support queries across data sources. .
図6に本願発明に係る実施例におけるエンタープライズ・データ・グラフ(600)の画面表示例を示す。図示したように、エンタープライズ・データ・グラフ(600)は、データストア(データ・リポジトリ)間の関連のマッピング処理の開始点となる開始データストア(605)(ここでは、"Complaints")の領域(610)を含んでいてよい。この領域(610)は開始データストア(605)に関する情報(たとえば、フィールドの数、および、フィールドやテーブルの内容を確認するためのリンク(607))を含んでいてもよい。この開始データストア(605)が、ユーザーから受信したクエリーに基づいて自動的に選択されてもよい。 FIG. 6 shows a screen display example of the enterprise data graph (600) in the embodiment according to the present invention. As shown in the figure, the enterprise data graph (600) is an area of a start data store (605) (here, "Complaints") that is a starting point of a mapping process between data stores (data repositories). 610). This area (610) may contain information about the starting data store (605) (eg, the number of fields and links (607) to confirm the contents of the fields and tables). This starting data store (605) may be automatically selected based on the query received from the user.
また、エンタープライズ・データ・グラフ(600)は、図2のプロセスによって、開始データストア(605)類似すると判定されたと他の複数のデータストア(620-655)との間の類似関係を図示する領域(615)も含んでいてよい。図では、開始データストア(605)(この例では、"Complaints")は、他の8つのデータストア、すなわち、"Supplier"(620)、"Blue"(625)、"Sales"(630)、"Recalls"(635)、"Investigations"(640)、"Parts"(645)、"Reviews"(650)、および、"BOM"(655)と類似すると判定されている。これらの複数データストアのテクノロジーや設計(データモデル)は同一であるとは限らず、格納されたデータの内容も完全に整合性が取れているとは限らないが、前述のフィールド間の類似性判定アルゴリズムにより、テーブル(エンティティ)やデータスストア(データ・リポジトリ)間の関係をグラフィカルに表現し、ユーザーのデータ分析作業を支援できる。 In addition, the enterprise data graph (600) is an area that illustrates similarity relationships between the plurality of data stores (620-655) determined by the process of FIG. 2 to be similar to the start data store (605). (615) may also be included. In the figure, the starting data store (605) (in this example, “Complaints”) has eight other data stores: “Supplier” (620), “Blue” (625), “Sales” (630), It is determined to be similar to “Recalls” (635), “Investigations” (640), “Parts” (645), “Reviews” (650), and “BOM” (655). The technology and design (data model) of these multiple data stores are not necessarily the same, and the contents of the stored data are not always completely consistent, but the similarity between the fields mentioned above The judgment algorithm can graphically represent the relationship between tables (entities) and data stores (data repositories), and can support user data analysis work.
さらに、エンタープライズ・データ・グラフ(600)は、ユーザーが選択したデータストア(この例では、"Supplier"(620)を選択したものとする)に類似するフィールドを有すると判定されたテーブルを含む、データストア(625-660)を示す領域(665)も含んでいてもよい。 Further, the enterprise data graph (600) includes a table determined to have fields similar to the user selected data store (in this example, “Supplier” (620) is selected). An area (665) indicating the data store (625-660) may also be included.
これらのデータストア(625-660)のいくつかは類似するフィールドを開始データリポジトリ(605)にも含んでいると判定されている。たとえば、"Blue"(625)、"Sales"(630)、"Recalls"(635)、"Investigations"(640)、"Investigations"(645)、および、”Reviews”(650)は、いずれも領域(615)と領域(665)の両方に示されている。 Some of these data stores (625-660) have been determined to also contain similar fields in the starting data repository (605). For example, “Blue” (625), “Sales” (630), “Recalls” (635), “Investigations” (640), “Investigations” (645), and “Reviews” (650) are all areas. (615) and region (665).
しかし、領域(665)に示されたデータストアのいくつかが領域(615)に示されていないこともある。この場合には、これらのデータストアが、開始データストア(605)内のテーブル内のフィールドと類似するフィールドを含まないことを意味する。さらに、領域(815)に示されているデータストアのいくつかが領域(665)に示されていないこともあり、この場合には、これらのデータストアがユーザー選択データストア(620)内のテーブル内のフィールドと類似するフィールドを含まないことを意味する。たとえば、”Call logs”(660)は領域(665)にのみ示されているので、開始データストア(605)内のテーブルのフィールドに類似するフィールドを含まない。同様に、"BOM"'(655)は領域(615)にのみ図示されているので、ユーザー選択データストア(620)内のテーブルのフィールドに類似するフィールドを含まない。 However, some of the data stores shown in region (665) may not be shown in region (615). In this case, it means that these data stores do not contain fields similar to the fields in the table in the start data store (605). In addition, some of the data stores shown in region (815) may not be shown in region (665), in which case these data stores are tables in user-selected data store (620). Means that it does not contain fields similar to those in For example, “Call log” (660) is shown only in region (665) and therefore does not include a field similar to the field in the table in start data store (605). Similarly, “BOM” ′ (655) is shown only in region (615) and therefore does not include fields similar to those in the table in user selected data store (620).
エンタープライズ・データ・グラフ(600)は、開始データストア(605)に関する情報(たとえば、フィールドの数)を提供する情報領域(670)と開始データストア(605)内のフィールドを表示するためのリンク(872)とのいずれかひとつ以上を含んでいてよい。 The enterprise data graph (600) includes an information area (670) that provides information about the starting data store (605) (eg, the number of fields) and a link to display the fields in the starting data store (605) ( 872) and one or more of them may be included.
さらに、エンタープライズ・データ・グラフ(600)は、ユーザー選択データストア(620)に関する情報(たとえば、フィールドの数)を提供する情報領域(675)とフィールドを表示するためのリンク(677)を含んでいてよい。 Further, the enterprise data graph (600) includes an information area (675) that provides information (eg, number of fields) about the user selected data store (620) and a link (677) to display the fields. May be.
さらに、エンタープライズ・データ・グラフ(600)は、開始データストア(605)とユーザー選択データストア(620)との関係に関する情報を提供する領域(680)を含むこともできる。この領域(680)には、ユーザー選択データストア(620)内のフィールドと類似すると判定された開始データストア(605)内のフィールドのリスト(685)が含まれていてよい。また、この領域(680)はユーザー選択データストア(620)内のフィールドと類似すると判定された開始データストア(605)内のフィールドを表示するためのリンク(690)を含んでいてよい。 Further, the enterprise data graph (600) may also include an area (680) that provides information regarding the relationship between the starting data store (605) and the user selected data store (620). This region (680) may include a list (685) of fields in the starting data store (605) that have been determined to be similar to fields in the user selected data store (620). The region (680) may also include a link (690) for displaying a field in the start data store (605) that has been determined to be similar to a field in the user selected data store (620).
以降では、図2のプロセスにより生成されたエンタープライズ・データ・グラフとヒューリスティクス・インデックスのいずれか、または、その両方を使用した様々なクエリー(データ照会要求)の様々な実施例を説明する。 In the following, various embodiments of various queries (data query requests) using either or both of the enterprise data graph and / or heuristic index generated by the process of FIG. 2 will be described.
図7に、出願のデータ管理分析装置(155)の実施例によって実行され得る、エンタープライズ・データ・グラフを使用したクエリーの第一の実施例(ここでは、データ・チェーンと呼ぶ)のプロセス(700)を示す。 FIG. 7 illustrates a process (700 for a first embodiment of a query using an enterprise data graph (referred to herein as a data chain) that may be performed by an embodiment of the data management and analysis apparatus (155) of the application. ).
(705)ユーザーからデータストア内の特定のテーブルのフィールドに対するクエリーを受信する。 (705) A query for a field of a specific table in the data store is received from a user.
(710)エンタープライズ・データ・グラフを使用して、クエリーの対象となったテーブルと類似する他のテーブル内のフィールドを識別する。 (710) The enterprise data graph is used to identify fields in other tables similar to the table queried.
(715)オプションとして、ヒューリスティック・インデックスに対して再度クエリーを行ない、ユーザーのクエリー対象であるフィールドの類似フィールドを識別してユーザーに表示してもよい。 (715) Optionally, the heuristic index may be re-queried to identify similar fields to the user's query target and display to the user.
(720)類似するフィールド、および、そのフィールドを含むテーブルを識別すると、ユーザーに対して確認メッセージを表示し、ユーザー入力を受け取って、データストアA以外のデータストアを表示する画面に画面表示を遷移する。この際に複数のテーブルを表示してユーザーにひとつを選択させてもよい。 (720) When a similar field and a table including the field are identified, a confirmation message is displayed to the user, the user input is received, and the screen display is changed to a screen displaying a data store other than the data store A. To do. At this time, a plurality of tables may be displayed to allow the user to select one.
(725)710または715で識別されたフィールドを使用して、ユーザーが対応するデータストアを照会し、結果を表示することができるようにする。 (725) The field identified at 710 or 715 is used to allow the user to query the corresponding data store and display the results.
この実施例は、たとえば、コールセンターで問い合わせがあった製品のシリアル番号を用いて、異なるデータストアに保存された出荷明細や生産実績のデータをたどり、分析をする場合等に有効である。この際に、通常のRDBMSのテーブル間リレーションシップのように完全にその単語が一致しなくとも、部分一致するだけで求めるデータストアやテーブルに到達することができる点に優位性がある。 This embodiment is effective when, for example, the shipment details and production performance data stored in different data stores are traced and analyzed using the serial number of the product inquired at the call center. At this time, there is an advantage in that it is possible to reach a data store or a table to be obtained only by partial matching even if the word does not completely match like a normal RDBMS table-to-table relationship.
図8に、本出願の実施例によるデータ管理分析装置(155)によって実行され得る、エンタープライズ・データ・グラフを使用したクエリーの第二の実施例(フェデレーテッド・クエリーまたは連邦型クエリーと呼ばれる)のプロセス(800)を示す。 FIG. 8 shows a second example of a query using an enterprise data graph (referred to as a federated query or a federal query) that can be executed by the data management analyzer (155) according to an embodiment of the present application. The process (800) is shown.
(805)複数のデータストアのデータを表現する画面をユーザーに表示し、ユーザーが、これらのデータストアからひとつを選択してクエリーを入力できるようにする。 (805) Display a screen representing data of a plurality of data stores to the user, and allow the user to select one of these data stores and input a query.
(810)データストアの1つに対するクエリーを受信する。 (810) Receive a query for one of the data stores.
(815)エンタープライズ・データ・グラフを使用して、810において受信されたクエリーの対象テーブルと類似する他のデータストア中のテーブルおよびそれが含むフィールドを識別する。 (815) The enterprise data graph is used to identify tables in other data stores that are similar to the subject table of the query received at 810 and the fields it contains.
(820)オプションとして、ヒューリスティック・インデックスに対して再度クエリーを行ない、ユーザーのクエリーに関連するフィールドを識別して、ユーザーに表示してもよい。 (820) Optionally, the heuristic index may be re-queried to identify and display to the user the fields associated with the user's query.
(825)識別されたフィールドおよびテーブルに基づいて、各データストアに対して並列的にクエリーを発行する。 (825) Issue queries to each data store in parallel based on the identified fields and tables.
(830)
並列的なクエリーに応答して、各データストアに対応する画面上の表示を更新する。たとえば、ユーザーがあるデータストアに対して照会期間の絞り込みを行なうクエリーを送信すると、それ以外のデータストアに対しても同等のクエリーが発行され、それぞれの画面表示を変更することができ、データ分析を行なうユーザーの利便性を向上できる。
(830)
In response to the parallel query, the display on the screen corresponding to each data store is updated. For example, if a user sends a query that narrows the query period to a certain data store, an equivalent query is issued to other data stores, and the screen display of each can be changed. User convenience can be improved.
図9に、本出願の実施例によるデータ管理分析装置(155)によって実行され得る、エンタープライズ・データ・グラフを使用したクエリーの第三の実施例(リアルタイム・データ・フュージョン、仮想統合、または、コンポジット・データモデルと呼ぶ)のプロセス(900)を示す。 FIG. 9 illustrates a third example of a query using an enterprise data graph (real-time data fusion, virtual integration, or composite) that can be performed by a data management analyzer (155) according to an embodiment of the present application. (Referred to as data model) process (900).
(905)データストア内の特定のテーブルに対するクエリーを受信する。 (905) Receive a query for a particular table in the data store.
(910)エンタープライズ・データ・グラフに基づいて、他のデータストア中のテーブルの類似フィールドを識別する。 (910) Identify similar fields of tables in other data stores based on the enterprise data graph.
(915)オプションとして、類似と識別されたフィールドの選択肢をユーザーに表示し、ユーザーに選択させてもよい。 (915) Optionally, field choices identified as similar may be displayed to the user for selection by the user.
(920)905で要求されたフィールドと910で識別されたフィールドとを組み合わせて、クエリーの結果を生成する。この実施例により、物理的に異なる2つ以上のデータストアを、単一のデータストアのように取り扱うことができる。たとえば、ある販売データが地域別に別のデータベースやテーブルに格納したいた場合に、物理統合なしにあたかも単独のテーブルとして分析をおこなうことができ、ユーザーの利便性を向上できる。 (920) The field requested in 905 and the field identified in 910 are combined to generate a query result. This embodiment allows two or more physically different data stores to be treated like a single data store. For example, when certain sales data is stored in a separate database or table for each region, the analysis can be performed as a single table without physical integration, improving user convenience.
図10に、本発明の実施例によるデータ管理および分析装置(155)によって実行され得る、ヒューリスティクス・インデックスを使用したクエリーの第四の実施例(Mμgenサーチと呼ぶ)のプロセス(1000)を示す。 FIG. 10 illustrates a process (1000) of a fourth embodiment of a query using a heuristic index (referred to as an Mμgen search) that can be performed by a data management and analysis apparatus (155) according to an embodiment of the present invention. .
(1005)ユーザーが入力した検索の対象となる文字列(キーワード)を受信する。この際に、ヒューリスティクス・インデックスを検索して、オートコンプリート(サジェスチョン)を行なってもよい。 (1005) A character string (keyword) that is a search target input by the user is received. At this time, autocomplete (suggestion) may be performed by searching the heuristic index.
(1010)受信したキーワードに基づいて、ヒューリスティクス・インデックスを検索して、そのキーワードを含むフィールドを含むテーブル、および、そのテーブルを含むリストを生成しユーザーに表示する。 (1010) A heuristic index is searched based on the received keyword, and a table including a field including the keyword and a list including the table are generated and displayed to the user.
(1015)リストからテーブルやフィールドを選択するユーザーからの入力を受信する。 (1015) Receive input from a user selecting a table or field from the list.
(1020)選択されたテーブルやフィールドに対応する画面(ダッシュボード)を表示し、ユーザーからの照会要求を受信し、結果を表示する。この実施例により、多種多様なデータストアを網羅的に検索し、特定のキーワードに関連する可能性があるデータストアを発見できる。たとえば、車のモデル名をキーワードとして入力し、関連するリコール関連情報、サプライチェーン関連情報、生産システム関連情報を横断的に検索することで、その車種のクレーム対策を迅速に行なうことができる。 (1020) A screen (dashboard) corresponding to the selected table or field is displayed, an inquiry request from the user is received, and the result is displayed. According to this embodiment, it is possible to exhaustively search a wide variety of data stores and find data stores that may be related to a specific keyword. For example, by inputting a car model name as a keyword and searching for related recall-related information, supply chain-related information, and production system-related information across the board, it is possible to quickly deal with complaints about that vehicle type.
上記に述べた実施例以外にも、エンタープライズ・データ・グラフおよびヒューリスティクス・インデックスを使用して、複数のデータストアを横断した様々なクエリーに対応可能である。たとえば、現在の検索結果の特定のフィールドに含まれるすべて(または、一部)の値を用いて、他のデータストアに対して横断的に検索することができる。本願発明に係る方法では、テーブル間の関係がヒューリスティクス・インデックス、および、エンタープライズ・データ・グラフとして抽出されているため、データストアのアクセスにシステムの多大な負荷を要することなく、データストアの数が多数にわたる大規模なシステムにおいても効率的なデータ照会・分析が可能となる。 In addition to the embodiments described above, enterprise data graphs and heuristic indexes can be used to accommodate various queries across multiple data stores. For example, all (or some) values contained in a particular field of the current search result can be used to search across other data stores. In the method according to the present invention, since the relationship between tables is extracted as a heuristic index and an enterprise data graph, the number of data stores does not require a large load on the system for accessing the data stores. Even in a large-scale system with a large number of data, efficient data inquiry and analysis becomes possible.
図11に、データ管理分析装置(155)の実施例の機能概略図を示し、図2から図10に示したプロセスやクエリーの実行方式の概要を示す。データ管理分析デバイス(155)は、ユーザーからクエリーパラメーター(Params)を受信し、クエリー結果をユーザーに提示するユーザーインターフェース層(1105)を含んでよい。ユーザーインターフェース層(1105)はクエリーを受信し、クエリー・エンジン(1110)に送信する。クエリー・エンジン(1110)は、クエリー・トランスフォーマ(1120)、クエリー・パイプライン(1125)、クライ・エグゼキュータ(1155)、リザルト・パイプライン(1160)、および、リザルト・コンバイナ(1165)を含む。 FIG. 11 shows a functional schematic diagram of an embodiment of the data management analysis apparatus (155), and shows an outline of the execution method of the processes and queries shown in FIGS. The data management analysis device (155) may include a user interface layer (1105) that receives query parameters (Params) from the user and presents the query results to the user. The user interface layer (1105) receives the query and sends it to the query engine (1110). The query engine (1110) includes a query transformer (1120), a query pipeline (1125), a cry executor (1155), a result pipeline (1160), and a result combiner (1165).
クエリー・トランスフォーマー(1120)は、クエリーエンジン(1110)内で、様々なフォーム要素を介してクエリーをユーザーインターフェース層(1105)から取得し、クエリー・トランスフォーマ(1120)に渡すために、汎用サーチ・オブジェクト(1115)に変換する。サーチ・オブジェクト(1115)はインターナル・メタデータ(1130)から検索したクエリーに関するすべてのメタデータ(データモデル、フィールド、データリポジトリ、フィルター)を含む。フェデレーテッド・サーチにおけるクエリー・トランスフォーマー(1120)の役割は、エンタープライズ・データ・グラフ(1135)を探索し、類似するフィールドを識別することである。クエリー・トランスフォーマー(1120)は、エンタープライズ・データ・グラフ(1135)に基づいてサーチ・オブジェクト(1115)を変換する。次に、サーチ・オブジェクト(1115)がクエリー・パイプライン(1125)に供給され、クエリー・パイプライン(1125)が実行すべきクエリーの順序を決定し、セキュリティ(1175)などの変換をサーチ・オブジェクト(1115)に追加する。クエリーの実行前に、クエリー・エグゼキュータ(1155)が、クエリーの結果がクエリー結果キャッシュ(1150)に存在するかどうかをチェックしてもよい。クエリーが1つのデータソースに対するものである場合には、クエリー・エグゼキュータ(1155)が直接実行してよい。 The query transformer (1120) is a generic search object for retrieving queries from the user interface layer (1105) via various form elements and passing them to the query transformer (1120) within the query engine (1110). (1115). The search object (1115) contains all metadata (data model, field, data repository, filter) related to the query retrieved from the internal metadata (1130). The role of the query transformer (1120) in the federated search is to search the enterprise data graph (1135) and identify similar fields. The query transformer (1120) transforms the search object (1115) based on the enterprise data graph (1135). A search object (1115) is then provided to the query pipeline (1125) to determine the order of queries to be executed by the query pipeline (1125) and to perform transformations such as security (1175). To (1115). Prior to executing the query, the query executor (1155) may check whether the result of the query exists in the query result cache (1150). If the query is for one data source, the query executor (1155) may execute directly.
複合クエリー(たとえば、複数のデータストア(1140、1145)に対するクエリー)の場合、クエリー実行フロー全体が、対応する統計と共にインターナル・メタデータ(1130)に記録されてもよい。たとえば、クエリー変換の時間、物理的クエリーの実行時間、全ネットワーク転送の転送時間、ワークフローが実行されたクエリー・テンプレート/フォーマットなどの統計情報を記録してよい。 For compound queries (eg, queries against multiple data stores (1140, 1145)), the entire query execution flow may be recorded in internal metadata (1130) along with corresponding statistics. For example, statistics such as query conversion time, physical query execution time, total network transfer transfer time, query template / format for which the workflow was executed may be recorded.
クエリー・エグゼキュータ(1155)は、サーチ・オブジェクト(1115)を取り込み、ネイティブ・データ・エンジンのAPIまたは言語を使用して実行可能なクエリーに変換する。クエリー実行の効率性向上のために可能な限りプッシュダウンを使用してよい。次いで、クエリー・エグゼキュータ(1155)は、クエリー結果を含むデータ構造体をリザルト・パイプライン(1160)に返す。 The query executor (1155) takes the search object (1115) and converts it into an executable query using the native data engine API or language. Pushdowns may be used whenever possible to improve query execution efficiency. The query executor (1155) then returns a data structure containing the query results to the result pipeline (1160).
クエリー・エグゼキュータ(1155)は、結果のシーケンスを調整するリザルト・パイプライン(1160)として複数のクエリー結果を返してよい。独自のロジックに基づく変換をこのレイヤーで実行してもよい。 The query executor (1155) may return multiple query results as a result pipeline (1160) that coordinates the sequence of results. Transformations based on proprietary logic may be performed at this layer.
複合クエリーがそれぞれ異なる物理データソースに対する複数のクエリーを呼び出す場合、リザルト・コンバイナ(1165)を呼び出して、クエリーの各結合点で中間結果をジョインまたは組み合わせてもよい。たとえば、リザルト・コンバイナ(1165)は、中間結果を受け入れ、最良のジョイン戦略を決定し、次いで両方の中間データセットのジョイン結果を戻してもよい。データセット間の「ビッグデータ」級のジョインの場合、リザルト・コンバイナ(765)は、クラスター化されたインメモリエンジン(たとえば、APACHE SPARK)を使用して計算を実行することによって、分散ジョイン戦略を使用することができる。このようなクエリーは、リアルタイムで実行されてもよく、クラスター化環境での処理にネットワークオーバーヘッド以上のオーバーヘッドが含まれる場合、非同期的に実行されてもよい。 If the combined query invokes multiple queries for different physical data sources, the result combiner (1165) may be invoked to join or combine intermediate results at each join point of the query. For example, the result combiner (1165) may accept the intermediate results, determine the best join strategy, and then return the join results for both intermediate data sets. For “big data” class joins between datasets, the result combiner (765) implements a distributed join strategy by performing calculations using a clustered in-memory engine (eg, APACHE SPARK). Can be used. Such a query may be executed in real time, and may be executed asynchronously if the processing in the clustered environment includes an overhead that is greater than the network overhead.
中間データセット量が小さい場合、メモリ内SQLエンジンを使用してジョインを実行することができる。一部の実施例では、RAMディスクテーブルへの一括挿入した後にSQLを実行することで、リアルタイム実行のための十分な高速性を実現可能である。 If the amount of the intermediate data set is small, the join can be executed using the in-memory SQL engine. In some embodiments, sufficient speed for real-time execution can be realized by executing SQL after batch insertion into the RAM disk table.
一部の実施例では、ジョインは、各中間結果をフェッチし、次に適切なジョインアルゴリズムを適用してリザルト・オブジェクト(1170)を生成することによって、リザルト・ジョイナー(1165)で2つのデータソースのクエリー結果をユーザー・インターフェース層(1105)に戻してもよい。リザルト・コンバイナ(1165)において、各中間結果を取得して適切なジョイン・アルゴリズムを適用して、ユーザー・インターフェース層(1105)を通じて返すための結果オブジェクト(1170)を生成することで、ジョインが、2つのデータソースをまたがって実行されてよい。 In some embodiments, the join fetches each intermediate result and then applies the appropriate join algorithm to generate a result object (1170), resulting in two data sources at the result joiner (1165). The query results may be returned to the user interface layer (1105). In the result combiner (1165), each intermediate result is obtained and applied with an appropriate join algorithm to generate a result object (1170) for return through the user interface layer (1105), so that the join It may be performed across two data sources.
結果のマージには、多くのジョイン戦略を使用することができる。一部の実施例では、インメモリSQLエンジンを使用してよい。たとえば、中間データセットを、RAMディスク上のPOSTGRESQLまたはMYSQLテーブル(同じネットワーク上の別のサーバー上に存在していてもよい)に書き込んでよい。その後、SQLジョインのクエリー(計算式と共に使用されてもよい)がデータベース上で実行され、最終的な結果セットが生成されてよい。最終的なリザルト・セットは、リザルト・ジョイナー(1165)に送り返されてもよい。同様に、他のインメモリSQLエンジンの(たとえば、MemSQL)も使用してよい。インメモリサーバーを実行するインフラストラクチャは、大容量のメモリを備えていてよい。同様に、他のカラムナー・データベースも使用して良い。コストがかかる複雑なクエリや対象となるデータソースの性能が悪いときに、クエリパフォーマンスに優れたカラムナー・データベースに書き込んで、ユーザーに快適なパフォーマンスを提供する。 Many join strategies can be used to merge the results. In some embodiments, an in-memory SQL engine may be used. For example, the intermediate data set may be written to a POSTGRESQL or MYSQL table on a RAM disk (which may reside on another server on the same network). A SQL join query (which may be used with a calculation) may then be executed on the database to generate the final result set. The final result set may be sent back to the result joiner (1165). Similarly, other in-memory SQL engines (eg, MemSQL) may be used. The infrastructure running the in-memory server may have a large amount of memory. Similarly, other columnar databases may be used. When a complex query that is expensive or the performance of the target data source is poor, write to a columnar database with excellent query performance to provide comfortable performance to users.
他の実施例では、ネイティブなデータソース上で可能な限り多くの処理を行なうことが望ましいことがある。サーチ、比較、ローカル・ジョイン、ソート、集計、および、グルーピングを下位のデータソースにプッシュダウンすることで、データソースの機能を活用でき、ネットワークを介して転送され、インメモリのエンジンで処理される中間データの量を制限できる。 In other embodiments, it may be desirable to do as much processing as possible on the native data source. By pushing down search, comparison, local join, sorting, aggregation, and grouping to a lower data source, you can take advantage of the data source's capabilities, transferred over the network, and processed by an in-memory engine The amount of intermediate data can be limited.
他の実施例として、データのクエリー・キャッシングを使用してもよい。たとえば、キャッシュ・クラスター(たとえば、REDIS、MEMCACHED)をクエリーごとに結果を保管するように構成してもよい。どのストアに対してクエリーを実行する前にも、キャッシュ上に結果がないかをチェックしてよい。結果がキャッシュ上にない場合のみに、データソースへのアクセスが行なわれる。レイテンシーが大きいソースに対して頻繁にクエリーが実行される場合には性能が向上可能である。自身ではキャッシュ機能を持たないエンジン(たとえば、IMPALA)や複合クエリー(たとえば、クエリーが複数の物理的クエリーに分割され、結果がインメモリのSQLエンジンで併合される場合)では、性能向上が顕著である可能性がある。 As another example, data query caching may be used. For example, a cache cluster (eg, REDIS, MEMCACHED) may be configured to store the results for each query. You may check for any results in the cache before querying any store. Only when the result is not in the cache is the data source accessed. Performance can be improved when queries are frequently executed against sources with high latency. For engines that do not have their own caching (for example, IMPALA) or compound queries (for example, if the query is split into multiple physical queries and the results are merged by an in-memory SQL engine), the performance improvement is significant. There is a possibility.
他の実施例では、同時並行処理が実行されてもよい。たとえば、クエリーが多くのデータソースにまたがる場合、並行処理によってクエリー実行時間が短縮される可能性がある。さらに、一部の実施例において、クエリー実行プラン決定中に、相互に排他的なクエリーを識別して、並列スレッドで実行してもよい。 In other embodiments, concurrent processing may be performed. For example, if a query spans many data sources, parallel processing may reduce query execution time. Further, in some embodiments, mutually exclusive queries may be identified and executed in parallel threads during query execution plan determination.
他の実施例では、分散処理が実行されてもよい。たとえば、HadoopプラットフォームまたはSparkプラットフォーム上の特定のエンジン(たとえば、HIVE、IMPALA)を用いてクエリーを実行する間に、ネイティブデータソースの分散処理能力を本質的に使用してもよい。しかし、いくつかの実装例では、SparkやHadoopのようなクラスター化エンジン上の大規模な中間セットを分散ジョインする際には、他のエコシステムツールを必要とすることがある。 In other embodiments, distributed processing may be performed. For example, the native data source's distributed processing capabilities may be used inherently while executing queries using specific engines (eg, HIVE, IMPALA) on the Hadoop platform or Spark platform. However, in some implementations, other ecosystem tools may be required to decentrally join large intermediate sets on clustered engines such as Spark and Hadoop.
さらに、非リアルタイム最適クエリープラン生成が使用されてもよい。たとえば、クエリー・エンジン(1110)は、クエリー実行ワークフロー内の各ステージの実行時間を記録することができる。このログには、特定のデータモデルのデータソースに対するクエリー処理と、ネットワーク転送およびデータマージが含まれてよい。このログは、その後のクエリー・ワークフローの実行のためにクエリープランをさらに最適化するためのデータとして有用である。最適な実行グラフの探索のオーバーヘッドを避けるために、この最適化プロセスは、最適な実行計画を決定し、内部メタデータ記憶装置(1130)に再使用のためにキャッシュするバックグラウンドプロセスとして実行してもよい。 In addition, non-real time optimal query plan generation may be used. For example, the query engine (1110) can record the execution time of each stage in the query execution workflow. This log may include query processing for specific data model data sources, network forwarding and data merging. This log is useful as data for further optimizing the query plan for subsequent query workflow execution. To avoid the overhead of searching the optimal execution graph, this optimization process runs as a background process that determines the optimal execution plan and caches it for reuse in the internal metadata store (1130). Also good.
(コンピューティング環境の例)
図12に、特定の実施例の実装に適したコンピューティング・デバイス(1205)を含むコンピューティング環境(1200)の例を示す。コンピューティング環境(1200)中のコンピューティング・デバイス(1205)は一つ以上の処理ユニット、コア、または、プロセッサ(1210)、メモリ(1215)(たとえば、RAM、ROM等)、内部ストレージ(1220)(たとえば、磁気ディスク、光学ディスク、半導体ストレージ、有機ストレージ)、I/Oインターフェース(1225)を含んでいてよく、それらは、情報のやり取りのためにコミュニケーション機構またはバス(1230)上で接続されていてよく、コンピューティング・デバイス(1205)に埋め込まれていてもよい。
(Example of computing environment)
FIG. 12 illustrates an example computing environment (1200) that includes a computing device (1205) suitable for implementing a particular embodiment. The computing device (1205) in the computing environment (1200) may include one or more processing units, cores, or processors (1210), memory (1215) (eg, RAM, ROM, etc.), internal storage (1220). (Eg, magnetic disk, optical disk, semiconductor storage, organic storage), I / O interface (1225), which are connected on a communication mechanism or bus (1230) for the exchange of information. It may be embedded in a computing device (1205).
コンピューティング・デバイス(1205)は、入力ユーザー・インターフェース(1235)および出力デバイス・インターフェース(1240)と通信可能なように接続されていてよい。入力ユーザー・インターフェース(1235)および出力デバイス・インターフェース(1240)のいずれか、または、両方は有線であっても無線であってもよく、取り外し可能であってもよい。入力ユーザー・インターフェース(1235)は、物理的か仮想的か問わず、入力を提供できる任意の装置、コンポーネント、センサーを含む(たとえば、ボタン、タッチスクリーンインターフェース、キーボード、ポインター、カーソルコントロール、マイクロフォン、点字、モーションセンサー、光学リーダーなど)。出力デバイス・インターフェース(1240)は、ディスプレイ、テレビ、モニター、プリンター、スピーカー、点字等を含む。一部の実施例では、入力ユーザー・インターフェース(1235)と出力デバイス・インターフェース(1240)はコンピューティング・デバイス(1205)に埋め込まれているか、物理的に接続されていてもよい。他の実施例では、他のコンピューティング・デバイスがコンピューティング・デバイス(1205)の入力ユーザー・インターフェース(1235)と出力デバイス・インターフェース(1240)の機能を提供してもよい。 The computing device (1205) may be communicatively connected to an input user interface (1235) and an output device interface (1240). Either or both of the input user interface (1235) and the output device interface (1240) may be wired or wireless and may be removable. The input user interface (1235) includes any device, component, or sensor that can provide input, whether physical or virtual (eg, buttons, touch screen interface, keyboard, pointer, cursor control, microphone, braille) , Motion sensor, optical reader, etc.). The output device interface (1240) includes a display, a television, a monitor, a printer, a speaker, Braille, and the like. In some embodiments, the input user interface (1235) and the output device interface (1240) may be embedded in or physically connected to the computing device (1205). In other embodiments, other computing devices may provide the functionality of the input user interface (1235) and output device interface (1240) of the computing device (1205).
コンピューティング・デバイス(1205)は、(たとえば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、携帯テレビ、ラジオなどの)モバイルデバイス、携帯性が高いデバイス(たとえば、スマートフォン、車両および他の機械のデバイス、人間および動物が携行するデバイスなど)、コンピューター(たとえば、デスクトップコンピューター、サーバーデバイス、他のコンピューター、情報キオスク、1つ以上のプロセッサが埋め込まれたテレビ、および/またはそれらに結合されたテレビ、ラジオなど)を含むが、これに限定されない。 The computing device (1205) is a mobile device (eg, tablet, notebook, laptop, personal computer, portable TV, radio, etc.), a highly portable device (eg, smartphone, vehicle and other mechanical devices) , Devices carried by humans and animals), computers (eg, desktop computers, server devices, other computers, information kiosks, televisions with one or more processors embedded therein, and / or televisions coupled to them, radios Etc.), but is not limited to this.
コンピューティング・デバイス(1205)は、ひとつ以上の同種または異種のコンピューティング・デバイスを含む、任意の数のネットワーク構成要素、デバイス、およびシステムと通信するために、外部記憶装置(1245)およびネットワーク(1250)に(たとえば、I / Oインターフェース(1225)を介して)接続可能にされていてよい。コンピューティング・デバイス(1205)、または、任意の接続されたコンピューティング・デバイスは、サーバー、クライアント、シン・サーバー、一般的なマシン、特殊目的のマシン、または、他の名称で呼ばれるコンピューターとして機能し、サービスを提供したり、それらを参照したりすることができる。 The computing device (1205) may communicate with any number of network components, devices, and systems, including one or more homogeneous or heterogeneous computing devices, external storage (1245) and network ( 1250) (eg, via an I / O interface (1225)). The computing device (1205), or any connected computing device, functions as a server, client, thin server, general machine, special purpose machine, or other termed computer. , Can provide services or refer to them.
I/Oインターフェース(1225)は、コンピューター環境900内の接続されたコンポーネント、デバイス、ネットワークの間で情報を通信するためのネットワークのための、任意の通信またはI / Oプロトコルまたは規格(たとえば、イーサネット(登録商標)、802.11x、ユニバーサルシステムバス、WiMAX、モデム、セルラネットワークプロトコルなど)を使用する有線や無線インターフェースを含むが、これに限定されない。ネットワーク(950)は、任意のネットワーク(たとえば、インターネット、ローカルエリアネットワーク、エリアネットワーク、電話ネットワーク、セルラネットワーク、衛星ネットワーク)またはそれらの組み合わせであってよい。 The I / O interface (1225) is any communication or I / O protocol or standard (eg, Ethernet) for a network for communicating information between connected components, devices, and networks in the computer environment 900. (Registered trademark), 802.11x, universal system bus, WiMAX, modem, cellular network protocol, and the like), but not limited thereto. The network (950) may be any network (eg, the Internet, a local area network, an area network, a telephone network, a cellular network, a satellite network) or a combination thereof.
コンピューティング・デバイス(1205)は、一時媒体および非一時媒体を含むコンピューター使用可能またはコンピューター可読媒体を使用して使用・通信することができる。一時媒体には、伝送媒体(たとえば、金属ケーブル、光ファイバ)、信号、搬送波などが含まれる。非一時的媒体には、磁気媒体(たとえば、ディスクおよびテープ)、光媒体(たとえば、CD-ROM、デジタルビデオディスク、ブルーレイディスク)、半導体媒体(たとえば、RAM、ROM、フラッシュメモリ、ソリッドステートストレージ )、および他の不揮発性記憶装置またはメモリを含む。 The computing device (1205) may be used and communicated using computer usable or computer readable media including temporary and non-temporary media. Temporary media include transmission media (eg, metal cables, optical fibers), signals, carrier waves, and the like. Non-transitory media include magnetic media (eg, disks and tapes), optical media (eg, CD-ROM, digital video disc, Blu-ray disc), semiconductor media (eg, RAM, ROM, flash memory, solid state storage) , And other non-volatile storage devices or memories.
コンピューティング・デバイス(1205)は、いくつかのコンピューティング環境実施例において、技法、方法、アプリケーション、プロセス、またはコンピューター実行可能命令を実現するために使用することができる。コンピューター実行可能命令は、一時媒体から取り出して、非一時媒体上に記憶し、それから取り出すことができる。実行可能命令は、プログラミング、スクリプティング、および機械語(たとえば、C、C ++、C#、Java、Visual Basic、Python、Perl、JavaScriptなど)のうちの1つ以上から成っていてよい。 The computing device (1205) may be used to implement techniques, methods, applications, processes, or computer-executable instructions in some computing environment embodiments. Computer-executable instructions can be retrieved from temporary media, stored on non-transitory media, and retrieved therefrom. Executable instructions may consist of one or more of programming, scripting, and machine language (eg, C, C ++, C #, Java, Visual Basic, Python, Perl, JavaScript, etc.).
プロセッサ(1210)は、ネイティブ環境または仮想環境において、任意のオペレーティングシステム(OS)(図示していない)の下で実行することができる。論理ユニット(1255)、API(アプリケーションプログラミングインターフェース)ユニット(1260)、入力ユニット(1265)、出力ユニット(1270)、ヒューリスティック・インデックス生成ユニット(1275)、類似性判定ユニット(1280)、エンタープライズ・データグラフ生成ユニット(1285)、分析グラフィクス・ユニット(1290)、および、ユニット間通信機構(1295)は、互いに通信するために、OSおよび他のアプリケーション(図示してない)と通信する。たとえば、ヒューリスティック・インデックス生成ユニット(1275)、類似性判定ユニット(1280)、エンタープライズ・データグラフ生成ユニット(1285)、および分析グラフィクス・ユニット(1290)は、図2から図図10に示すひとつ以上の処理を実装することができる。記載されたユニットと要素は、設計、機能、構成、または実装において変更可能であり、説明の内容に限定されない。 The processor (1210) may execute under any operating system (OS) (not shown) in a native or virtual environment. Logical unit (1255), API (application programming interface) unit (1260), input unit (1265), output unit (1270), heuristic index generation unit (1275), similarity determination unit (1280), enterprise data graph The generation unit (1285), the analytic graphics unit (1290), and the inter-unit communication mechanism (1295) communicate with the OS and other applications (not shown) to communicate with each other. For example, the heuristic index generation unit (1275), the similarity determination unit (1280), the enterprise data graph generation unit (1285), and the analytic graphics unit (1290) may include one or more of the ones shown in FIGS. Processing can be implemented. The described units and elements can be changed in design, function, configuration, or implementation, and are not limited to the content of the description.
いくつかの実施例では、APIユニット(1260)は、情報または実行命令を受信すると、1つ以上の他のユニット(たとえば、ヒューリスティック・インデックス生成ユニット(1275)、類似性判定ユニット(1280)、エンタープライズ・データグラフ生成ユニット(1285)、分析グラフィックス・ユニット(1290)、および、クエリーユニット(1297)と通信を行なってよい。たとえば、ヒューリスティック・インデックス生成ユニット(1275)を介してヒューリスティック・インデックスが生成されるときに、異なるエンティティ間の類似性を判定するために、ヒューリスティック・インデックスが類似性判定ユニット(1280)に提供されてもよい。さらに、エンタープライズ・データグラフ生成ユニット(1285)がエンタープライズ・データグラフを生成する際に、類似性判定ユニット(1280)が類似性データを提供してもよい。さらに、エンタープライズ・データ・グラフ生成ユニット(1285)が、分析グラフィクス(1290)に提供され、出力ユニット(1270)を用いて表示されるデータ分析グラフィックを生成してもよい。 In some embodiments, the API unit (1260) receives one or more execution instructions and receives one or more other units (eg, heuristic index generation unit (1275), similarity determination unit (1280), enterprise May communicate with a data graph generation unit (1285), an analysis graphics unit (1290), and a query unit (1297), for example, a heuristic index is generated via a heuristic index generation unit (1275); When done, a heuristic index may be provided to the similarity determination unit (1280) to determine the similarity between the different entities. 285) may generate the enterprise data graph, the similarity determination unit (1280) may provide the similarity data, and the enterprise data graph generation unit (1285) may further analyze the graphics (1290). The data analysis graphic may be generated and displayed using the output unit (1270).
一部の実施例では、論理ユニット(1255)が、ユニット間の情報フローを制御し、APIユニット(1260)、入力ユニット(1265)、出力ユニット(1270)、ヒューリスティック・インデックス生成ユニット(1275)、類似性判定ユニット(1280)、エンタープライズ・データグラフ生成ユニット(1285)、および、分析グラフィクスユニット(1290)を含む。たとえば、1つ以上プロセスのフローや実装を、論理ユニット(1255)によって単独で、またはAPIユニット(1260)と連携して制御することができる。クエリーユニット(1297)は、APIユニット(1260)、論理ユニット(1255)、および、類似性判定ユニット(980)と連携して、それぞれのデータリポジトリでクエリーを実行する。 In some embodiments, the logical unit (1255) controls the information flow between the units and includes an API unit (1260), an input unit (1265), an output unit (1270), a heuristic index generation unit (1275), A similarity determination unit (1280), an enterprise data graph generation unit (1285), and an analysis graphics unit (1290) are included. For example, the flow or implementation of one or more processes can be controlled by the logical unit (1255) alone or in conjunction with the API unit (1260). The query unit (1297) executes a query in each data repository in cooperation with the API unit (1260), the logical unit (1255), and the similarity determination unit (980).
いくつかの実施例について説明してきたが、これらは当業者に対して本願発明の主題を伝えるために提供されたものである。本願発明の主題は、説明された実施例に限定されることなく、様々な形態で実現され得ることに注意されたい。本願発明の主題は、ここで定義または説明された構成要素なしに実現することもでき、ここで説明されなかった別の構成要素と共に実現することもできる。本願請求の範囲により定義された本願発明の主題を逸脱することなく、これらの実施例を変更することは当業者にとって容易である。 Several embodiments have been described and are provided to convey the subject matter of the present invention to those skilled in the art. It should be noted that the subject matter of the present invention is not limited to the described embodiments and can be realized in various forms. The subject matter of the present invention may be implemented without the components defined or described herein, or may be implemented with other components not described herein. It will be readily apparent to those skilled in the art that modifications may be made to the embodiments without departing from the subject matter of the invention as defined by the claims.

Claims (8)

  1. 複数のデータストア内のデータを分析する方法であって、
    前記複数のデータストア内のテーブル内の複数のフィールド内の文字列の集合から重複を排除するステップと、
    前記重複を排除した文字列を転置インデックスに保存するステップと、
    前記転置インデックスに保存された文字列間の類似性を判定するステップと、
    前記判定された文字列間の類似性に基づいて前記複数のフィールド間の類似性を判定するステップと、
    前記複数のフィールド間の類似性が高いと判定されたフィールドを含むテーブルをノードとして類似関係をエッジで表現したグラフ形式データを生成するステップとを
    含むコンピューターにより実行される方法。
    A method for analyzing data in multiple data stores,
    Removing duplicates from a set of strings in a plurality of fields in a table in the plurality of data stores;
    Storing the duplicated string in an inverted index;
    Determining similarity between character strings stored in the transposed index;
    Determining similarity between the plurality of fields based on the determined similarity between character strings;
    Generating a graph-format data in which a similarity relationship is expressed by an edge using a table including fields determined to have high similarity between the plurality of fields as a node.
  2. 前記転置インデックスに保存された文字列間の類似性を判定するステップは、さらに、
    前記複数のフィールド内の文字列に形態素解析を適用して分割するステップと、
    前記文字列間のコサイン類似度を求めるステップと、
    前記コサイン類似度にロジステック関数を適用するステップとを
    含む請求項1に記載の方法。
    The step of determining the similarity between the character strings stored in the inverted index further includes:
    Applying morphological analysis to character strings in the plurality of fields and dividing the character strings;
    Obtaining a cosine similarity between the strings;
    Applying a logistic function to the cosine similarity.
  3. 前記転置インデックスに保存された文字列間の類似性を判定するステップは、さらに、
    前記複数のフィールド内の文字列の集合を一時的テーブルに保存するステップと、
    前記テーブルに自然結合演算を適用するステップと、
    前記テーブル間の類似度を計算するステップとを
    含む請求項1に記載の方法。
    The step of determining the similarity between the character strings stored in the inverted index further includes:
    Storing a set of strings in the plurality of fields in a temporary table;
    Applying a natural join operation to the table;
    The method of claim 1, comprising calculating a similarity between the tables.
  4. さらに、前記複数のデータストア内のテーブル内の複数のフィールド内のデータの属性に基づいて前記フィールド間の類似性を判定するステップを含み、
    前記属性は、濃度、個別値の数、ヒストグラムの境界、ヌル値の数、または、非ヌル値の数のいずれかひとつ以上である
    請求項1、請求項2、または、請求項3に記載の方法。
    Further comprising determining similarity between the fields based on attributes of data in a plurality of fields in a table in the plurality of data stores;
    The said attribute is any one or more of a density | concentration, the number of individual values, the boundary of a histogram, the number of null values, or the number of non-null values, The Claim 1, Claim 2, or Claim 3 Method.
  5. 請求項1、請求項2、請求項3、または、請求項4に記載の方法で作成された前記グラフ形式データを使用した、コンピューターにより実行される方法であって、
    第一のデータストア内の第一のテーブルの第一のフィールドに対するクエリーを受信するステップと、
    前記グラフ形式データに基づいて前記第一のフィールドに類似する第二のフィールドを識別するステップと、
    前記第二のフィールドと前記第二のフィールドを含む第二のテーブルと前記第二のテーブルを含む第二のデータストアとのいずれかひとつ以上を表示するステップとを含む方法。
    A computer-implemented method using the graphical data generated by the method of claim 1, claim 2, claim 3 or claim 4, comprising:
    Receiving a query for a first field of a first table in a first data store;
    Identifying a second field similar to the first field based on the graph-format data;
    Displaying at least one of the second field, a second table including the second field, and a second data store including the second table.
  6. 請求項1、請求項2、請求項3、または、請求項4に記載の方法で作成された前記グラフ形式データを使用した、コンピューターにより実行される方法であって、
    第一のデータストアに関する情報を表示するステップと、
    前記第一のデータストア内の第一のテーブルの第一のフィールドに対するクエリーを受信するステップと、
    前記グラフ形式データに基づいて前記第一のフィールドに類似する第二のフィールドを識別するステップと、
    前記第二のフィールドを含む第二のデータストアに関する情報を表示するステップと、
    前記クエリーに応じて前記第一のデータストアに関する情報の表示と前記第二のデータストアに関する情報の表示とを並列的に更新するステップとを含む方法。
    A computer-implemented method using the graphical data generated by the method of claim 1, claim 2, claim 3 or claim 4, comprising:
    Displaying information about the first data store;
    Receiving a query for a first field of a first table in the first data store;
    Identifying a second field similar to the first field based on the graph-format data;
    Displaying information about a second data store including the second field;
    Updating the display of information about the first data store and the display of information about the second data store in parallel in response to the query.
  7. 請求項1、請求項2、請求項3、または、請求項4に記載の方法で作成された前記グラフ形式データを使用した、コンピューターにより実行される方法であって、
    第一のデータストア内の第一のテーブルの第一のフィールドに対するクエリーを受信するステップと、
    前記グラフ形式データに基づいて前記第一のフィールドに類似する第二のフィールドを識別するステップと、
    前記第一のデータストアに対する前記クエリーの結果と、前記第二のフィールドを含む第二のテーブルを含む第二のデータストアに対する前記クエリーの結果とを組み合わせて同一画面上に表示するステップとを含む方法。
    A computer-implemented method using the graphical data generated by the method of claim 1, claim 2, claim 3 or claim 4, comprising:
    Receiving a query for a first field of a first table in a first data store;
    Identifying a second field similar to the first field based on the graph-format data;
    Combining the result of the query for the first data store and the result of the query for a second data store including a second table including the second field on the same screen. Method.
  8. 請求項1、請求項2、請求項3、または、請求項4に記載の方法で作成された前記転置インデックスを使用した、コンピューターにより実行される方法であって、
    ユーザーからのキーワードを受信するステップと、
    前記転置インデックスから前記キーワードを含むフィールドを含むテーブルを検索するステップと、
    前記フィールド、または、前記テーブルを表示するステップとを
    含むコンピューターにより実行される方法。
    A computer-implemented method using the transposed index created by the method of claim 1, claim 2, claim 3, or claim 4, comprising:
    Receiving keywords from users,
    Searching a table including a field including the keyword from the transposed index;
    Displaying the field or the table.
PCT/JP2017/012496 2016-03-31 2017-03-27 Method, program, and system for automatic discovery of relationship between fields in environment where different types of data sources coexist WO2017170459A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US16/089,532 US20190317938A1 (en) 2016-03-31 2017-03-27 Method, program, and system for automatic discovery of relationship between fields in environment where different types of data sources coexist
JP2017523549A JP6159908B6 (en) 2016-03-31 2017-03-27 Method, program, and system for automatic discovery of relationships between fields in a heterogeneous data source mixed environment

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662315784P 2016-03-31 2016-03-31
US62/315,784 2016-03-31

Publications (1)

Publication Number Publication Date
WO2017170459A1 true WO2017170459A1 (en) 2017-10-05

Family

ID=59965634

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/012496 WO2017170459A1 (en) 2016-03-31 2017-03-27 Method, program, and system for automatic discovery of relationship between fields in environment where different types of data sources coexist

Country Status (3)

Country Link
US (1) US20190317938A1 (en)
JP (1) JP6964384B2 (en)
WO (1) WO2017170459A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3686753A1 (en) * 2019-01-25 2020-07-29 Samsung Electronics Co., Ltd. Electronic device and method for controlling the electronic device
CN111767320A (en) * 2020-06-29 2020-10-13 中国银行股份有限公司 Data blood relationship determination method and device
CN113656650A (en) * 2021-08-16 2021-11-16 智慧芽信息科技(苏州)有限公司 Data fusion method and device, electronic equipment and storage medium
CN116483840A (en) * 2023-06-19 2023-07-25 广东奥飞数据科技股份有限公司 Multi-source heterogeneous data integration system based on distributed computing
US12008349B2 (en) 2020-10-29 2024-06-11 Kabushiki Kaisha Toshiba Information processing apparatus, information processing method, and non-transitory storage medium

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11829391B2 (en) * 2019-01-14 2023-11-28 Salesforce, Inc. Systems, methods, and apparatuses for executing a graph query against a graph representing a plurality of data stores
CN110879901B (en) * 2019-11-22 2022-03-18 浙江大学 Data self-adaptive desensitization method and system based on relational graph
WO2022049680A1 (en) * 2020-09-02 2022-03-10 日本電気株式会社 Coupling table specification system, coupling table search device, method, and program
WO2022049681A1 (en) 2020-09-02 2022-03-10 日本電気株式会社 Correlation index construction device, correlation table searching device, method, and program
KR102576146B1 (en) * 2020-11-20 2023-09-07 주식회사 와이즈넛 The method of coupling with heterogeneous data using relation of fields in data
CN113656372B (en) * 2021-08-13 2022-06-21 南方电网数字电网研究院有限公司 Standard index database data mart architecture device and method
US11636085B2 (en) 2021-09-01 2023-04-25 International Business Machines Corporation Detection and utilization of similarities among tables in different data systems
CN113760918A (en) * 2021-09-13 2021-12-07 上海航空工业(集团)有限公司 Method, device, computer equipment and medium for determining data blood relationship

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222430A (en) * 1999-02-03 2000-08-11 Osaka Gas Co Ltd Virtual database management system
JP2004227037A (en) * 2003-01-20 2004-08-12 Sangaku Renkei Kiko Kyushu:Kk Field matching device, program therefor, computer readable recording medium, and identical field determination method
JP2005063332A (en) * 2003-08-19 2005-03-10 Fujitsu Ltd Information system coordination device, and coordination method
JP2009169689A (en) * 2008-01-16 2009-07-30 Fujitsu Ltd Data classification method and data processing apparatus
US20160055205A1 (en) * 2014-08-22 2016-02-25 Attivio, Inc. Automated creation of join graphs for unrelated data sets among relational databases

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4997856B2 (en) * 2006-07-19 2012-08-08 富士通株式会社 Database analysis program, database analysis apparatus, and database analysis method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000222430A (en) * 1999-02-03 2000-08-11 Osaka Gas Co Ltd Virtual database management system
JP2004227037A (en) * 2003-01-20 2004-08-12 Sangaku Renkei Kiko Kyushu:Kk Field matching device, program therefor, computer readable recording medium, and identical field determination method
JP2005063332A (en) * 2003-08-19 2005-03-10 Fujitsu Ltd Information system coordination device, and coordination method
JP2009169689A (en) * 2008-01-16 2009-07-30 Fujitsu Ltd Data classification method and data processing apparatus
US20160055205A1 (en) * 2014-08-22 2016-02-25 Attivio, Inc. Automated creation of join graphs for unrelated data sets among relational databases

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3686753A1 (en) * 2019-01-25 2020-07-29 Samsung Electronics Co., Ltd. Electronic device and method for controlling the electronic device
US11328719B2 (en) 2019-01-25 2022-05-10 Samsung Electronics Co., Ltd. Electronic device and method for controlling the electronic device
CN111767320A (en) * 2020-06-29 2020-10-13 中国银行股份有限公司 Data blood relationship determination method and device
CN111767320B (en) * 2020-06-29 2023-08-18 中国银行股份有限公司 Data blood relationship determination method and device
US12008349B2 (en) 2020-10-29 2024-06-11 Kabushiki Kaisha Toshiba Information processing apparatus, information processing method, and non-transitory storage medium
CN113656650A (en) * 2021-08-16 2021-11-16 智慧芽信息科技(苏州)有限公司 Data fusion method and device, electronic equipment and storage medium
CN116483840A (en) * 2023-06-19 2023-07-25 广东奥飞数据科技股份有限公司 Multi-source heterogeneous data integration system based on distributed computing
CN116483840B (en) * 2023-06-19 2023-11-07 广东奥飞数据科技股份有限公司 Multi-source heterogeneous data integration system based on distributed computing

Also Published As

Publication number Publication date
US20190317938A1 (en) 2019-10-17
JP2017188137A (en) 2017-10-12
JP6964384B2 (en) 2021-11-10

Similar Documents

Publication Publication Date Title
WO2017170459A1 (en) Method, program, and system for automatic discovery of relationship between fields in environment where different types of data sources coexist
JP6617117B2 (en) Scalable analysis platform for semi-structured data
JP6159908B1 (en) Method, program, and system for automatic discovery of relationships between fields in a heterogeneous data source mixed environment
CN107402995B (en) Distributed newSQL database system and method
US10860562B1 (en) Dynamic predicate indexing for data stores
JPWO2017170459A6 (en) Method, program, and system for automatic discovery of relationships between fields in a heterogeneous data source mixed environment
EP3014488B1 (en) Incremental maintenance of range-partitioned statistics for query optimization
JP2017037648A (en) Hybrid data storage system, method, and program for storing hybrid data
Khan et al. SQL Database with physical database tuning technique and NoSQL graph database comparisons
WO2015128756A1 (en) A method, system and computer program for scanning a plurality of storage regions within memory for a specified quantity of results
Khan et al. Predictive performance comparison analysis of relational & NoSQL graph databases
US20160070707A1 (en) Keyword search on databases
US11366811B2 (en) Data imprints techniques for use with data retrieval methods
Venkatesh et al. Challenges and research disputes and tools in big data analytics
US11630829B1 (en) Augmenting search results based on relevancy and utility
Hasan et al. Data transformation from sql to nosql mongodb based on r programming language
Ramchand et al. Big data architectures for data lakes: A systematic literature review
Greca et al. Optimizing Data Retrieval by Using Mongodb with Elasticsearch.
Engle et al. Evaluation Criteria for Selecting NoSQL Databases in a Single Box Environment
Binnig et al. Towards interactive data exploration
Lovalekar Big data: An emerging trend in future
JP2016062522A (en) Database management system, database system, database management method, and database management program
da Rocha et al. Efficient processing of analytical queries extended with similarity search predicates over images in spark
US11822582B2 (en) Metadata clustering
Vasconcelos et al. On the support of the similarity-aware division operator in a commercial RDBMS

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2017523549

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

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

Ref document number: 17774996

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17774996

Country of ref document: EP

Kind code of ref document: A1