Query processing system and method
The hierarchical query compliance check system optimizes resource utilization by prioritizing data flow policy checks over organizational rule checks, addressing inefficiencies in existing query compliance systems.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HITACHI LTD
- Filing Date
- 2022-09-13
- Publication Date
- 2026-04-21
AI Technical Summary
Existing query compliance checks for data queries across multiple organizations result in inefficient resource utilization due to long processing times and delays, particularly when organizational rule checks are complex and require significant computing resources.
A hierarchical query compliance check system that first performs data flow policy checks on identified data items, and if compliant, skips organizational rule checks, thereby optimizing resource utilization by reducing unnecessary processing.
Enhances resource utilization efficiency by minimizing redundant organizational rule checks, reducing processing times, and lowering the burden of building query processing systems.
Smart Images

Figure 0007849258000001 
Figure 0007849258000002 
Figure 0007849258000003
Abstract
Description
Technical Field
[0001] The present invention generally relates to techniques for complying with restrictions imposed on data.
Background Art
[0002] For example, a data analyst issues a query specifying data of desired items to a database system for data utilization. The database system has databases for each organization. In the execution of the query, input / output of data is performed on the databases of one or more organizations.
[0003] It is desirable to be able to utilize data across multiple organizations. In that case, it is necessary to comply with the restrictions imposed on the data. As techniques for complying with the restrictions imposed on the data, for example, the techniques disclosed in Patent Documents 1 and 2 are known.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Patent Document 2
Summary of the Invention
Problems to be Solved by the Invention
[0005] As a system for complying with the restrictions imposed on data, a system that performs a query compliance check, which is a check as to whether the query complies with the restrictions imposed on the data, before the execution of the query can be considered. When the query compliance check is false (that is, when the query violates compliance), typically, the query needs to be corrected on the query source (for example, on the user side).
[0006] Poor resource utilization (inefficiency of computing resources) for query compliance checks can lead to long processing times, resulting in delays before query execution or query modification can begin. [Means for solving the problem]
[0007] Query compliance checks are broadly divided into data flow policy checks, which determine whether data flow policies are followed, and organizational rule checks, which determine whether organizational rules are followed. These checks are structured hierarchically. Data flow policies are restrictions on data movement within or between countries, and specify restrictions including data items whose movement within or between countries is permitted and / or prohibited. Organizational rules specify restrictions imposed based on multiple conditions regarding data that is permitted to be shared outside the organization.
[0008] The system analyzes the received query to identify one or more data items of I / O (Input / Output) target data that are subject to the query, and then performs a data flow policy check on the identified one or more data items.
[0009] If the data flow policy check is true, the system performs an organizational rule check on the I / O target data that the query is following. If the organizational rule check is false, the system returns a result indicating that the query is non-compliant.
[0010] If the data flow policy check results in false, the system returns a result indicating that the query is non-compliant without requiring an organization rule check to be performed. [Effects of the Invention]
[0011] According to the present invention, the resource utilization efficiency of query compliance checks is high. [Brief explanation of the drawing]
[0012] [Figure 1] The configuration of the entire system, including the query processing system according to the first embodiment, is shown. [Figure 2] The overall flow of query processing according to the first embodiment is shown below. [Figure 3] The flow of the query compliance check according to the first embodiment is shown below. [Figure 4] The configuration of the query processing system according to the second embodiment is shown. [Figure 5] The structure of the violation history table is shown below. [Figure 6] The overall query processing flow according to the second embodiment is shown below. [Figure 7] The flow of the query compliance check according to the second embodiment is shown below. [Figure 8] The configuration of the query processing system according to the third embodiment is shown. [Figure 9] The structure of the user intent table is shown. [Figure 10] The overall query processing flow according to the third embodiment is shown below. [Figure 11] The following shows the query compliance check flow according to the third embodiment. [Figure 12] The overall query processing flow according to the fourth embodiment is shown below. [Modes for carrying out the invention]
[0013] In the following explanation, "interface device" may refer to one or more interface devices. These one or more interface devices may be at least one of the following: · An I / O interface device that is one or more I / O (Input / Output) interface devices. The I / O interface device is an interface device for at least one of an I / O device and a remote display computer. The I / O interface device for the display computer may be a communication interface device. At least one I / O device may be either an input device such as a user interface device, for example, a keyboard and a pointing device, or an output device such as a display device. · A communication interface device that is one or more communication interface devices. The one or more communication interface devices may be one or more of the same type of communication interface devices (for example, one or more NICs (Network Interface Cards)) or two or more different types of communication interface devices (for example, a NIC and an HBA (Host Bus Adapter)).
[0014] Also, in the following description, "memory" is one or more memory devices that are an example of one or more storage devices, and typically may be a main memory device. At least one memory device in the memory may be a volatile memory device or a non-volatile memory device.
[0015] Also, in the following description, "persistent storage device" may be one or more persistent storage devices that are an example of one or more storage devices. The persistent storage device is typically a non-volatile storage device (for example, an auxiliary storage device), and specifically, for example, an HDD (Hard Disk Drive), an SSD (Solid State Drive), an NVME (Non-Volatile Memory Express) drive, or an SCM (Storage Class Memory) may be used.
[0016] Also, in the following description, "storage device" may be at least the memory of the memory and the persistent storage device.
[0017] Furthermore, in the following explanation, "processor" may refer to one or more processor devices. At least one processor device may typically be a microprocessor device such as a CPU (Central Processing Unit), but may also be other types of processor devices such as a GPU (Graphics Processing Unit). At least one processor device may be single-core or multi-core. At least one processor device may be a processor core. At least one processor device may be a broad-sense processor device such as a circuit that is a collection of gate arrays according to a hardware description language that performs some or all of the processing (e.g., FPGA (Field-Programmable Gate Array), CPLD (Complex Programmable Logic Device), or ASIC (Application Specific Integrated Circuit)).
[0018] Furthermore, the following explanation may describe functions such as checkers and DBMS (Database Management System). However, functions may be implemented by the execution of one or more computer programs by a processor, by one or more hardware circuits (e.g., FPGA or ASIC), or by a combination thereof. When a function is implemented by the execution of a program by a processor, the defined processing is carried out using memory devices and / or interface devices as appropriate, so the function may be at least a part of the processor. Processing described with a function as the subject may also be processing performed by the processor or a device having that processor. Programs may be installed from program source. Program source may be, for example, a program distribution computer or a storage medium that the computer can read (e.g., a non-temporary storage medium). The description of each function is an example, and multiple functions may be combined into one function, or one function may be divided into multiple functions.
[0019] Furthermore, in the following explanation, when describing similar elements without distinction, a common reference code will be used, and when describing similar elements with distinction, a reference code will be used.
[0020] Hereinafter, several embodiments of the present invention will be described with reference to the drawings. [First Embodiment]
[0021] Figure 1 shows the overall system configuration including the query processing system according to the first embodiment.
[0022] A user terminal 103 and a database system 50 are connected to a communication network (for example, the Internet or a WAN (Wide Area Network)) 40.
[0023] User terminal 103 is an information processing terminal such as a personal computer or smartphone, and is an example of a query source. A user (e.g., an analyst) operates user terminal 103 to issue one or more queries to databases. The queries are, for example, SQL queries.
[0024] The database system 50 includes a query processing system 105 and multiple (or one) organizational systems 101 (101A, 101B, ...) that communicate with the query processing system 105.
[0025] The organizational system 101 is a computer system that performs input and output of data managed by the organization. The organizational system 101 is a physical computer system (one or more physical computers), but it may also be a logical computer system based on a physical computer system (for example, a cloud service system based on a cloud infrastructure). The organizational system 101 has an interface device 11, a storage device 12, and a processor 13 connected thereto.
[0026] The interface device 11 communicates with the query processing system 105 via the communication network 40.
[0027] The storage device 12 stores the database 111 and the organization rule table 117 (an example of organization rule information). The storage device 12 also stores computer programs executed by the processor 13. The database 111 is managed by the organization and contains one or more tables. Each table has records and columns. The organization rule table 117 represents organization rules. Organization rules are rules that define restrictions imposed based on multiple conditions regarding data that is permitted to be shared outside the organization.
[0028] The computer program is executed by the processor 13, which then realizes the organization rule checker 113 and the DBMS 180. The organization rule checker 113 performs an organization rule check, which is a check to see whether the organization rules represented in the organization rule table 117 are being followed. The DBMS 180 executes the target query.
[0029] The query processing system 105 is a physical computer system, but it may also be a logical computer system based on a physical computer system (for example, a cloud service system based on a cloud infrastructure). For example, the query processing system 105 may be a server and the user terminal 103 may be a client. The query processing system 105 has an interface device 21, a storage device 22, and a processor 23 connected thereto.
[0030] The interface device 21 communicates with the user terminal 103 and the organizational system 101 via the communication network 40.
[0031] The storage device 22 stores a data flow policy table 151 (an example of data flow policy information). The storage device 22 also stores computer programs executed by the processor 23. The data flow policy table 151 represents a data flow policy. A data flow policy is a restriction on data movement within or between countries, specifying restrictions including data items whose movement within or between countries is permitted and / or prohibited.
[0032] The query checker 161 is realized when a computer program is executed by the processor 23. The query checker 161 performs a query compliance check. The query checker 161 has a hierarchy checker 171 and a data flow policy checker 191. The hierarchy checker 171 performs a hierarchy compliance check as an example of a query compliance check. The data flow policy checker 191 is executed in the query compliance check and performs a data flow policy check, which is a check to see whether or not the data flow policy is being followed.
[0033] Information representing a data flow policy may be input to the query processing system 105 via a UI such as a GUI (Graphical User Interface), for example, from the system administrator's information processing terminal, and a data flow policy table 151 containing this information may be stored in the storage device 22. A data flow policy may consist of one or more data item sets. A data item set is a set of multiple (or one) data items, including one or more data items identified from a query. A data flow policy data item set may include, for example, all or some of the data items such as table name, column name, source country, destination country, presence or absence of aggregation, and presence or absence of masking. From a query, these data items, namely table name, column name, source country, destination country, presence or absence of aggregation, and presence or absence of masking, are identified. Also, a "data item" may consist of an item name (e.g., "column name") and an item value (e.g., "age"). In the case of data movement within a country, the source country and destination country are the same country.
[0034] For example, for each organization, information representing organizational rules may be entered into the organization's organizational system 101 via a user interface such as a GUI, for example, from the organization administrator's information processing terminal, and an organizational rule table 117 containing this information may be stored in the storage device 22. Organizational rules typically define restrictions that are more complex than those defined in data flow policies (for example, restrictions on the results of processing (e.g., aggregation) of data read by queries).
[0035] Figure 2 shows the overall flow of query processing according to the first embodiment.
[0036] The query checker 161 receives a query from the user terminal 103 (S201). The query checker 161 performs a query compliance check on the received query (S202).
[0037] If the query compliance check result (the overall check result described below) is in compliance (S203: YES), the query checker 161 sends the query to the organizational system 101 which has data to be I / O according to the query received in S201. The DBMS 180 in the organizational system 101 executes the query, and the query checker 161 returns the query execution result to the user terminal 103 (S204).
[0038] If the query compliance check result is non-compliant (non-compliance) (S203:NO), the query will not be executed. The query checker 161 returns the check result (query compliance check result) of non-compliance to the user terminal 103 (S205).
[0039] Figure 3 shows the flow of S202 (query compliance check according to the first embodiment) in Figure 2.
[0040] The hierarchical checker 171 is executed. The hierarchical checker 171 retrieves the query (S301). The hierarchical checker 171 parses the query (S302) and thereby identifies one or more data items of I / O target data that follow the query (S303). In this embodiment, the identified data items are the table name of a table in the database and / or the column name of a column in that table. The hierarchical checker 171 causes the data flow policy checker 191 to perform a data flow policy check on the identified one or more data items (S304). In S304, for example, the data flow policy checker 191 、 This checks whether a set of data items matches one or more data items identified from the query in the dataflow policy. For example, if a set of data items consisting of the table name "Employees", column name "Age", origin country "P", and destination country "Q" exists in the dataflow policy, and the data items identified from the query are the table name "Employees", column name "Age", origin country "P", and destination country "Q", then the dataflow policy check will result in true. On the other hand, if, for example, the data items identified from the query are the table name "Employees", column name "Name", origin country "P", and destination country "Q", but there is no set of data items in the dataflow policy that matches all of these (or, for example, if the column name "Name" is prohibited from being moved for the pair origin country "P" and destination country "Q"), then the dataflow policy check will result in false.
[0041] If the result of the data flow policy check is true (S305: YES), the hierarchical checker 171 identifies an organizational system 101 that has a database 111 containing data to be I / O'd according to the query, and instructs the organizational rule checker 113 of that organizational system 101 to perform an organizational rule check on that data. An example of an organizational rule check is shown in S306-S308. For example, the organizational rule checker 113 obtains data (e.g., column data) by having the DBMS 180 of the organizational system 101 execute a query (S306), and processes the obtained data according to the description of the query (S307). The processing in S307 may be, for example, statistical processing of the obtained column data (e.g., calculation of the sum, identification of the maximum and / or minimum values). The organizational rule checker 113 performs an organizational rule check to determine whether the organizational rules are being complied with by comparing the data processing result with the organizational rules represented in the organizational rule table 117 (S308). The hierarchical checker 171 determines the query compliance check result, i.e., the overall check result, based on the results of the data flow policy check and the organizational rule check (S309). Note that the processing in S306-S308 may be applied to the technology described in a US application (application number 17 / 465,114) of the same applicant as this application, which was not published at the time of filing this application (for example, the processing in S302-S307 in Figure 9 of the said US application).
[0042] If the result of the data flow policy check is false (S305: NO), the hierarchy checker 171 performs S309 without having the organization rule checker 113 perform the organization rule check.
[0043] The overall check result determined by S309 is whether the query is compliant or non-compliant (a non-compliance query). The overall check result indicates that the query is non-compliant if the data flow policy check is true but the organization rule check is false. Also, the overall check result indicates that the query is non-compliant if the data flow policy check is false. The overall check result may include, for example, the following: Which is being violated: the data flow policy or the organizational rules? If the data flow policy is not being followed, which data item in the query is in violation? If organizational rules are not followed, which part of which organizational rule is violated by the query?
[0044] In the first embodiment described above, query compliance checks are broadly divided into data flow policy checks and organizational rule checks, and these checks are structured in a hierarchical manner.
[0045] Data flow policy checks can be completed by comparing data items identified from a query with the data flow policy (in other words, without performing any data processing according to the query). Organization rule checks, on the other hand, may require data processing according to the query (for example, aggregating data read according to the query, or statistical processing based on database statistics and the query), and therefore consume more computing resources and take longer than data flow policy checks. The more complex the query and organizational rules, the more computing resources and time the data flow policy check requires.
[0046] According to the first embodiment, a data flow policy check is first performed on one or more data items identified from the query. If the result of the data flow policy check is false, a check result indicating that the query is non-compliant is returned without performing an organizational rule check. This makes the resource utilization efficiency of query compliance checks high and reduces the overhead required to prepare queries that do not violate compliance.
[0047] Furthermore, according to the first embodiment, the organization system 101 of the organization has an organization rule checker 113 that performs an organization rule check to determine whether or not the organization's organizational rules are being complied with. Generally speaking, organizational rules and organizational rule checks differ from organization to organization. Also, the complexity of organizational rule checks differs depending on the organizational rules and queries. According to this embodiment, it is not necessary to prepare an organization rule checker for each organization in the query processing system 105, and therefore the burden of building the query processing system 105 can be reduced. In addition, the processing load of organizational rule checks is high, and since such organizational rule checks are performed outside the query processing system 105, it is possible to avoid slowing down the query compliance checks performed by the query processing system 105.
[0048] The above is a description of the first embodiment. The second to fourth embodiments will be described below. In doing so, the differences from the first embodiment will be mainly explained, and the similarities with the first embodiment will be omitted or simplified.
[0049] In the second to fourth embodiments, the query checker 161 has a naive checker that executes at least an organization rule checker 113, in addition to a hierarchical checker 171 that executes at least a data flow policy checker 191. When the naive checker is executed and it causes the data flow policy checker 191 to execute, the naive checker causes the data flow policy checker 191 and the organization rule checker 113 to execute in parallel.
[0050] The query checker 161 selects whether to execute the hierarchical checker 171 or the naive checker 172, and then executes the selected checker. In the processing performed by the hierarchical checker 171, the necessity of executing the organization rule checker 113 depends on the result of the data flow policy check, but in the processing performed by the naive checker 172, the necessity of executing the data flow policy checker 191 is independent of the result of the organization rule check. This is expected to improve both the resource utilization efficiency and accuracy of the query compliance check. For example, if the execution of the organization rule checker 113 is necessary for a certain query, it is expected that the time required for the query compliance check will be shorter if the naive checker is executed instead of the hierarchical checker 171 which executes the organization rule checker 113 after the data flow policy checker 191. [Second Embodiment]
[0051] Figure 4 shows the configuration of the query processing system according to the second embodiment.
[0052] The query checker 161 includes a hierarchical checker 171 and a data flow policy checker 191, as well as a naive checker 172 and a manager 173. The storage device 22 also stores a violation history table 400.
[0053] Manager 173 calculates at least one of the policy violation rate and rule violation rate, and based on the calculated violation rate, selects whether to run the hierarchical checker 171 or the naive checker 172. This ensures that the checker most appropriate for the violation rate is executed.
[0054] Figure 5 shows the structure of the violation history table 400.
[0055] The Violation History Table 400 represents the total number of non-compliant queries "Z", the number of queries that do not comply with data flow policies "X", and the number of queries that do not comply with organizational rules "Y". The value "Z" is incremented each time there is a query that does not comply with either data flow policies or organizational rules. The value "X" is incremented each time there is a query that does not comply with data flow policies. The value "Y" is incremented each time there is a query that does not comply with organizational rules.
[0056] Manager 173 manages (calculates) at least one of the policy violation rate and the rule violation rate. The policy violation rate is the ratio of the number of queries "X" for which the data flow policy check result was false to the number of non-compliant queries "Z". The rule violation rate is the ratio of the number of queries "Y" for which the organizational rule check result was false to the number of non-compliant queries "Z". Based on the calculated violation rate, Manager 173 selects whether to run the hierarchical checker 171 or the naive checker 172.
[0057] Figure 6 shows the overall query processing flow according to the second embodiment. In this embodiment, the naive checker 172 executes both the data flow policy checker 191 and the organization rule checker 113.
[0058] The query checker 161 receives a query from the user terminal 103 (S601). The query checker 161 performs a query compliance check on the received query (S602).
[0059] If the query compliance check is successful (S603: YES), the query checker 161 sends the query to the organizational system 101 which has data to be I / O'd according to the query received in S601. The DBMS 180 in the organizational system 101 executes the query, and the query checker 161 returns the query execution result to the user terminal 103 (S604).
[0060] If the query compliance check result is non-compliance (compliance violation) (S603: NO), the query is not executed. The query checker 161 returns the check result of compliance violation to the user terminal 103 (S605). The manager 173 updates the value "X" or "Y" depending on whether the data flow policy or organizational rule was not complied with, and also updates the value "Z" (the sum of X and Y). In other words, the manager 173 updates the violation history table 400 (S606). In S606, the manager 173 further updates the following. Whether the hierarchical checker 171 or the naive checker 172 is selected can be represented by, for example, one bit. Bit M1 is stored in the storage device 22. Manager 173 sets the value of M1 to "0" if the policy violation rate is greater than or equal to the first threshold T1 (or if the rule violation rate is less than or equal to the second threshold T2). Manager 173 has a policy violation rate. First threshold If T is less than 1 (or if the rule violation rate exceeds the second threshold T2), the value of M1 is set to "1".
[0061] The first threshold T1 may be a manually set value (e.g., a value set by the system administrator or user) or a value determined by Manager 173 based on the rule violation rate (e.g., the rule violation rate itself). Similarly, the second threshold T2 may be a manually set value or a value determined by Manager 173 based on the policy violation rate (e.g., the policy violation rate itself).
[0062] Figure 7 shows the flow of S602 (query compliance check according to the second embodiment) in Figure 6.
[0063] Manager 173 refers to M1 (S701) and determines whether M1 is "0" or not (S702).
[0064] If the result of S702 is true (S702:YES), manager 173 selects hierarchical checker 171 and executes hierarchical checker 171 (S703). If the result of S702 is false (S702:YES), manager 173 selects hierarchical checker 171 and executes hierarchical checker 171 (S703). NO ), Manager 173 selects Naive Checker 172 and runs Naive Checker 172 (S70 4 ).
[0065] According to this embodiment, if the policy violation rate is high, the hierarchical checker 171 is executed, which does not necessarily cause the organization rule checker 113 to run. On the other hand, if the rule violation rate is high, the organization rule checker 113 is likely to run, so the naive checker 172 is executed, which causes the data flow policy checker 191 to run in parallel with the organization rule checker 113. In this way, an appropriate query compliance check is performed according to the calculated violation rate, that is, a query compliance check with high resource utilization efficiency is performed. [Third Embodiment]
[0066] Figure 8 shows the third embodiment. Query processing system configuration This indicates.
[0067] The query checker 161 includes a hierarchical checker 171 and a data flow policy checker 191, as well as a naive checker 172 and a manager 173. Furthermore, the storage device 22 stores a user intent table 800 (an example of user intent information) that represents user intent.
[0068] In this embodiment, "user intent" refers to the type of query compliance check to be performed. The manager 173 selects whether to execute the hierarchical checker 171 or the naive checker 172, according to the user intent represented in the user intent table 800. This enables query compliance checks to be performed in accordance with the user intent.
[0069] Figure 9 shows the configuration of the user decision table 800.
[0070] According to the user intent table 800, there are four variations of query compliance checks, and these four variations are represented by two bits, M1 and M2.
[0071] M1, as in the second embodiment, indicates whether to execute the hierarchical checker 171 or the naive checker 172. Specifically, "0" means the hierarchical checker 171, and "1" means the naive checker 172.
[0072] M2 indicates whether to perform only data flow policy checks or organizational rule checks. Specifically, "1" means only data flow policy checks, and "0" means only organizational rule checks.
[0073] The user intent table 800 indicates which of the four variations the user intends to follow when performing a query compliance check. According to the user intent table 800 illustrated in Figure 9, the user intent is (M1,M2)=(0,1), that is, to execute the hierarchical checker 171 and perform only the data flow policy check. In this case, the organizational rule check will not be performed regardless of the result of the data flow policy check.
[0074] Figure 10 shows the overall flow of query processing according to the third embodiment.
[0075] S1001 and S1003-S1005 are the same as S201 and S203-S205 in the first embodiment. S1002 differs from S202 in the first embodiment, as shown in Figure 11.
[0076] Figure 11 shows the flow of S1002 (query compliance check according to the third embodiment) in Figure 10.
[0077] The manager 173 refers to the user intention table 800 (S1101) and identifies the user intention. The manager 173 determines whether M1 among the identified user intentions is "0" (S1102).
[0078] If the determination result of S1102 is true (S1102: YES), the manager 173 selects the hierarchical checker 171 and causes the hierarchical checker 171 to execute (S1103). On the other hand, if the determination result of S1102 is false (S1102: NO ), the manager 173 selects the naive checker 172 and causes the naive checker 172 to execute (S1104). The details of S1103 and S1104 are as follows.
[0079] <Details of S1103>
[0080] The hierarchical checker 171 analyzes the query (S1131), identifies one or more data items of the I / O target data according to the query, and causes the data flow policy checker 191 to perform a data flow policy check on the identified one or more data items (S1132).
[0081] Next, the hierarchical checker 171 determines whether M2 among the user intentions is "0" (S1133). If the determination result of S1133 is false (S1133: NO), that is, when the user intention is only the execution of the hierarchical checker 171 and the data flow policy check, regardless of the result of the data flow policy check, the hierarchical checker 171 does not execute the organizational rule check. The hierarchical checker 171 determines the overall check result without executing the organizational rule check (S1136).
[0082] When the determination result of S1133 is true (S1133: YES), that is, when the user intention is to perform only the hierarchical checker 171 and the organization rule check, similar to the first embodiment, the organization rule check is executed on the organization rule checker 113 according to the result of the data flow policy check. Specifically, when the result of the data flow policy check is false (S1134: NO), the hierarchical checker 171 determines the overall check result without executing the organization rule check (S1136). On the other hand, when the result of the data flow policy check is true (S1134: YES), the hierarchical checker 171 causes the organization rule check to be executed (S1135) and determines the overall check result based on the results of the data flow policy check and the organization rule check (S1136).
[0083] <Details of S1104>
[0084] The naive checker 172 determines whether M2 in the user intention is "0" or not (S1141).
[0085] When the determination result of S1141 is true (S1141: YES), that is, when the user intention is to perform only the naive checker 172 and the organization rule check, the naive checker 172 causes the organization rule check to be executed on the organization rule checker 113 (S1143), but does not cause the data flow policy check to be executed on the data flow policy checker 191. In this case, the naive checker 172 determines the overall check result based on the result of the organization rule check (S1144).
[0086] On the other hand, if the result of the judgment in S1141 is false (S1141: NO), that is, if the user's intention is to perform only the naive checker 172 and the data flow policy check, the naive checker 172 causes the data flow policy checker 191 to perform the data flow policy check (S1142), and in parallel causes the organization rule checker 113 to perform the organization rule check (S1143). In this case, the naive checker 172 determines the overall check result based on the results of the data flow policy check and the organization rule check (S1144).
[0087] According to this embodiment, four variations of query compliance checks are provided, and the variation that follows the user's preference can be implemented. [Fourth Embodiment]
[0088] Figure 12 shows the overall flow of query processing according to the fourth embodiment.
[0089] This embodiment is based on a combination of the second and third embodiments. The query checker 161 receives a query (S1201), and the manager 173 determines whether the value "Z" (the number of queries that violate compliance) exceeds a certain number T (S1202).
[0090] If the result of S1202 is true (S1202:YES), that is, if there is a sufficient history of compliance violations, a check based on the violation rate, i.e., S602 to S606 in Figure 6, is performed.
[0091] On the other hand, if the result of S1202 is false (S1202: NO), that is, if the history of compliance violations is insufficient, a check in accordance with the user's intent, i.e., S1002 to S1005 in Figure 10, is performed.
[0092] According to this embodiment, if the history of compliance violations is insufficient to select an appropriate checker from among the hierarchical checker 171 and the naive checker 172 according to the violation rate, a query compliance check that follows the user's intent is performed, including selecting a checker from among the hierarchical checker 171 and the naive checker 172 according to the user's intent. Therefore, even if the history of compliance violations is insufficient, a query compliance check including the selection of an appropriate checker can be expected.
[0093] Although several embodiments have been described above, these are merely illustrative examples for explaining the present invention and are not intended to limit the scope of the invention to these embodiments only. The present invention can be carried out in various other forms.
[0094] For example, the present invention can also be applied to queries on object sets that are not limited to databases. An object set is one or more objects. In the embodiments described above, the object set may be DB111 or a table in DB111, and the objects may be records and / or columns in the table. An object may also be a file in the file system space provided by file storage, in which case an example of a data item identified in the data flow policy check may be a file name.
[0095] Furthermore, for example, the query source may be an application executed inside or outside the query processing system 105, instead of or in addition to the user terminal 103.
[0096] Furthermore, for example, the DBMS180 may be provided in the query processing system 105 instead of the organizational system 101.
[0097] Furthermore, for example, the organizational rule checker 113 may be provided in the query processing system 105 for at least one organizational system 101. The organizational rule checker 113 provided in the query processing system 105 may be common to two or more organizations. [Explanation of Symbols]
[0098] 105: Query Processing System
Claims
1. An interface device that accepts queries, A storage device that stores data flow policy information, which is information representing the data flow policy, The processor connected to the interface device and storage device Equipped with, The aforementioned data flow policy is a restriction on data movement within or between countries, and is a policy that specifies restrictions including data items whose movement within or between countries is permitted and / or prohibited. The processor executes a hierarchical checker for the query, The aforementioned hierarchical checker is By analyzing the aforementioned query, one or more data items of the I / O (Input / Output) target data that conform to the query are identified. The data flow policy checker is instructed to perform a data flow policy check on one or more of the identified data items. If the result of the aforementioned data flow policy check is true, the organizational rule checker is instructed to perform an organizational rule check on the I / O target data that conforms to the aforementioned query. If the result of the aforementioned organizational rule check is false, the query returns a result indicating a compliance violation. If the result of the data flow policy check is false, the query returns a result indicating a non-compliance without having the organization rule check run by the organization rule checker. For one or more identified data items, the data flow policy check is a check to determine whether or not those data items comply with the data flow policy represented by the data flow policy information. With respect to the I / O target data according to the aforementioned query, the organizational rule check is a check to determine whether the data complies with the organizational rules represented by the organizational rule information of the organization that manages the data. Organizational rules are rules that define restrictions imposed based on multiple conditions regarding data that is permitted to be shared outside the organization. Query processing system.
2. The processor selects whether to execute the hierarchical checker, which causes at least the data flow policy checker, or the naive checker, which causes at least the organization rule checker, for the query, and executes the selected checker. In the processing performed by the aforementioned hierarchical checker, the necessity of executing the organizational rule checker depends on the results of the data flow policy check. In the processing performed by the aforementioned naive checker, the decision on whether or not to run the data flow policy checker is independent of the results of the organizational rule check. When the naive checker is executed and the naive checker causes the data flow policy checker to execute, the naive checker causes the data flow policy checker and the organization rule checker to execute in parallel. The query processing system according to claim 1.
3. The processor calculates the violation rate of at least one of the policy violation rate and the rule violation rate, The processor selects whether to execute the hierarchical checker or the naive checker based on the calculated violation rate. The aforementioned policy violation rate is the ratio of queries where the data flow policy check result was false to the total number of queries that violated compliance. The aforementioned rule violation rate is the ratio of queries where the organizational rule check result was false to the total number of queries that violated compliance. The query processing system according to claim 2.
4. The processor selects the hierarchical checker if the policy violation rate is greater than or equal to a first threshold, or if the rule violation rate is less than or equal to a second threshold. The processor selects the naive checker if the policy violation rate is less than the first threshold, or if the rule violation rate exceeds the second threshold. The query processing system according to claim 3.
5. User intent information representing the user's intent is set in the aforementioned storage device. The processor selects whether to execute the hierarchical checker or the naive checker according to the user's intent expressed in the user intent information. The query processing system according to claim 2.
6. The aforementioned user intent represents (A) and (B) below, (A) Which of the above hierarchical checker and the above naive checker should be executed? (B) Which of the following checks should be performed: data flow policy check or organizational rule check? If (A) represents the execution of the hierarchical checker and (B) represents the execution of only the data flow policy check, the hierarchical checker is executed, and even if the result of the data flow policy check in the processing performed by the hierarchical checker is true, the organization rule checker is not executed. If (A) represents the execution of the hierarchical checker and (B) represents the execution of only the organizational rule check, the hierarchical checker is executed, and if the result of the data flow policy check in the processing performed by the hierarchical checker is true, the organizational rule checker is executed. If (A) represents the execution of the naive checker and (B) represents the execution of only the data flow policy check, the naive checker is executed, and in the processing performed by the naive checker, both the data flow policy checker and the organization rule checker are executed. If (A) represents the execution of the naive checker and (B) represents the execution of only the organization rule check, the naive checker is executed, and in the processing performed by the naive checker, the data flow policy checker is not executed, but the organization rule checker is executed. The query processing system according to claim 5.
7. The organizational system of the organization is connected to the aforementioned interface device. The organizational system is a computer system that handles the input and output of data managed by an organization, and includes an organizational rule checker that performs organizational rule checks to determine whether the organization's rules are being followed. The query processing system according to claim 1.
8. The one or more data items mentioned above are the table name of a table in the database, and / or the column name of a column in that table. The query processing system according to claim 1.
9. The processor calculates the violation rate of at least one of the policy violation rate and the rule violation rate, User intent information representing the user's intent is set in the aforementioned storage device. The aforementioned processor, Determine whether the number of compliance violation queries exceeds a certain number. If the result of the determination is true, based on the calculated violation rate, select whether to run the hierarchical checker or the naive checker. If the result of the determination is false, the system selects whether to execute the hierarchical checker or the naive checker, in accordance with the user's intent expressed in the user intent information. The aforementioned policy violation rate is the ratio of queries where the data flow policy check result was false to the total number of queries that violated compliance. The aforementioned rule violation rate is the ratio of queries where the organizational rule check result was false to the total number of queries that violated compliance. The query processing system according to claim 2.
10. The computer analyzes the received query to identify one or more data items of the I / O (Input / Output) data that are subject to that query. The computer performs a data flow policy check on one or more of the identified data items. If the result of the data flow policy check is true, the computer will perform an organizational rule check on the I / O target data that conforms to the query. If the result of the aforementioned organizational rule check is false, the computer returns a result indicating that the query is a non-compliance. If the result of the data flow policy check is false, the computer returns a result indicating that the query is non-compliant without performing the organizational rule check. For the one or more data items identified, the data flow policy check is a check to determine whether the one or more data items comply with the data flow policy represented by the data flow policy information. The aforementioned data flow policy is a restriction on data movement within or between countries, and is a policy that specifies restrictions including data items whose movement within or between countries is permitted and / or prohibited. With respect to the I / O target data according to the aforementioned query, the organizational rule check is a check to determine whether the data complies with the organizational rules represented by the organizational rule information of the organization that manages the data. Organizational rules are rules that define restrictions imposed based on multiple conditions regarding data that is permitted to be shared outside the organization. Query processing method.
11. By analyzing the received query, one or more data items of the I / O (Input / Output) target data that corresponds to that query are identified. Perform a data flow policy check on one or more of the identified data items. If the result of the aforementioned data flow policy check is true, an organizational rule check is performed on the I / O target data according to the aforementioned query. If the result of the aforementioned organizational rule check is false, the query returns a result indicating a compliance violation. If the result of the data flow policy check is false, the query returns a result indicating a compliance violation without performing the organizational rule check. Have the computer do it, For the one or more data items identified, the data flow policy check is a check to determine whether the one or more data items comply with the data flow policy represented by the data flow policy information. The aforementioned data flow policy is a restriction on data movement within or between countries, and is a policy that specifies restrictions including data items whose movement within or between countries is permitted and / or prohibited. With respect to the I / O target data according to the aforementioned query, the organizational rule check is a check to determine whether the data complies with the organizational rules represented by the organizational rule information of the organization that manages the data. Organizational rules are rules that define restrictions imposed based on multiple conditions regarding data that is permitted to be shared outside the organization. Computer program.
Citation Information
Patent Citations
Database management method, database management device, and database management program
JP2008134936A
JPP7060738B
Compliance framework for providing regulatory compliance check as a service
US20150302420A1
Column based data access controls
US20180373757A1
Regulation-compliant processing of queries and storing of data in an on-demand environment
US20190228171A1