WO2011067932A1 - 表検索装置、表検索方法、及び、表検索システム - Google Patents

表検索装置、表検索方法、及び、表検索システム Download PDF

Info

Publication number
WO2011067932A1
WO2011067932A1 PCT/JP2010/007024 JP2010007024W WO2011067932A1 WO 2011067932 A1 WO2011067932 A1 WO 2011067932A1 JP 2010007024 W JP2010007024 W JP 2010007024W WO 2011067932 A1 WO2011067932 A1 WO 2011067932A1
Authority
WO
WIPO (PCT)
Prior art keywords
column
search
unit
value
reception processing
Prior art date
Application number
PCT/JP2010/007024
Other languages
English (en)
French (fr)
Inventor
隆敏 柳瀬
Original Assignee
Yanase Takatoshi
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 Yanase Takatoshi filed Critical Yanase Takatoshi
Priority to KR1020127014479A priority Critical patent/KR20120120159A/ko
Priority to JP2011508754A priority patent/JP5006472B2/ja
Priority to US13/513,282 priority patent/US20120239688A1/en
Priority to CN201080054873.0A priority patent/CN102648468B/zh
Publication of WO2011067932A1 publication Critical patent/WO2011067932A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Definitions

  • the present invention relates to a table search apparatus, a table search method, and a table search system for searching table data distributed and stored in a network.
  • the database search engine can quickly find out the storage location of the data to be searched in the database by searching the index first instead of searching the table data directly (see, for example, Patent Document 1). ).
  • a key-value store (KVS) database includes two types of computers: a computer that holds and handles only index information and a computer that holds and handles only search target data.
  • a search for a computer holding data to be searched is performed on the former computer, and then data in the computer is searched on the searched computer, thereby distributing the load of index management.
  • this method it is essential to provide a plurality of computers, and there are problems from the viewpoint of installation location, cost, and power saving.
  • an object of the present invention is to provide a table search apparatus that can search table data as fast as when an index is generated without generating an index.
  • a table search device shows a table structure including a plurality of rows and a plurality of columns including a first column and a second column associated with the first column.
  • a plurality of reception processing units each storing a plurality of disassembly tables obtained by dividing table data as data in the row direction, a transmission unit, the first column, and the second column
  • a search query including a column identifier, which is an identifier for identifying one of the columns, and a search value is transmitted to the transmission unit, and a search is an output value output from each of the plurality of reception processing units
  • a control unit that receives the output value and outputs the received search output value, and the transmission unit sends the search query received from the control unit to all of the plurality of reception processing units.
  • reception processing unit includes the acquired search query. It is determined whether or not the search value included in the search query is included in the column specified by the column identifier. If included, the column is associated with the column specified by the column identifier. The value included in the selected column is output as the search output value.
  • the table data is subdivided into a plurality of decomposition table units and stored in the reception processing unit. Therefore, each reception processing unit determines whether or not the search value included in the search query is included in the column specified by the column identifier included in the search query faster than in the case of searching the entire table data. You can search.
  • the apparatus further includes a dividing unit that generates the plurality of decomposition tables from the table data, wherein the control unit acquires the plurality of decomposition tables from the dividing unit, and receives the acquired decomposition tables from the plurality of decomposition tables.
  • a dividing unit that generates the plurality of decomposition tables from the table data
  • the control unit acquires the plurality of decomposition tables from the dividing unit, and receives the acquired decomposition tables from the plurality of decomposition tables.
  • One each may be stored in each processing unit.
  • the table search device can generate new table data and divide it by the dividing unit, thereby generating a decomposition table corresponding to the new table data. Therefore, the table data to be searched can be updated.
  • the dividing unit selects one of the first column and the second column as the reference column for the table data, and for each of the plurality of decomposition tables, a value included in the reference column is selected.
  • the plurality of decomposition tables are generated so that there is only one in the reference column in the decomposition table.
  • the dividing unit selects one of the first column and the second column as the reference column for the table data, and for each of the plurality of decomposition tables, a value included in the reference column is selected. (A) there is only one in the reference column in the decomposition table, and (B) the plurality of decomposition tables so that each of the plurality of decomposition tables is only one of the values included in the reference column. Generate a decomposition table.
  • control unit uses the identifier for specifying the reference column as the column identifier, sets a value for searching whether or not it is included in the reference column as the search value, and sends the search query to the transmission unit. Send to.
  • control unit uses, as the column identifier, an identifier that identifies a third column that is the other column associated with the reference column that is one of the first column and the second column,
  • the search query may be transmitted to the transmitting unit using a value for searching whether or not it is included in the third column as the search value.
  • the dividing unit generates a plurality of the decomposition tables by dividing the table data line by line.
  • two or more reception processing units among the plurality of reception processing units determine whether the search value is included in a column specified by the column identifier.
  • One search unit which is a processing unit for determining whether or not, is shared.
  • the number of parts constituting the table search device can be reduced.
  • downsizing, power saving, price reduction, etc. of the table search device can be realized.
  • the present invention can be realized not only as such a table search apparatus, but also as a table search method using characteristic means included in the table search apparatus as a step, or such a characteristic step in a computer. It can also be realized as a program to be executed. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM and a transmission medium such as the Internet.
  • the present invention can also be realized as a semiconductor integrated circuit (LSI) that realizes part or all of the functions of such a table search apparatus.
  • LSI semiconductor integrated circuit
  • the present invention can be realized as a table search system including such a table search apparatus.
  • the present invention can provide a table search apparatus capable of searching table data as fast as when an index is generated without generating an index.
  • FIG. 1 is a block diagram showing an overall configuration of a table search system including a table search apparatus according to Embodiment 1 of the present invention.
  • FIG. 2 is a block diagram showing a hardware configuration of a computer system that implements a table search system including the table search apparatus according to Embodiments 1 to 4 of the present invention.
  • FIG. 3A is a diagram showing table data recorded in the table search apparatus according to Embodiments 1 to 4 of the present invention.
  • FIG. 3B is a diagram showing a nerve cell connection state indicated by the table data shown in FIG. 3A.
  • FIG. 4A is a diagram showing a first decomposition table stored in the table search apparatus according to Embodiment 1 of the present invention.
  • FIG. 4B is a diagram showing a second decomposition table stored in the table search apparatus according to Embodiment 1 of the present invention.
  • FIG. 5A is a diagram showing a first search query in the table search system according to Embodiments 1 to 4 of the present invention.
  • FIG. 5B is a diagram showing a second search query in the table search system according to Embodiments 1 to 4 of the present invention.
  • FIG. 6 is a diagram showing search processing for the second search query shown in FIG. 5B by the table search apparatus according to Embodiments 1 to 4 of the present invention.
  • FIG. 7 is a flowchart showing the flow of processing in the table search system according to Embodiments 1 to 4 of the present invention.
  • FIG. 5A is a diagram showing a first search query in the table search system according to Embodiments 1 to 4 of the present invention.
  • FIG. 5B is a diagram showing a second search query in the table search system according to Embodiments 1 to 4 of the present invention.
  • FIG. 8 is a flowchart showing the flow of search processing performed by the reception processing unit according to Embodiments 1 to 4 of the present invention.
  • FIG. 9 is a block diagram showing an overall configuration of a table search system including a table search apparatus according to Embodiment 2 of the present invention.
  • FIG. 10A is a diagram showing a first decomposition table stored in the table search device according to Embodiment 2 of the present invention.
  • FIG. 10B is a diagram showing a second decomposition table stored in the table search apparatus according to Embodiment 2 of the present invention.
  • FIG. 10C is a diagram showing a third decomposition table stored in the table search device according to Embodiment 2 of the present invention.
  • FIG. 10A is a diagram showing a first decomposition table stored in the table search device according to Embodiment 2 of the present invention.
  • FIG. 10B is a diagram showing a second decomposition table stored in the table search apparatus according to Embodiment 2 of the present invention.
  • FIG. 11 is a block diagram showing an overall configuration of a table search system including a table search apparatus according to Embodiment 3 of the present invention.
  • FIG. 12 is a block diagram showing an overall configuration of a table search system including a table search apparatus according to Embodiment 4 of the present invention.
  • FIG. 1 is a block diagram showing an overall configuration of a table search system 100 including a table search apparatus 200 according to the present invention.
  • the table search system 100 includes a table search device 200 and a query device 300.
  • the table search device 200 stores table data that is a search target divided into units called decomposition tables described later.
  • the table search apparatus 200 searches the table data for a search value included in the search query that is a search processing request signal transmitted from the query apparatus 300, and transmits the search result as a search output value to the query apparatus 300. To do.
  • values are stored in the cells specified by the rows and columns of the table data. More specifically, in the table data, one value in the first column and one value in the second column are associated with each other, and the associated first column value and second column value are associated with each other. Values are placed on the same line.
  • the table search device 200 can perform a search. In the table data, the table search apparatus 200 can perform a search even when no value is stored in any cell of the first column and the second column. There is no point in searching.
  • the table retrieval apparatus 200 includes a transmission unit 210, reception processing units 220 to 221, a control unit 230, a first communication path 202, and a second communication path 204.
  • the transmission unit 210 is a processing unit that transmits the search query acquired from the query device 300 to each of a plurality of reception processing units included in the table search device 200.
  • the transmission unit 210 includes a transmission buffer 212 and an output unit 213.
  • the transmission buffer 212 is a buffer that temporarily buffers when a large number of search queries are received until the search queries are transmitted to the reception processing unit. Specifically, it is composed of DRAM (Dynamic Random Access Memory), SRAM (Static Random Access Memory), or the like.
  • DRAM Dynamic Random Access Memory
  • SRAM Static Random Access Memory
  • the output unit 213 converts the received search query into a signal type corresponding to the first communication path 202 and outputs it. For example, if the first communication path 202 is an LSI internal bus or an Ethernet (registered trademark) wired cable, the output unit 213 outputs a search query as an electric signal of an appropriate format, and the first communication path 202 Is an optical cable, the output unit 213 outputs the search query as an optical signal having an appropriate format.
  • the output unit 213 always transmits a search query to all reception processing units included in the table search device 200.
  • the reception processing units 220 to 221 are reception processing units that substantially execute table search processing.
  • the number of reception processing units included in the table search device 200 is at least as many as the number of decomposition tables described later.
  • the table search apparatus 200 will be described as including two reception processing units, a reception processing unit 220 and a reception processing unit 221.
  • the reception processing unit 220 includes an acquisition unit 231, a storage unit 232, and a search unit 233.
  • the reception processing unit 221 includes an acquisition unit 231, a storage unit 234, and a search unit 233.
  • the acquisition unit 231 is a communication interface for acquiring the search query transmitted from the transmission unit 210 via the first communication path 202.
  • Each of the storage unit 232 and the storage unit 234 stores a decomposition table that is a part of table data that is a search target transmitted from the control unit.
  • One reception processing unit stores only one decomposition table.
  • the storage unit is configured by a nonvolatile memory such as a flash memory, a DRAM, an SRAM, or the like.
  • the search unit 233 executes a search process for determining whether or not the search value included in the search query acquired by the acquisition unit 231 is stored in the storage unit.
  • the search unit 233 uses the search result as the search output value as the second communication path 204. To the control unit 230.
  • the control unit 230 acquires a plurality of decomposition tables from the query device, and transmits each of the acquired decomposition tables to the reception processing unit designated for each decomposition table by the query device via the second communication path 204. . Further, the control unit 230 acquires a search query from the query device, and transmits the acquired search query to the transmission unit 210 via the second communication path 204. Further, the control unit 230 acquires the search output value output from the search unit 233 included in the reception processing units 220 to 221 via the second communication path 204 and outputs it to the query device 300.
  • the first communication path 202 is a communication path for transmitting a search query from the output unit 213 included in the transmission unit 210 to each of the reception processing units 220 to 221.
  • an internal bus of an integrated circuit, an Ethernet wired cable, an optical communication cable, or the like may be used.
  • the second communication path 204 is a communication path for transmitting a search query from the control unit 230 to the transmission unit 210.
  • the second communication path 204 is also a communication path for transmitting a decomposition table from the control unit 230 to each reception processing unit and transmitting a search result from each reception processing unit to the control unit 230. Similar to the first communication path 202, it is conceivable that an internal bus of an integrated circuit, an Ethernet cable, an optical communication cable, or the like is used as the second communication path 204.
  • the query device 300 includes a dividing unit 302 and a query unit 303.
  • the dividing unit 302 divides the table data to be searched into a plurality of decomposed table shapes having a data structure using a table for storing in the table searching device 200, and the table searching device 200 uses each decomposed table. One is assigned to each reception processing unit and stored.
  • the dividing unit 302 executes a plurality of data according to a rule described later. Divide into decomposition tables.
  • the dividing unit 302 includes a network address that is a unique identifier of the table search device 200 and a reception processing unit address that is a unique identifier of each of the plurality of reception processing units included in the table search device 200.
  • One address set is designated as the transmission destination for each of the plurality of disassembly tables.
  • the dividing unit 302 causes the control unit 230 to transmit each disassembly table toward the designated transmission destination.
  • each decomposition table to each reception processing unit is performed, for example, on the assumption that the division unit 302 has a management table indicating which reception processing unit is currently allocated the decomposition table. Do as follows.
  • the dividing unit 302 searches the reception processing unit to which the current decomposition table is not assigned in order from the top of the management table (or from the bottom), and generates the generated decomposition for the searched reception processing unit. Allocate tables one by one.
  • the query unit 303 transmits a search query for searching each of the decomposition tables stored in the reception processing unit to the control unit 230.
  • the search query may be generated each time based on information acquired from the user by a GUI provided in the query device 300, for example, and the query unit 303 stores the search query stored in advance in a ROM (Read Only Memory) or the like. You may read.
  • the query device 300 acquires a search result for the transmitted search query from the control unit 230.
  • the query device 300 includes a display device (not shown)
  • the acquired search result may be displayed on the display device.
  • the query device 300 includes a printing device (not shown)
  • the acquired search result may be printed from the printing device.
  • FIG. 2 is a block diagram showing a hardware configuration of a computer system that implements the table search system 100 including the table search apparatus 200 according to Embodiment 1 of the present invention.
  • FIG. 2 is a block diagram illustrating a hardware configuration of a computer system that implements the table search apparatus 200 and the query apparatus 300 that constitute the table search system 100.
  • the table search device 200 and the query device 300 constituting the table search system 100 are a computer 34, a keyboard 36 and a mouse 38 for giving instructions to the computer 34, and a display for presenting information such as calculation results of the computer 34. 32, a CD-ROM (Compact Disc-Read Only Memory) device 40 for reading a program executed by the computer 34, and a communication modem (not shown).
  • a computer 34 a keyboard 36 and a mouse 38 for giving instructions to the computer 34, and a display for presenting information such as calculation results of the computer 34.
  • a CD-ROM (Compact Disc-Read Only Memory) device 40 for reading a program executed by the computer 34
  • a communication modem not shown.
  • a program that is a process performed by the table search device 200 and the query device 300 constituting the table search system 100 is stored in a CD-ROM 42 that is a computer-readable medium, and is read by the CD-ROM device 40.
  • the data is read by the communication modem 52 through a computer network.
  • the computer 34 includes a CPU (Central Processing Unit) 44, a ROM (Read Only Memory) 46, a RAM (Random Access Memory) 48, a hard disk 50, a communication modem 52, and a bus 54.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • the CPU 44 executes the program read via the CD-ROM device 40 or the communication modem 52.
  • the ROM 46 stores programs and data necessary for the operation of the computer 34.
  • the RAM 48 stores data such as parameters at the time of program execution.
  • the hard disk 50 stores programs and data.
  • the communication modem 52 communicates with other computers via a computer network.
  • the bus 54 connects the CPU 44, the ROM 46, the RAM 48, the hard disk 50, the communication modem 52, the display 32, the keyboard 36, the mouse 38, and the CD-ROM device 40 to each other.
  • the system LSI is a super multifunctional LSI manufactured by integrating a plurality of components on one chip, and specifically, a computer system including a microprocessor, a ROM, a RAM, and the like. .
  • a computer program is stored in the RAM.
  • the system LSI achieves its functions by the microprocessor operating according to the computer program.
  • a part or all of the constituent elements constituting each of the above devices may be constituted by an IC card or a single module that can be attached to and detached from each device.
  • the IC card or module is a computer system that includes a microprocessor, ROM, RAM, and the like.
  • the IC card or the module may include the super multifunctional LSI described above.
  • the IC card or the module achieves its function by the microprocessor operating according to the computer program. This IC card or this module may have tamper resistance.
  • the present invention may also be a computer system including a microprocessor and a memory, in which the memory stores the computer program, and the microprocessor operates according to the computer program.
  • the program may be carried out by another independent computer system by recording the program on the medium and transferring the program, or by transferring the program via the network or the like.
  • FIG. 3A is a diagram showing table data 240 recorded in the table search apparatus 200 according to Embodiment 1 of the present invention.
  • the table data has a first column 241 and a second column 242 associated with the first column 241.
  • the table data may include other columns.
  • the table data shown in FIG. 3A includes data for three lines except for the first header line, but may include more lines.
  • FIG. 3A is tabular data indicating a connection state between nerve cells.
  • FIG. 3B is a diagram showing a connection state of nerve cells shown in FIG. 3A using a directed graph.
  • the first column 241 indicates the node number (for example, 3098 or 4001) of the nerve cell that is the parent node, and the second column 242 indicates the node number (for example, 14 or 107) of the nerve cell that is the child node.
  • the data recorded in the table search system 100 according to the present embodiment is not limited to this, and is arbitrary table data including the first column and the second column associated with the first column. May be.
  • FIG. 4A is a diagram showing a first decomposition table stored in the storage unit 232 included in the table search apparatus according to Embodiment 1 of the present invention.
  • FIG. 4B is a figure which shows the 2nd decomposition
  • the decomposition table has a first column 241 and a second column 242.
  • the dividing unit 302 generates a plurality of decomposition tables by dividing (and combining) the table data 240 in the row direction so as to satisfy the following conditions.
  • the dividing unit 302 selects one of the first column 241 and the second column 242 as a “reference column”.
  • the first column 241 is selected as the reference column.
  • the division unit 302 has (A) only one value included in the first column 241 as the reference column, and (B) a plurality of values.
  • the table data 240 is divided in the row direction so that each decomposition table has only one value included in the first column 241 as the reference column.
  • the dividing unit 302 (1) rearranges each row included in the table data 240 in descending or ascending order based on the value included in the first column 241, and (2) the same as the first column 241. It is conceivable to divide the table data 240 in the row direction so that only all rows including values are included in one decomposition table.
  • the table data 240 is divided into two, a first decomposition table shown in FIG. 4A and a second decomposition table shown in FIG. 4B.
  • the first column 241 of the first decomposition table contains only 3098
  • the first column 241 of the second decomposition table contains only 4001.
  • the decomposition table including the value 3098 in the first column 241 is only the first decomposition table
  • the decomposition table including the value 4001 in the first column 241 is only the second decomposition table.
  • the reference column used when generating the decomposition table may be the second column.
  • other methods for generating the decomposition table can be considered, and details thereof will be described later.
  • FIG. 5A is a diagram showing a first search query processed by the search unit 233 included in the table search system 100 according to Embodiment 1 of the present invention.
  • FIG. 5B is a diagram showing a second search query processed by the search unit 233 included in the table search system 100 according to Embodiment 1 of the present invention.
  • Each search query is, for example, a column identifier 420 that specifies whether to search the first column 241 or the second column 242 of each decomposition table after the character string “SELECT” indicating a search query. And a search value 422 that is a value for searching whether or not it is included in the column specified by the column identifier 420.
  • the first column 241 is specified as the column identifier 420 and 3098 is specified as the search value 422.
  • the search unit 233 included in the reception processing unit 220 searches whether 3098 is included in the first column 241 of the first decomposition table stored in the storage unit 232.
  • the search unit 233 included in the reception processing unit 220 simply compares the value of the first row excluding the header row in the first column 241 with the search value 3098, and then compares the first value in the first decomposition table. It can be determined whether or not 3098 is included in the column 241.
  • the search unit 233 included in the reception processing unit 220 is associated with the first column 241. All the values included in the second column 242 are output. That is, the search unit 233 included in the reception processing unit 220 outputs 14 and 107 to the control unit 230 as search output values.
  • the dividing unit 302 sets the first column 241 and the second column 242 for each decomposition table. It is conceivable to include information indicating which is the reference sequence. Alternatively, the dividing unit 302 transmits information indicating which of the first column 241 and the second column 242 is the reference column to the control unit 230 separately from the decomposition table, and the control unit 230 May be transmitted to all reception processing units via the transmission unit 210.
  • the search unit 233 included in the reception processing unit 221 has a value of 3098 for the first row excluding the header row in the first column 241 of the second decomposition table stored in the storage unit 234. It is determined whether or not there is.
  • the search unit 233 included in the reception processing unit 221 outputs nothing.
  • the control unit 230 included in the table search apparatus 200 has a value of 3098 in the first column as the reference column in the table data 240. In some cases, all values (14 and 107) included in the corresponding second column can be output to the query device 300.
  • the second column 242 is specified as the column identifier 420 and 14 is specified as the search value 422.
  • the search unit 233 included in the reception processing unit 220 searches whether 14 is included in the second column 242 of the first decomposition table stored in the storage unit 232. All values in the first column 241 associated with the column 242 are output as search output values.
  • FIG. 6 is a diagram showing processing of the second search query shown in FIG. 5B by the table search device according to Embodiment 1 of the present invention.
  • the value included in the first column 241 of the first decomposition table is only 3098. Therefore, the search unit 233 included in the reception processing unit 220 cancels the subsequent search in the second column 242 when the search value 14 is first found in the second column 242, and includes all of the search values included in the first column 241. Value (3098) can be output. That is, using the fact that only one value is included in the first column 241, the search area of the corresponding second column 242 can be pruned.
  • the search unit 233 included in the reception processing unit 220 determines that the value of the first row excluding the header row matches 14 in the second column 242 of the first decomposition table, the subsequent search is aborted. , 3098 as all values included in the corresponding first column 241 are output as search output values.
  • the search unit 233 included in the reception processing unit 221 searches whether 14 is included in the second column 242 of the second decomposition table stored in the storage unit 234.
  • the search unit 233 included in the reception processing unit 221 uses all the values included in the corresponding first column 241.
  • a certain 4001 is output as a search output value.
  • the control unit 230 included in the table search device 200 has the value of the second column 242 in the table data 240 being 14. All values (3098 and 4001) included in the corresponding first column 241 can be output to the query device 300.
  • search queries shown in FIGS. 5A and 5B are examples, and need not necessarily have the same format.
  • the search query only needs to include at least a column identifier and a search value.
  • FIG. 7 is a flowchart showing the flow of processing in the table search system 100 according to Embodiment 1 of the present invention.
  • the dividing unit 302 divides the table data to be searched into a plurality of decomposition tables (S500).
  • the dividing unit 302 assigns each of the plurality of decomposition tables in association with each of the plurality of reception processing units included in the table search apparatus 200 (S502).
  • the query unit 303 transmits a search query to the control unit 230.
  • the search query includes at least a column identifier 420 and a search value 422.
  • control unit 230 transmits the received search query to the transmission unit 210. Further, the transmission unit 210 always transmits the acquired search query to all the reception processing units included in the table search device 200 (S504).
  • each of the reception processing units that have acquired the search query executes a search process in the search unit 233 (S506), and outputs the result to the control unit 230.
  • control unit 230 aggregates the search results acquired from the respective reception processing units as necessary, and outputs the final search results to the query device 300 (S508).
  • FIG. 8 is a flowchart showing the flow of search processing performed by the search unit 233 included in the reception processing unit according to Embodiment 1 of the present invention.
  • the search unit 233 determines whether a search query has been acquired (S520). If the search query has not been received from the transmission unit 210 (No in S520), the search unit 233 waits for the search query again.
  • the search unit 233 acquires a column identifier and a search value included in the search query. Next, the search unit 233 determines that the value of the search target row in the column (first column 241 or second column 242) specified by the column identifier among the columns stored in the storage unit is the search value. (S522).
  • the first row excluding the header of the decomposition table stored in the storage unit is designated as the search target row. Note that the storage unit to be searched by the search unit 233 according to the present embodiment is limited to one storage unit included in the “reception processing unit including itself”.
  • the search unit 233 determines whether the column specified by the column identifier is a reference column (S523). . If the column specified by the column identifier is the reference column (Yes in S523), it is clear that it is useless to search any more, so the search process is terminated. On the other hand, when the column specified by the column identifier is not the reference column (No in S523), the search unit 233 specifies the next row as the search target row (S524), and the value of the search target row in the same column Is determined to match the search value (S522).
  • the search unit 233 uses all values included in the column associated with the column specified by the column identifier as search output values. It outputs (S526). For example, when the first column 241 is designated by the column identifier, all values included in the second column 242 are output.
  • each reception processing unit stores a decomposition table obtained by dividing the table data to be searched in advance one by one.
  • the table data includes a first column and a second column.
  • Each decomposition table is generated so that the value included in the reference column that is one of the first column and the second column is only one in all of the plurality of decomposition tables.
  • the table search apparatus 200 can output the search results to the following inquiries (1) and (2) as quickly as when the index is generated without creating an index in advance. Can do. (1) For each row included in the table data, output all values in the second column such that the first column is a search value. (2) For each row included in the table data, output all the values in the first column such that the second column is the search value.
  • the table search apparatus 200 includes (1) a plurality of rows and a plurality of columns including a first column and a second column associated with the first column.
  • a plurality of reception processing units each storing a plurality of disassembly tables obtained by dividing table data that is data indicating the table structure in the row direction, and (2) a transmission unit 210, (3)
  • a search query including a column identifier and a search value that are identifiers for specifying one of the first column and the second column is transmitted to the transmission unit 210, and each of the plurality of reception processing units
  • a control unit 230 is provided that receives a search output value that is an output value to be output and outputs the received search output value.
  • the transmission unit 210 outputs the search query received from the control unit 230 to all of the plurality of reception processing units.
  • the reception processing unit determines whether or not the search value included in the search query is included in the column specified by the column identifier included in the acquired search query.
  • a value included in a column associated with the column specified by the identifier is output as a search output value.
  • the table search apparatus 200 may further include a dividing unit 302 that generates a plurality of decomposition tables from the table data.
  • the control unit 230 acquires a plurality of decomposition tables from the dividing unit 302 and stores the acquired decomposition tables one by one in each of the plurality of reception processing units.
  • the dividing unit 302 selects one of the first column and the second column as the reference column for the table data, and for each of the plurality of decomposition tables, the value included in the reference column is the value in the decomposition table. Generate multiple decomposition tables so that there is only one in the base column.
  • the dividing unit 302 selects one of the first column and the second column as the reference column for the table data, and for each of the plurality of decomposition tables, the value included in the reference column is (A) decomposition.
  • a plurality of decomposition tables may be generated such that there is only one in the reference column in the table, and (B) each of the plurality of decomposition tables is only one of the values included in the reference column.
  • control unit 230 transmits a search query to the transmission unit 210 using an identifier for specifying the reference column as a column identifier and a value for searching whether or not the reference column is included as a search value.
  • control unit 230 uses, as a column identifier, an identifier that identifies the third column that is the other column associated with the reference column that is one of the first column and the second column.
  • a search query may be transmitted to the transmission unit 210 using a value for searching whether or not it is included as a search value.
  • FIG. 9 is a block diagram showing the overall configuration of the table search system 100 including the table search apparatus 200 according to Embodiment 2 of the present invention.
  • the table search apparatus 200 according to the present embodiment has the same configuration as the table search apparatus 200 according to the first embodiment, except that the table search apparatus 200 includes three reception processing units (reception processing unit 220 to reception processing unit 222).
  • a plurality of rows included in the table data 240 are stored in association with one different reception processing unit. This will be described in more detail with reference to FIG.
  • FIG. 10A is a diagram showing a first decomposition table stored in the table search apparatus 200 according to Embodiment 2 of the present invention.
  • FIG. 10B is a diagram showing a second decomposition table stored in the table search apparatus 200 according to Embodiment 2 of the present invention.
  • FIG. 10C is a diagram showing a third decomposition table stored in table search apparatus 200 according to Embodiment 2 of the present invention.
  • the first decomposition table to the third decomposition table correspond to each row of the table data 240, respectively. That is, the dividing unit 302 generates a plurality of decomposition tables corresponding to each row by dividing the table data 240 for each row. Specifically, the first row of the table data 240 corresponds to the first decomposition table, the second row of the table data 240 corresponds to the second decomposition table, and the third row of the table data 240 corresponds to the third decomposition table. Corresponds to the decomposition table.
  • the division unit 302 will be described assuming that the first column 241 is selected as the reference column.
  • the dividing unit 302 stores a plurality of generated disassembly tables in one different reception processing unit.
  • the first decomposition table is stored in the storage unit 232 included in the reception processing unit 220
  • the second decomposition table is stored in the storage unit 234 included in the reception processing unit 221
  • the third decomposition table is stored in the reception processing unit 222.
  • the transmission unit 210 transmits the acquired search query to each of the reception processing units that store the decomposition table of only one row in the storage unit excluding the header row.
  • reception processing unit 220 As an example, but the content of the processing is the same in other reception processing units.
  • the search unit 233 included in the reception processing unit 220 acquires the column identifier 420 and the search value 422 from the search query. Next, the search unit 233 determines whether or not the value of the column specified by the column identifier 420 matches the search value 422 for the first decomposition table stored in the storage unit 232. This determination process always ends with one comparison process because the first decomposition table includes only one row.
  • the search unit 233 determines whether the value of the first column 241 specified as the column identifier 420 matches 3098. To do. As a result of the determination, since the value in the first column 241 matches 3098, the search unit 233 outputs all the values (14) included in the second column 242 that is the other column to the control unit 230.
  • the table search device 200 is designated by the first search query for the table data 240 by the control unit 230 acquiring the values output from the search units 233 included in all the reception processing units. A search can be performed.
  • the search unit 233 determines whether the value included in the second column 242 designated as the column identifier 420 matches 14. In other respects, the same processing as when the first search query is acquired is performed.
  • the dividing unit 302 included in the table search apparatus 200 generates a plurality of decomposition tables by dividing the table data line by line.
  • each row of the table data 240 is associated with one different reception processing unit and stored in the storage unit included in each reception processing unit. .
  • each reception processing unit can output a search result by performing only one comparison process on the acquired search query.
  • the control unit 230 collects the outputs from the reception processing units output in this way, so that the table search apparatus 200 can search the table data at a higher speed than the first embodiment without generating an index. Is possible.
  • FIG. 11 is a block diagram showing an overall configuration of a table search system 100 including a table search apparatus 200 according to Embodiment 3 of the present invention.
  • This embodiment is different from Embodiment 2 in that a plurality of reception processing units (reception processing unit 220 to reception processing unit 222) share one search unit 233.
  • Embodiment 2 only a decomposition table corresponding to one row of table data is stored in the storage unit included in each reception processing unit. Accordingly, the search process performed by the search unit 233 is light. Therefore, it is not necessary for all the reception processing units included in the table search apparatus 200 to include the search unit 233, and a certain number of reception processing units can share the search unit 233 as shown in FIG.
  • the configuration of the reception processing unit 221 can be simplified, and cost reduction, size reduction, and power saving of the table search device 200 can be realized.
  • FIG. 12 is a block diagram showing an overall configuration of a table search system 100 including a table search apparatus 200 according to Embodiment 4 of the present invention.
  • the table search system 100 includes a plurality of table search devices 200.
  • the configuration of the table search apparatus 200 may be, for example, any one of the first to third embodiments.
  • the query unit 303 included in the query device 300 transmits the search query to all the table search devices 200 simultaneously.
  • Each table search device 200 that has acquired the search query transmits the acquired search query to all reception processing units included in the table search device 200. Thereafter, the search processing performed by each reception processing unit can be performed by the same processing as in the first to third embodiments.
  • This configuration is particularly effective in that the scalability of the table search system 100 can be ensured, for example, when the table search apparatus 200 is implemented by hardware such as an integrated circuit.
  • the size of the table data 240 is large, even if the number of decomposition tables obtained by dividing the table data 240 is larger than the number of reception processing units included in one table search device 200, By connecting the table search device 200 in parallel to the query device 300 as many as necessary, the number of reception processing units included in the table search system 100 can be increased. As a result, the searchable table search system 100 can be realized regardless of the size of the table data 240.
  • control unit 230 included in the table search device 200 may include the dividing unit 302 instead of the query device 300.
  • the query device 300 may store a plurality of table data in one table search device 200.
  • the query device 300 assigns a table identifier that uniquely identifies the table to the table data
  • the dividing unit 302 includes a table identifier added to the table data in each decomposition table generated by dividing the table data
  • the storage unit holds a decomposition table including a table identifier
  • the query unit 303 generates a query including a table identifier of the table data to be searched, and transmits the query to the control unit 230.
  • the search unit 233 determines whether or not the table identifier and the search value match. It becomes the procedure.
  • the search unit 233 included in the table search system 100 according to Embodiments 1 to 4 does not determine whether any value is included in the storage unit, not a single value, but a range-specified value. You may judge. For example, if the first column is any value from 3040 to 3090, the cell value may be determined to match the search value (step S522).
  • the present invention can be applied to a table search apparatus, and in particular, to a table search apparatus that searches for a table distributed and held in a network.
  • Table search system 200 table search device 202 first communication path 204 second communication path 210 transmission unit 212 transmission buffer 213 output unit 220, 221, 222 reception processing unit 230 control unit 231 acquisition unit 232, 234, 235 Storage unit 233 Search unit 240 Table data 241 First column 242 Second column 300 Query device 302 Division unit 303 Query unit 420 Column identifier 422 Search value

Landscapes

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

Abstract

 事前にインデックスを生成せずとも高速に検索可能な表検索装置を実現するため、この表検索装置は、第1列及び第2列を含む表データを行方向に分割して得られる、複数の分解表の各々を1つずつ記憶している複数の受信処理部(220、221)と、送信部(210)と、第1列及び第2列のいずれか一方を特定する列識別子と、検索値とを含む検索クエリーを送信部(210)へ送信し、かつ、複数の受信処理部の各々から出力される検索出力値を受信し、受信した検索出力値を出力する制御部(230)とを備えており、送信部は、制御部から受信した検索クエリーを、複数の受信処理部の全てに対して出力し、受信処理部は、取得した検索クエリーに含まれる列識別子によって特定される列に、検索クエリーに含まれる検索値が含まれている場合には、列識別子によって特定される列に対応付けられた他方の列に含まれる値を検索出力値として出力する。

Description

表検索装置、表検索方法、及び、表検索システム
 本発明は、ネットワーク内に分散して記憶されている表データを検索する表検索装置、表検索方法、及び、表検索システムに関する。
 従来、行と列からなる表構造で表現されたデータ(以後、表データという)を高速に検索するための技術として、いわゆるデータベースが広く使われている。
 こうしたデータベースでは、大量の表データを高速に検索するために、「インデックス」と呼ばれる、検索のためのデータを事前に生成する。データベースの検索エンジンは、表データを直接検索する代わりに、まずインデックスを検索することにより、検索対象であるデータの、データベース内における格納場所等を高速に知ることができる(例えば、特許文献1参照)。
特開2001-282813号公報
 しかし、データベースにおいてインデックスを生成することには、主に次の2つの課題がある。
 第1の課題として、インデックスの生成には、複雑な計算処理が必要であり、かつ、新しいデータがデータベースに追加される度にインデックスの再生成が必要となるため、その計算コストが大きいという点が挙げられる。
 これは特に、データの更新が頻繁に発生する場合に、大きな問題となる。
 また、第2の課題として、一般に、第1の課題を解決するために、データベースを実現する装置の大型化が避けられないという点が挙げられる。
 例えば、キーバリューストア(KVS)方式のデータベースは、インデックス情報だけを保持し扱うコンピュータと、検索対象のデータだけを保持し扱うコンピュータとの、2種類のコンピュータを備える。まず、前者のコンピュータで検索対象のデータを保持するコンピュータの検索を行い、その後、検索されたコンピュータでそのコンピュータ内のデータを検索することで、インデックス管理の負荷を分散させている。しかし、この方式では、複数台の計算機を備えることが必須であり、設置場所や費用、省電力化の観点から問題がある。
 そこで、本発明は、インデックスを生成せずとも、インデックスを生成した場合と同程度に高速に表データの検索が可能な表検索装置を提供することを目的とする。
 本発明のある局面に係る表検索装置は、複数の行と、第1の列及び前記第1の列に対応付けられた第2の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を1つずつ記憶している複数の受信処理部と、送信部と、前記第1の列及び前記第2の列のいずれか一方を特定するための識別子である列識別子と、検索値とを含む検索クエリーを、前記送信部へ送信し、前記複数の受信処理部の各々から出力される出力値である検索出力値を受信し、かつ、受信した前記検索出力値を出力する制御部とを備えており、前記送信部は、前記制御部から受信した前記検索クエリーを、前記複数の受信処理部の全てに対して出力し、前記受信処理部は、取得した前記検索クエリーに含まれる前記列識別子によって特定される列に、前記検索クエリーに含まれる前記検索値が含まれているか否かを判定し、含まれている場合には、前記列識別子によって特定される列に対応付けられた列に含まれる値を前記検索出力値として出力する。
 この構成によると、表データは、複数の分解表の単位に細分化され、受信処理部に記憶されている。よって、各受信処理部は、検索クエリーに含まれる列識別子によって特定される列に、検索クエリーに含まれる検索値が含まれているか否かを、表データ全体を検索する場合に比べて高速に検索することができる。
 よって、インデックスを生成せずとも、インデックスを生成した場合と同程度に高速に表データの検索が可能な表検索装置を提供することができる。
 また、前記表データから前記複数の分解表を生成する分割部をさらに備えており、前記制御部は、前記分割部から前記複数の分解表を取得し、取得した前記分解表を前記複数の受信処理部の各々に1つずつ記憶させるとしてもよい。
 これによると、表検索装置は、新たな表データを取得し、これを分割部により分割することで、新たな表データに対応した分解表を生成することができる。よって、検索対象とする表データを更新することができる。
 また、前記分割部は、前記表データについて前記第1の列及び前記第2の列のいずれか一方を基準列として選択し、前記複数の分解表の各々について、前記基準列に含まれる値が、前記分解表内の前記基準列内で唯1つとなるように、前記複数の分解表を生成する。
 これによると、各受信処理部が記憶している分解表の基準列に含まれる値は、その分解表の中では唯1つであることが保証される。よって、インデックスを生成せずとも、より高速に表データの検索が可能な表検索装置を提供することができる。
 また、前記分割部は、前記表データについて前記第1の列及び前記第2の列のいずれか一方を基準列として選択し、前記複数の分解表の各々について、前記基準列に含まれる値が、(A)前記分解表内の前記基準列内で唯1つとなり、かつ、(B)前記複数の分解表の各々が前記基準列に含む値の中で唯1つとなるように前記複数の分解表を生成する。
 これによると、各受信処理部が記憶している分解表の基準列に含まれる値は、その分解表で唯1つであり、かつ、他に、その値を含んでいる分解表がないことが、保証される。よって、さらに高速に、表データの検索が可能な表検索装置を提供することができる。
 具体的には、前記制御部は、前記基準列を特定する識別子を前記列識別子とし、前記基準列に含まれているか否かを検索する値を前記検索値として、前記検索クエリーを前記送信部へ送信する。
 又は、前記制御部は、前記第1の列及び前記第2の列の一方である前記基準列に対応付けられた他方の列である第3の列を特定する識別子を前記列識別子とし、前記第3の列に含まれているか否かを検索する値を前記検索値として、前記検索クエリーを前記送信部へ送信するとしてもよい。
 本発明の他の局面に係る表検索装置においては、前記分割部は、前記表データを一行ごとに分割することにより、複数の前記分解表を生成する。
 これによると、分割部の処理を簡易化することができ、表検索システムの小型化、省電力化、低価格化等を実現することができる。
 本発明の他の局面に係る表検索装置においては、前記複数の受信処理部のうち2以上の受信処理部は、前記検索値が、前記列識別子によって特定される列に含まれているか否かを判定する処理部である1つの検索部を共有して備える。
 これによると、検索部を共有することで、表検索装置を構成する部品点数を減少させることができる。その結果、表検索装置の小型化、省電力化、低価格化等を実現できる。
 なお、本発明は、このような表検索装置として実現できるだけでなく、表検索装置に含まれる特徴的な手段をステップとする表検索方法として実現したり、そのような特徴的なステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD-ROM等の記録媒体及びインターネット等の伝送媒体を介して流通させることができるのはいうまでもない。
 また、本発明は、このような表検索装置の機能の一部又は全てを実現する半導体集積回路(LSI)としても実現できる。
 さらに、本発明は、このような表検索装置を含む表検索システムとして実現できる。
 以上より、本発明は、インデックスを生成せずとも、インデックスを生成した場合と同程度に高速に表データの検索が可能な表検索装置を提供することができる。
図1は、本発明の実施の形態1に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。 図2は、本発明の実施の形態1~4に係る表検索装置を含む表検索システムを実現するコンピュータシステムのハードウェア構成を示すブロック図である。 図3Aは、本発明の実施の形態1~4に係る表検索装置に記録されている、表データを示す図である。 図3Bは、図3Aにより示される表データが示す、神経細胞の結合状態を示す図である。 図4Aは、本発明の実施の形態1に係る表検索装置に格納されている第1の分解表を示す図である。 図4Bは、本発明の実施の形態1に係る表検索装置に格納されている第2の分解表を示す図である。 図5Aは、本発明の実施の形態1~4に係る表検索システムにおける第1の検索クエリーを示す図である。 図5Bは、本発明の実施の形態1~4に係る表検索システムにおける第2の検索クエリーを示す図である。 図6は、本発明の実施の形態1~4に係る表検索装置が図5Bに示される第2の検索クエリーの検索処理を示す図である。 図7は、本発明の実施の形態1~4に係る表検索システムにおける処理の流れを示すフローチャートである。 図8は、本発明の実施の形態1~4に係る受信処理部が行う検索処理の流れを示すフローチャートである。 図9は、本発明の実施の形態2に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。 図10Aは、本発明の実施の形態2に係る表検索装置に格納されている第1の分解表を示す図である。 図10Bは、本発明の実施の形態2に係る表検索装置に格納されている第2の分解表を示す図である。 図10Cは、本発明の実施の形態2に係る表検索装置に格納されている第3の分解表を示す図である。 図11は、本発明の実施の形態3に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。 図12は、本発明の実施の形態4に係る表検索装置を含む表検索システムの全体構成を示すブロック図である。
 以下、本発明に係る表検索装置の実施の形態について、図面を参照しながら詳細に説明する。
 (実施の形態1)
 図1は、本発明に係る表検索装置200を含む表検索システム100の全体構成を示すブロック図である。
 図1に示されるように、表検索システム100は、表検索装置200と、クエリー装置300とを備える。
 表検索装置200は、後述する分解表という単位に分割された検索対象である表データを記憶している。また、表検索装置200は、クエリー装置300から送信される検索処理の要求信号である検索クエリーに含まれる検索値を、表データから検索し、その検索結果を検索出力値としてクエリー装置300へ送信する。
 なお、表データにおいては、表データの行と列で指定されるマス目に値が格納される。より具体的には、表データ内では、第1の列の1つの値と第2の列の1つの値とが対応づけられ、対応づけられた第1の列の値と第2の列の値とが同じ行に配置される。
 ここで、マス目に値が格納されていない場合、そのマス目の値は、nullという値であるとする。また、表データの第1の列と第2の列のいずれかの、少なくとも一つのマス目に値が格納されていれば、表検索装置200は検索を行うことができる。なお、表データにおいて、第1の列と第2の列のいずれのマス目にも、値が格納されていない場合であっても、表検索装置200は検索を行うことは可能であるが、検索する意味はない。
 表検索装置200は、送信部210と、受信処理部220~221と、制御部230と、第1の通信路202と、第2の通信路204とを備える。
 送信部210は、クエリー装置300から取得した検索クエリーを、表検索装置200が備える複数の受信処理部の各々へ送信する処理部である。
 送信部210は、送信バッファ212と、出力部213とを備える。
 送信バッファ212は、1度に多数の検索クエリーを受信した場合に、それらを受信処理部へ送信するまでの間、一時的にバッファリングするバッファである。具体的には、DRAM(Dynamic Random Access Memory)や、SRAM(Static Random Access Memory)等で構成される。
 出力部213は、受信した検索クエリーを、第1の通信路202に応じた信号種別に変換して出力する。例えば、第1の通信路202がLSI内部のバスや、イーサネット(登録商標)の有線ケーブルであれば、出力部213は検索クエリーを適切なフォーマットの電気信号として出力し、第1の通信路202が光ケーブルであれば、出力部213は検索クエリーを適切なフォーマットの光信号として出力する。
 なお、出力部213は、前述のとおり、常に、表検索装置200が有する全ての受信処理部に対して、検索クエリーを送信する。
 受信処理部220~221は、実質的に表検索処理を実行する受信処理部である。表検索装置200が備える受信処理部の数は、少なくとも、後述する分解表の数だけ必要となる。ここでは説明のため、表検索装置200は、受信処理部220及び受信処理部221の2つの受信処理部を備えているとして説明する。
 受信処理部220は、取得部231と、記憶部232と、検索部233とを備える。また、受信処理部221は、取得部231と、記憶部234と、検索部233とを備える。
 取得部231は、送信部210より送信された検索クエリーを、第1の通信路202を介して取得するための通信インタフェースである。
 記憶部232及び記憶部234の各々は、制御部から送信された検索対象である表データの一部である分解表を記憶している。なお、1つの受信処理部は、1つの分解表のみを記憶する。記憶部は、具体的には、フラッシュメモリ等の不揮発性メモリ、DRAM、SRAM等で構成される。
 検索部233は、取得部231が取得した検索クエリーに含まれる検索値が、記憶部に記憶されているか否か判定する検索処理を実行する。この検索処理により、検索クエリーに含まれる検索値が記憶部に記憶されていると検索部233が判定した場合には、検索部233は、検索結果を、検索出力値として第2の通信路204を介して制御部230へ出力する。
 制御部230は、クエリー装置から複数の分解表を取得し、取得した分解表の各々を、クエリー装置によって分解表ごとに指定された受信処理部へ、第2の通信路204を介して送信する。また、制御部230は、クエリー装置から検索クエリーを取得し、取得した検索クエリーを第2の通信路204を介して送信部210へ送信する。さらに、制御部230は、受信処理部220~221が備える検索部233が出力する検索出力値を第2の通信路204を介して取得し、クエリー装置300へ出力する。
 第1の通信路202は、送信部210が備える出力部213から、受信処理部220~221の各々へ、検索クエリーを送信するための通信路である。第1の通信路202として、前述のように、集積回路の内部バス、イーサネットの有線ケーブル及び光通信用ケーブル等が使用されることが考えられる。
 第2の通信路204は、制御部230から送信部210へ、検索クエリーを送信するための通信路である。第2の通信路204は、また、制御部230から各受信処理部へ分解表を送信し、各受信処理部から制御部230へ検索結果を送信するための通信路である。第1の通信路202と同様に、第2の通信路204としても、集積回路の内部バス、イーサネットの有線ケーブル及び光通信用ケーブル等が使用されることが考えられる。
 クエリー装置300は、分割部302と、クエリー部303とを備える。
 分割部302は、検索対象である表データを、表検索装置200に記憶させるための表を用いたデータ構造である複数の分解表の形に分割し、各分解表を、表検索装置200が備える各受信処理部に1つずつ割り当てて記憶させる。
 より具体的には、分割部302は、例えばクエリー装置300が備えるGUI(Graphical User Interface、図示なし)等を用いてユーザが指定した表データを取得すると、後述するようなルールに従って、これを複数の分解表に分割する。
 次に、分割部302は、表検索装置200が有する固有の識別子であるネットワークアドレスと、表検索装置200が備える複数の受信処理部の各々が有する固有の識別子である受信処理部アドレスの、2つのアドレスの組を、複数の分解表の各々について、その送信先として指定する。その後、分割部302は、制御部230に、指定した送信先に向けて各々の分解表を送信させる。
 なお、各受信処理部への各分解表の割り当ては、分割部302が、現在どの受信処理部に分解表が割り当てられているかを示す管理テーブルを有していることを前提に、例えば、次のように行う。分割部302は、前述の管理テーブルの上から順(又は、下から順)に、現在分解表が割り当てられていない受信処理部を検索し、検索された受信処理部に対して、生成した分解表を1つずつ割り当てていけばよい。
 クエリー部303は、受信処理部に格納されている分解表の各々を検索するための検索クエリーを、制御部230へ送信する。検索クエリーは、例えばクエリー装置300が備えるGUIによって、ユーザから取得した情報をもとに都度生成されてもよく、事前にROM(Read Only Memory)等に記憶されている検索クエリーをクエリー部303が読み出してもよい。
 さらに、クエリー装置300は、送信した検索クエリーに対する検索結果を制御部230から取得する。クエリー装置300が表示装置(図示なし)を備えている場合には、取得した検索結果を表示装置に表示してもよい。また、クエリー装置300が印刷装置(図示なし)を備えている場合には、取得した検索結果を印刷装置から印刷してもよい。
 図2は、本発明の実施の形態1に係る表検索装置200を含む表検索システム100を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
 実施の形態1に係る表検索システム100を構成する表検索装置200及びクエリー装置300は、コンピュータにより実現することが可能である。図2は、表検索システム100を構成する表検索装置200及びクエリー装置300を実現するコンピュータシステムのハードウェア構成を示すブロック図である。
 表検索システム100を構成する表検索装置200及びクエリー装置300は、コンピュータ34と、コンピュータ34に指示を与えるためのキーボード36及びマウス38と、コンピュータ34の演算結果等の情報を提示するためのディスプレイ32と、コンピュータ34で実行されるプログラムを読み取るためのCD-ROM(Compact Disc-Read Only Memory)装置40及び通信モデム(図示せず)とを含む。
 表検索システム100を構成する表検索装置200及びクエリー装置300が行う処理であるプログラムは、コンピュータで読み取可能な媒体であるCD-ROM42に記憶され、CD-ROM装置40で読み取られる。又は、コンピュータネットワークを通じて通信モデム52で読み取られる。
 コンピュータ34は、CPU(Central Processing Unit)44と、ROM(Read Only Memory)46と、RAM(Random Access Memory)48と、ハードディスク50と、通信モデム52と、バス54とを含む。
 CPU44は、CD-ROM装置40又は通信モデム52を介して読み取られたプログラムを実行する。ROM46は、コンピュータ34の動作に必要なプログラムやデータを記憶する。RAM48は、プログラム実行時のパラメタなどのデータを記憶する。ハードディスク50は、プログラムやデータなどを記憶する。通信モデム52は、コンピュータネットワークを介して他のコンピュータとの通信を行う。バス54は、CPU44、ROM46、RAM48、ハードディスク50、通信モデム52、ディスプレイ32、キーボード36、マウス38及びCD-ROM装置40を相互に接続する。
 さらに、上記の各装置を構成する構成要素の一部又は全部は、1個のシステムLSI(Large Scale Integrated Circuit:大規模集積回路)から構成されているとしてもよい。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAMなどを含んで構成されるコンピュータシステムである。RAMには、コンピュータプログラムが記憶されている。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。
 さらにまた、上記の各装置を構成する構成要素の一部又は全部は、各装置に脱着可能なICカード又は単体のモジュールから構成されているとしてもよい。ICカード又はモジュールは、マイクロプロセッサ、ROM、RAMなどから構成されるコンピュータシステムである。ICカード又はモジュールは、上記の超多機能LSIを含むとしてもよい。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、ICカード又はモジュールは、その機能を達成する。このICカード又はこのモジュールは、耐タンパ性を有するとしてもよい。
 また、本発明は、マイクロプロセッサとメモリを備えたコンピュータシステムであって、上記メモリは、上記コンピュータプログラムを記憶しており、上記マイクロプロセッサは、上記コンピュータプログラムに従って動作するとしてもよい。
 また、上記プログラムを上記媒体に記録して移送することにより、又は上記プログラムを、上記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしてもよい。
 図3Aは、本発明の実施の形態1に係る表検索装置200に記録されている、表データ240を示す図である。
 図3Aに示されるように、表データは、第1列241と、第1列241に対応付けられている第2列242とを有する。なお、表データはこれ以外の列を含んでいてもよい。また、図3Aに示される表データは、1行目のヘッダ行を除き3行分のデータを含むが、より多くの行を含んでいてもよい。
 なお、ここでは、図3Aにより示されるデータは、神経細胞間の結合状態を示す表データとする。図3Bは、図3Aにより示される、神経細胞の結合状態を、有向グラフを用いて示した図である。第1列241が、親ノードとなる神経細胞のノード番号(例えば、3098や、4001)を示し、第2列242が、子ノードとなる神経細胞のノード番号(例えば、14や107)を示す。なお、本実施の形態に係る表検索システム100に記録されるデータは、これに限られず、第1列と、第1列に対応付けられた第2列と、を含む任意の表データであってもよい。
 図4Aは、本発明の実施の形態1に係る表検索装置が備える記憶部232に記憶されている第1の分解表を示す図である。また、図4Bは、本発明の実施の形態1に係る表検索装置が備える記憶部234に記憶されている第2の分解表を示す図である。
 図4A及び図4Bに示されるように、分解表は、第1列241と、第2列242とを有する。
 分割部302は、次の条件を満たすように、表データ240を行方向に分割(及び結合)することで、複数の分解表を生成する。
 まず、分割部302は、第1列241及び第2列242のいずれかを、「基準列」として選択する。ここでは、説明のため、第1列241が基準列に選択されたとする。
 次に、分割部302は、複数の分解表の各々について、基準列である第1列241に含まれる値が、(A)当該分解表内で唯1つとなり、かつ、(B)複数の分解表の各々が基準列である第1列241に含む値の中で唯1つとなるように、表データ240を行方向に分割する。
 より具体的には、分割部302は、(1)表データ240に含まれる各行を、第1列241に含まれる値を基準に降順又は昇順に並べ替え、(2)第1列241に同じ値を含む全ての行のみが1つの分解表に含まれるよう、表データ240を行方向に分割すること等が考えられる。
 その結果、表データ240は、図4Aに示される第1の分解表と、図4Bに示される第2の分解表の2つに分割される。第1の分解表の第1列241には3098のみが含まれており、第2の分解表の第1列241には4001のみが含まれている。また、3098という値を第1列241に含む分解表は、第1の分解表のみであり、4001という値を第1列241に含む分解表は、第2の分解表のみである。
 なお、分解表を生成する際に使用する基準列は、第2列でもよい。また、分解表の生成方法は他にも考えられるが、その詳細については後述する。
 図5Aは、本発明の実施の形態1に係る表検索システム100が備える検索部233が処理する第1の検索クエリーを示す図である。また、図5Bは、本発明の実施の形態1に係る表検索システム100が備える検索部233が処理する第2の検索クエリーを示す図である。
 各検索クエリーは、例えば、検索クエリーであることを示す “SELECT”という文字列の後に、各分解表の第1列241と第2列242のどちらを検索するかを指定する列識別子420と、列識別子420で指定された列に含まれているか否かを検索する値である検索値422とを含む。
 ここで、受信処理部220及び受信処理部221が送信部210から、図5Aに示される第1の検索クエリーを取得した場合の処理について、具体的に説明する。
 第1の検索クエリーでは、列識別子420として第1列241が指定され、検索値422として3098が指定されている。
 したがって、受信処理部220が備える検索部233は、記憶部232に記憶されている第1の分解表の第1列241に3098が含まれているかを検索する。
 ここで、分解表の生成方法から明らかなように、基準列である第1列241に含まれる値が唯1つであることが保証されている。よって、受信処理部220が備える検索部233は、第1列241の、ヘッダ行を除く1行目の値と、検索値である3098とを比較するだけで、第1の分解表の第1列241に3098が含まれているか否かを判断することができる。
 ここでは、第1の分解表において、第1列241のヘッダ行を除く1行目の値が3098に一致するので、受信処理部220が備える検索部233は、第1列241に対応付けられている第2列242に含まれる値を全て出力する。すなわち、受信処理部220が備える検索部233は、14と、107を、検索出力値として制御部230へ出力する。
 なお、検索部233が、第1列241と第2列242の、いずれが基準列であるかを知る方法として、分割部302が分解表の各々について、第1列241と第2列242のどちらが基準列であるかを示す情報を含めておくことが考えられる。あるいは、分割部302は、分解表とは別に、第1列241と第2列242の、いずれが基準列であるかを示す情報を、制御部230へ送信し、制御部230は、その情報を、送信部210を介して全ての受信処理部に送信してもよい。
 次に、同様にして、受信処理部221が備える検索部233は、記憶部234に記憶されている第2の分解表の第1列241の、ヘッダ行を除く1行目の値が3098であるか否かを判定する。ここでは、第2の分解表の第1列241の1行目の値は、4001であるので、受信処理部221が備える検索部233は何も出力しない。
 以上の、受信処理部220及び受信処理部221が備える各検索部233の処理により、表検索装置200が備える制御部230は、表データ240において、基準列である第1列の値が3098である場合の、対応する第2列に含まれる全ての値(14と、107)を、クエリー装置300へ出力することができる。
 次に、受信処理部220及び受信処理部221が送信部210から、図5Bに示される第2の検索クエリーを取得した場合の処理について、具体的に説明する。
 第2の検索クエリーでは、列識別子420として第2列242が指定され、検索値422として14が指定されている。
 したがって、受信処理部220が備える検索部233は、記憶部232に記憶されている第1の分解表の第2列242に14が含まれているかを検索し、見つかった場合には、第2列242に対応付けられている第1列241の値を全て、検索出力値として出力する。
 この検索処理を、図6を参照してより詳細に説明する。
 図6は、本発明の実施の形態1に係る表検索装置による、図5Bに示される第2の検索クエリーの処理を示す図である。
 本実施の形態における分解表の生成方法から明らかなように、第1の分解表の第1列241に含まれる値は、3098のみである。よって、受信処理部220が備える検索部233は、検索値である14が第2列242において最初に見つかった時点で、以後の第2列242における検索を打ち切り、第1列241に含まれる全ての値(3098)を出力することができる。すなわち、第1列241に含まれる値が唯1つであることを利用して、対応する第2列242の検索領域の枝刈りが可能となる。
 ここでは、受信処理部220が備える検索部233は、第1の分解表の第2列242において、ヘッダ行を除く1行目の値が14と一致すると判定した時点で、以後の検索を打ち切り、対応する第1列241に含まれる全ての値である3098を検索出力値として出力する。
 同様にして、受信処理部221が備える検索部233は、記憶部234に記憶されている第2の分解表の第2列242に14が含まれているかを検索する。ここでは、第2の分解表の第2列242における1行目の値が14と一致するため、受信処理部221が備える検索部233は、対応する第1列241に含まれる全ての値である4001を検索出力値として出力する。
 以上の、受信処理部220及び受信処理部221が備える各検索部233の処理により、表検索装置200が備える制御部230は、表データ240における第2列242の値が14である場合の、対応する第1列241に含まれる全ての値(3098と、4001)を、クエリー装置300へ出力することができる。
 なお、図5A及び図5Bに示される検索クエリーは一例であって、必ずしもこれらと同一のフォーマットである必要はない。検索クエリーは、少なくとも、列識別子と、検索値を含んでいればよい。
 以上述べた表検索システム100における各処理部の処理の流れを、図7を参照してまとめる。
 図7は、本発明の実施の形態1に係る表検索システム100における処理の流れを示すフローチャートである。
 まず、分割部302は、検索対象である表データを、複数の分解表に分割する(S500)。
 次に、分割部302は、複数の分解表の各々を、表検索装置200が備える複数の受信処理部の各々に1つずつ対応付けて割り当てる(S502)。
 次に、クエリー部303は、検索クエリーを制御部230へ送信する。検索クエリーは、少なくとも列識別子420と検索値422とを含む。
 次に、制御部230は、受信した検索クエリーを、送信部210へ送信する。また、送信部210は、取得した検索クエリーを、常に、表検索装置200が備える全ての受信処理部に対して送信する(S504)。
 次に、検索クエリーを取得した受信処理部の各々は、検索部233において検索処理を実行し(S506)、その結果を制御部230へ出力する。
 最後に、制御部230は、各々の受信処理部から取得した検索結果を必要に応じて集計し、最終的な検索結果をクエリー装置300へ出力する(S508)。
 図8は、本発明の実施の形態1に係る受信処理部が備える検索部233が行う検索処理の流れを示すフローチャートである。
 まず、検索部233は、検索クエリーを取得したか否かを判定する(S520)。ここで、送信部210からまだ検索クエリーを受信していない場合(S520でNo)、検索部233は、再度検索クエリーを待ち受ける。
 一方、検索クエリーを取得した場合(S520でYes)、検索部233は、検索クエリーに含まれる、列識別子と検索値とを取得する。次に、検索部233は、記憶部に記憶されている列のうち、列識別子で指定された列(第1列241、又は、第2列242)の、検索対象行の値が、検索値と一致するか否かを判定する(S522)。ここで、検索対象行には、例えば、記憶部に記憶されている分解表のヘッダを除いた1行目が指定される。なお、本実施の形態に係る検索部233が検索対象とする記憶部は、「自身を備える受信処理部」が備える1つの記憶部に限られる。
 ここで、先頭行の値と検索値とが一致しない場合には(S522でNo)、検索部233は、列識別子で指定された列が、基準列であるか否かを判定する(S523)。列識別子で指定された列が基準列である場合には(S523でYes)、これ以上検索しても無駄であることが明らかなので、検索処理を終了する。一方、列識別子で指定された列が基準列ではない場合には(S523でNo)、検索部233は、次の行を検索対象行として指定し(S524)、同じ列で検索対象行の値が、検索値と一致するか否かを判定する(S522)。
 一方、先頭行の値と検索値とが一致した場合には(S522でYes)、検索部233は、列識別子で指定された列に対応付けられた列が含む全ての値を検索出力値として出力する(S526)。例えば、列識別子で第1列241が指定されていた場合には、第2列242に含まれる全ての値を出力する。
 以上述べた本実施の形態に係る表検索装置200によれば、各受信処理部が1つずつ、検索対象である表データを事前に分割して得られる分解表を記憶している。ここで、表データは、第1列と第2列を含む。また、各々の分解表は、第1列及び第2列のいずれかである基準列に含まれる値が、複数の分解表全て中で唯1つとなるように、生成されている。
 したがって、表検索装置200は、以下の(1)及び(2)の問い合わせに対して、インデックスを事前に作成せずとも、インデックスを生成した場合と同程度に高速に、検索結果を出力することができる。
(1)表データに含まれる各行について、第1列が検索値であるような、第2列の値を全て出力せよ。
(2)表データに含まれる各行について、第2列が検索値であるような、第1列の値を全て出力せよ。
 以上まとめると、本実施の形態に係る表検索装置200は、(1)複数の行と、第1の列及び第1の列に対応付けられた第2の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を1つずつ記憶している複数の受信処理部と、(2)送信部210と、(3)第1の列及び第2の列のいずれか一方を特定するための識別子である列識別子及び検索値を含む検索クエリーを、送信部210へ送信し、複数の受信処理部の各々から出力される出力値である検索出力値を受信し、かつ、受信した検索出力値を出力する制御部230とを備えている。
 ここで、送信部210は、制御部230から受信した検索クエリーを、複数の受信処理部の全てに対して出力する。また、受信処理部は、取得した検索クエリーに含まれる列識別子によって特定される列に、検索クエリーに含まれる検索値が含まれているか否かを判定し、含まれている場合には、列識別子によって特定される列に対応付けられた列に含まれる値を検索出力値として出力する。
 また、本実施の形態に係る表検索装置200は、さらに、表データから複数の分解表を生成する分割部302を備えてもよい。このとき、制御部230は、分割部302から複数の分解表を取得し、取得した分解表を複数の受信処理部の各々に1つずつ記憶させる。
 なお、分割部302は、表データについて第1の列及び第2の列のいずれか一方を基準列として選択し、複数の分解表の各々について、基準列に含まれる値が、分解表内の基準列内で唯1つとなるように、複数の分解表を生成する。
 また、分割部302は、表データについて第1の列及び第2の列のいずれか一方を基準列として選択し、複数の分解表の各々について、基準列に含まれる値が、(A)分解表内の基準列内で唯1つとなり、かつ、(B)複数の分解表の各々が基準列に含む値の中で唯1つとなるように複数の分解表を生成してもよい。
 また、制御部230は、基準列を特定する識別子を列識別子とし、基準列に含まれているか否かを検索する値を検索値として、検索クエリーを送信部210へ送信する。
 また、制御部230は、第1の列及び第2の列の一方である基準列に対応付けられた他方の列である第3の列を特定する識別子を列識別子とし、第3の列に含まれているか否かを検索する値を検索値として、検索クエリーを送信部210へ送信してもよい。
 (実施の形態2)
 次に、実施の形態2に係る表検索システム100及び表検索装置200について説明する。本実施の形態では、各受信処理部に記憶されている分解表の生成のされ方が、実施の形態1と異なる。
 図9は、本発明の実施の形態2に係る表検索装置200を含む表検索システム100の全体構成を示すブロック図である。
 本実施の形態に係る表検索装置200は、3つの受信処理部(受信処理部220~受信処理部222)を備える他は、実施の形態1に係る表検索装置200と同一の構成である。
 本実施の形態では、表データ240に含まれる複数の行は、各々1つの相異なる受信処理部に対応付けられて記憶される。これを、図10を用いてより詳細に説明する。
 図10Aは、本発明の実施の形態2に係る表検索装置200に格納されている第1の分解表を示す図である。また、図10Bは、本発明の実施の形態2に係る表検索装置200に格納されている第2の分解表を示す図である。また、図10Cは、本発明の実施の形態2に係る表検索装置200に格納されている第3の分解表を示す図である。
 第1の分解表~第3の分解表は、表データ240の各行にそれぞれ対応する。すなわち、分割部302は、表データ240を1行ごとに分割することで、各行に対応する複数の分解表を生成する。具体的には、表データ240の第1行が第1の分解表に対応し、表データ240の第2行が第2の分解表に対応し、表データ240の第3行が第3の分解表に対応する。
 以下、実施の形態1と同様に、分割部302は第1列241を基準列と選択したものとして説明する。
 まず、分割部302は、生成した複数の分解表を、各々1つの相異なる受信処理部に記憶させる。本実施の形態では、第1の分解表を受信処理部220が備える記憶部232へ、第2の分解表を受信処理部221が備える記憶部234へ、第3の分解表を受信処理部222が備える記憶部235へ、それぞれ記憶させる。なお、分割部302が、分解表を記憶させる受信処理部を指定する方法は、実施の形態1と同様である。
 このように、ヘッダ行を除いて1行のみの分解表を記憶部に記憶している受信処理部の各々に対して、送信部210は、取得した検索クエリーを送信する。
 以下、受信処理部220を例に挙げて、検索クエリーを取得した受信処理部の処理を説明するが、処理の内容は、他の受信処理部においても同様である。
 受信処理部220が備える検索部233は、検索クエリーから列識別子420と検索値422とを取得する。次に、検索部233は、記憶部232に記憶されている第1の分解表について、列識別子420で指定された列の値が検索値422と一致するか否かを判定する。この判定処理は、第1の分解表が、1行しか含んでいないことから、必ず1度の比較処理で終了する。
 例えば、図5Aを参照して、受信処理部220が第1の検索クエリーを取得した場合、検索部233は、列識別子420として指定された第1列241の値が、3098に一致するか判定する。判定の結果、第1列241の値は3098に一致するため、検索部233は、他方の列である第2列242に含まれる全ての値(14)を制御部230へ出力する。
 このように、全ての受信処理部が備える検索部233から出力された値を制御部230が取得することで、表検索装置200は、表データ240に対して第1の検索クエリーで指定された検索を実行することができる。
 なお、受信処理部220が第2の検索クエリーを取得した場合には、検索部233は、列識別子420として指定された第2列242に含まれる値が14に一致するか否かを判定する他は、第1の検索クエリーを取得した場合と同様の処理を行う。
 すなわち、本実施の形態に係る表検索装置200が備える分割部302は、表データを一行ごとに分割することにより、複数の分解表を生成する。
 以上述べた、実施の形態2に係る表検索システム100によると、表データ240の各行は、相異なる1つの受信処理部に対応付けられて、各受信処理部が備える記憶部に記憶されている。その結果、各受信処理部は、取得した検索クエリーに対して1度の比較処理を行うだけで、検索結果を出力することができる。こうして出力された、各受信処理部からの出力を制御部230が集めることで、表検索装置200は、インデックスを生成せずとも、実施の形態1と比較してもさらに高速に表データの検索が可能となる。
 (実施の形態3)
 図11は、本発明の実施の形態3に係る表検索装置200を含む表検索システム100の全体構成を示すブロック図である。
 本実施の形態が、実施の形態2と異なる点は、複数の受信処理部(受信処理部220~受信処理部222)で、1つの検索部233を共有している点である。
 実施の形態2では、各受信処理部が備える記憶部には、表データ1行分に相当する分解表のみが記憶される。したがって、検索部233が行う検索処理も軽い処理で済む。よって、表検索装置200が備える全ての受信処理部が検索部233を備える必要はなく、図11に示されるように、一定数の受信処理部が検索部233を共有することができる。
 この構成によると、受信処理部221の構成を簡易なものとすることができ、表検索装置200のコスト削減や、小型化、省電力化を実現することができる。
 (実施の形態4)
 図12は、本発明の実施の形態4に係る表検索装置200を含む表検索システム100の全体構成を示すブロック図である。
 本実施の形態では、表検索システム100は、複数の表検索装置200を備えている。
 表検索装置200の構成は、例えば、実施の形態1~3のいずれであってもよい。
 本実施の形態に係る表検索システム100における検索時には、クエリー装置300が備えるクエリー部303は、検索クエリーを、全ての表検索装置200に同時に送信する。検索クエリーを取得した各々の表検索装置200は、自身が備える全ての受信処理部に、取得した検索クエリーを送信する。以後、各々の受信処理部が行う検索処理は、実施の形態1~3と同様の処理により、行うことができる。
 この構成は、例えば、表検索装置200を集積回路等のハードウェアで実装した場合に、表検索システム100のスケーラビリティを確保できる点で特に有効である。
 具体的には、表データ240のサイズが大きいため、これを分割して得られた分解表の数が、1つの表検索装置200が備える受信処理部の数よりも大きい場合であっても、表検索装置200をクエリー装置300に対して必要な数だけ並列に接続することで、表検索システム100が備える受信処理部の数を増やすことができる。その結果、表データ240の大きさに関わらず、検索可能な表検索システム100を実現することができる。
 なお、実施の形態1~4に係る表検索システム100において、クエリー装置300に代わり、表検索装置200が備える制御部230が分割部302を備えてもよい。
 なお、実施の形態1~4に係る表検索システム100において、クエリー装置300は、複数の表データを、1つの表検索装置200の中に記憶してもよい。
 この場合、具体的には、
(1)クエリー装置300は、表データに対して、その表を一意に識別する表識別子を割り当て、
(2)分割部302は、表データを分割して生成する分解表の各々に、表データに付加されている表識別子を含め、
(3)記憶部は、表識別子を含む分解表を保持し、
(4)クエリー部303は、検索対象である表データの表識別子を含むクエリーを生成して、制御部230に送信し、
(5)検索部233は、表識別子及び検索値が一致するか否かを判断する、
という手順となる。
 これにより、表検索装置200が備える受信処理部の数に比べて、表データのデータサイズが小さい場合には、複数の表データを1つの表検索装置200に記憶させることができ、表検索装置200の利用効率を向上させることができる。
 なお、実施の形態1~4に係る表検索システム100が備える検索部233は、1つの値ではなく、範囲指定された値のうち、いずれかの値が記憶部に含まれているか否かを判定してもよい。例えば、第1列が3040~3090のうち、いずれかの値であれば、セルの値が検索値と一致と判定し(ステップS522)てもよい。
 なお、本発明は、上記実施の形態1~4に限定されるものではない。例えば、上記実施の形態1~4をそれぞれ組み合わせるとしてもよい。
 また、今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて請求の範囲によって示され、請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
 本発明は、表検索装置に適用でき、特に、ネットワーク内に分散させて保持された表を検索する表検索装置等に適用できる。
32 ディスプレイ
34 コンピュータ
36 キーボード
38 マウス
40 CD-ROM装置
42 CD-ROM
44 CPU
46 ROM
48 RAM
50 ハードディスク
52 通信モデム
54 バス
100 表検索システム
200 表検索装置
202 第1の通信路
204 第2の通信路
210 送信部
212 送信バッファ
213 出力部
220、221、222 受信処理部
230 制御部
231 取得部
232、234、235 記憶部
233 検索部
240 表データ
241 第1列
242 第2列
300 クエリー装置
302 分割部
303 クエリー部
420 列識別子
422 検索値
 
 

Claims (13)

  1.  複数の行と、第1の列及び前記第1の列に対応付けられた第2の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を1つずつ記憶している複数の受信処理部と、
     送信部と、
     前記第1の列及び前記第2の列のいずれか一方を特定するための識別子である列識別子と、検索値とを含む検索クエリーを、前記送信部へ送信し、前記複数の受信処理部の各々から出力される出力値である検索出力値を受信し、かつ、受信した前記検索出力値を出力する制御部とを備えており、
     前記送信部は、前記制御部から受信した前記検索クエリーを、前記複数の受信処理部の全てに対して出力し、
     前記受信処理部は、取得した前記検索クエリーに含まれる前記列識別子によって特定される列に、前記検索クエリーに含まれる前記検索値が含まれているか否かを判定し、含まれている場合には、前記列識別子によって特定される列に対応付けられた列に含まれる値を前記検索出力値として出力する
     表検索装置。
  2.  さらに、前記表データから前記複数の分解表を生成する分割部を備えており、
     前記制御部は、前記分割部から前記複数の分解表を取得し、取得した前記分解表を前記複数の受信処理部の各々に1つずつ記憶させる
     請求項1に記載の表検索装置。
  3.  前記分割部は、前記表データについて前記第1の列及び前記第2の列のいずれか一方を基準列として選択し、前記複数の分解表の各々について、前記基準列に含まれる値が、前記分解表内の前記基準列内で唯1つとなるように、前記複数の分解表を生成する
     請求項2に記載の表検索装置。
  4.  前記分割部は、前記表データについて前記第1の列及び前記第2の列のいずれか一方を基準列として選択し、前記複数の分解表の各々について、前記基準列に含まれる値が、(A)前記分解表内の前記基準列内で唯1つとなり、かつ、(B)前記複数の分解表の各々が前記基準列に含む値の中で唯1つとなるように前記複数の分解表を生成する
     請求項2に記載の表検索装置。
  5.  前記制御部は、前記基準列を特定する識別子を前記列識別子とし、前記基準列に含まれているか否かを検索する値を前記検索値として、前記検索クエリーを前記送信部へ送信する
     請求項3又は4に記載の表検索装置。
  6.  前記制御部は、前記第1の列及び前記第2の列の一方である前記基準列に対応付けられた他方の列である第3の列を特定する識別子を前記列識別子とし、前記第3の列に含まれているか否かを検索する値を前記検索値として、前記検索クエリーを前記送信部へ送信する
     請求項3又は4に記載の表検索装置。
  7.  前記分割部は、前記表データを一行ごとに分割することにより、複数の前記分解表を生成する
     請求項2に記載の表検索装置。
  8.  前記複数の受信処理部のうち2以上の受信処理部は、前記検索値が、前記列識別子によって特定される列に含まれているか否かを判定する処理部である1つの検索部を共有して備える
     請求項7に記載の表検索装置。
  9.  複数の、請求項1~8のいずれか1項に記載の表検索装置と、
     前記複数の表検索装置のいずれとも接続されたクエリー装置とを備えており、
     前記クエリー装置は、同一の前記検索クエリーを前記複数の表検索装置の全てに対し出力する、
     表検索システム。
  10.  複数の行と、第1の列及び前記第1の列に対応付けられた第2の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を1つずつ記憶する複数の記憶部と、前記複数の記憶部の少なくとも1つを検索する検索部とを備える表検索装置における表検索方法であって、
     前記第1の列及び前記第2の列のいずれか一方を特定するための識別子である列識別子と、検索値とを含む検索クエリーを受信し、
     前記検索クエリーを前記検索部に送信し、
     前記検索部が、対応する前記記憶部に記憶された分解表において、前記検索クエリーに含まれる前記列識別子によって特定される列に、前記検索クエリーに含まれる前記検索値が含まれているか否かを判定し、
     含まれていると判定した前記検索部が、前記列識別子によって特定される列に対応付けられた列に含まれる値を前記検索出力値として出力する
     表検索方法。
  11.  請求項10に記載の表検索方法をコンピュータに実行させる
     プログラム。
  12.  請求項11に記載のプログラムを記録した
     コンピュータ読み取可能な記録媒体。
  13.  複数の行と、第1の列及び前記第1の列に対応付けられた第2の列を含む複数の列とから構成される表構造を示すデータである表データを行方向に分割して得られる、複数の分解表の各々を1つずつ記憶する複数の受信処理部と、
     送信部と、
     前記第1の列及び前記第2の列のいずれか一方を特定するための識別子である列識別子と、検索値とを含む検索クエリーを、前記送信部へ送信し、前記複数の受信処理部の各々から出力される出力値である検索出力値を受信し、かつ、受信した前記検索出力値を出力する制御部とを備えており、
     前記送信部は、前記制御部から受信した前記検索クエリーを、前記複数の受信処理部のうち前記複数の分解表を記憶している全ての受信処理部に対して出力し、
     前記受信処理部は、取得した前記検索クエリーに含まれる前記列識別子によって特定される列に、前記検索クエリーに含まれる前記検索値が含まれているか否かを判定し、含まれている場合には、前記列識別子によって特定される列に対応付けられた列に含まれる値を前記検索出力値として出力する
     集積回路。
     
PCT/JP2010/007024 2009-12-04 2010-12-02 表検索装置、表検索方法、及び、表検索システム WO2011067932A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020127014479A KR20120120159A (ko) 2009-12-04 2010-12-02 표 검색 장치, 표 검색 방법, 및, 표 검색 시스템
JP2011508754A JP5006472B2 (ja) 2009-12-04 2010-12-02 表検索装置、表検索方法、及び、表検索システム
US13/513,282 US20120239688A1 (en) 2009-12-04 2010-12-02 Table lookup apparatus, table lookup method, and table lookup system
CN201080054873.0A CN102648468B (zh) 2009-12-04 2010-12-02 表检索装置、表检索方法以及表检索系统

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP2009-275993 2009-12-04
JP2009275994 2009-12-04
JP2009-275994 2009-12-04
JP2009275993 2009-12-04
JP2010161242 2010-07-16
JP2010-161242 2010-07-16

Publications (1)

Publication Number Publication Date
WO2011067932A1 true WO2011067932A1 (ja) 2011-06-09

Family

ID=44114794

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/007024 WO2011067932A1 (ja) 2009-12-04 2010-12-02 表検索装置、表検索方法、及び、表検索システム

Country Status (5)

Country Link
US (1) US20120239688A1 (ja)
JP (3) JP5006472B2 (ja)
KR (1) KR20120120159A (ja)
CN (1) CN102648468B (ja)
WO (1) WO2011067932A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013175611A1 (ja) * 2012-05-24 2013-11-28 株式会社日立製作所 データの分散検索システム、データの分散検索方法及び管理計算機
US10545867B2 (en) 2015-06-26 2020-01-28 Sanechips Technology Co., Ltd. Device and method for enhancing item access bandwidth and atomic operation

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6164006B2 (ja) * 2013-09-27 2017-07-19 日本電気株式会社 情報記憶システム、情報記憶方法、プログラム
US9509723B1 (en) * 2014-06-04 2016-11-29 Sprint Communications Company L.P. Session initiation protocol (SIP) server to efficiently handle session description protocol (SDP) data sets
US10387421B2 (en) 2014-09-26 2019-08-20 Oracle International Corporation System and method for generating size-based splits in a massively parallel or distributed database environment
US10180973B2 (en) 2014-09-26 2019-01-15 Oracle International Corporation System and method for efficient connection management in a massively parallel or distributed database environment
US10380114B2 (en) 2014-09-26 2019-08-13 Oracle International Corporation System and method for generating rowid range-based splits in a massively parallel or distributed database environment
US10089377B2 (en) * 2014-09-26 2018-10-02 Oracle International Corporation System and method for data transfer from JDBC to a data warehouse layer in a massively parallel or distributed database environment
US10089357B2 (en) 2014-09-26 2018-10-02 Oracle International Corporation System and method for generating partition-based splits in a massively parallel or distributed database environment
US10528596B2 (en) 2014-09-26 2020-01-07 Oracle International Corporation System and method for consistent reads between tasks in a massively parallel or distributed database environment
US10394818B2 (en) 2014-09-26 2019-08-27 Oracle International Corporation System and method for dynamic database split generation in a massively parallel or distributed database environment
US10078684B2 (en) 2014-09-26 2018-09-18 Oracle International Corporation System and method for query processing with table-level predicate pushdown in a massively parallel or distributed database environment
JPWO2016092604A1 (ja) * 2014-12-08 2017-06-01 株式会社日立製作所 データ処理システムおよびデータアクセス方法
CN107977378B (zh) * 2016-10-25 2021-11-02 南京途牛科技有限公司 一种分布式数据聚合方法和装置
US10789510B2 (en) * 2019-01-11 2020-09-29 Google Llc Dynamic minibatch sizes

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160557A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd データベースアクセス処理方法
JP2000067077A (ja) * 1998-08-26 2000-03-03 Hitachi Information Systems Ltd データベースシステム及び表分割指定の処理を行うプログラムを格納した記録媒体
JP2003006021A (ja) * 2001-06-27 2003-01-10 Hitachi Ltd データベースシステムとデータベース管理方法およびプログラム
JP2004252509A (ja) * 2003-02-18 2004-09-09 Tokio Marine & Fire Insurance Co Ltd ファイルやシートを結合又は分割するための情報処理方法
JP2005115514A (ja) * 2003-10-06 2005-04-28 Ibm Japan Ltd データベース検索システム及びその検索方法並びにプログラム
JP2006293981A (ja) * 2005-03-18 2006-10-26 Hitachi Ltd データベース格納方法、および、データベース格納システム
JP2007048318A (ja) * 2006-10-30 2007-02-22 Hitachi Ltd リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置
JP2009181546A (ja) * 2008-02-01 2009-08-13 Toshiba Corp コーディネータサーバ、データ割当方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2583010B2 (ja) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法
US6549931B1 (en) * 1999-09-27 2003-04-15 Oracle Corporation Distributing workload between resources used to access data
US7814104B2 (en) * 2005-05-04 2010-10-12 Oracle International Corporation Techniques for partition pruning
US7962442B2 (en) * 2006-08-31 2011-06-14 International Business Machines Corporation Managing execution of a query against selected data partitions of a partitioned database
JP5230184B2 (ja) * 2007-12-12 2013-07-10 三菱電機株式会社 検索装置、検索方法及び検索プログラム
JP4625512B2 (ja) * 2008-04-28 2011-02-02 クラリオン株式会社 施設検索装置、施設検索方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07160557A (ja) * 1993-12-13 1995-06-23 Hitachi Ltd データベースアクセス処理方法
JP2000067077A (ja) * 1998-08-26 2000-03-03 Hitachi Information Systems Ltd データベースシステム及び表分割指定の処理を行うプログラムを格納した記録媒体
JP2003006021A (ja) * 2001-06-27 2003-01-10 Hitachi Ltd データベースシステムとデータベース管理方法およびプログラム
JP2004252509A (ja) * 2003-02-18 2004-09-09 Tokio Marine & Fire Insurance Co Ltd ファイルやシートを結合又は分割するための情報処理方法
JP2005115514A (ja) * 2003-10-06 2005-04-28 Ibm Japan Ltd データベース検索システム及びその検索方法並びにプログラム
JP2006293981A (ja) * 2005-03-18 2006-10-26 Hitachi Ltd データベース格納方法、および、データベース格納システム
JP2007048318A (ja) * 2006-10-30 2007-02-22 Hitachi Ltd リレーショナルデータベースの処理方法およびリレーショナルデータベース処理装置
JP2009181546A (ja) * 2008-02-01 2009-08-13 Toshiba Corp コーディネータサーバ、データ割当方法及びプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013175611A1 (ja) * 2012-05-24 2013-11-28 株式会社日立製作所 データの分散検索システム、データの分散検索方法及び管理計算機
JPWO2013175611A1 (ja) * 2012-05-24 2016-01-12 株式会社日立製作所 データの分散検索システム、データの分散検索方法及び管理計算機
JP5844895B2 (ja) * 2012-05-24 2016-01-20 株式会社日立製作所 データの分散検索システム、データの分散検索方法及び管理計算機
US9773061B2 (en) 2012-05-24 2017-09-26 Hitachi, Ltd. Data distributed search system, data distributed search method, and management computer
US10545867B2 (en) 2015-06-26 2020-01-28 Sanechips Technology Co., Ltd. Device and method for enhancing item access bandwidth and atomic operation

Also Published As

Publication number Publication date
CN102648468B (zh) 2014-08-06
JP2012164333A (ja) 2012-08-30
JP2012038321A (ja) 2012-02-23
KR20120120159A (ko) 2012-11-01
JP5466210B2 (ja) 2014-04-09
JP5006472B2 (ja) 2012-08-22
CN102648468A (zh) 2012-08-22
JPWO2011067932A1 (ja) 2013-04-18
JP5466257B2 (ja) 2014-04-09
US20120239688A1 (en) 2012-09-20

Similar Documents

Publication Publication Date Title
JP5466257B2 (ja) 表検索方法
US11386091B2 (en) Joining large database tables
JP4659888B2 (ja) データベース処理システム、計算機及びデータベース処理方法
EP3767483B1 (en) Method, device, system, and server for image retrieval, and storage medium
CN104135437B (zh) 用于在网络交换机中利用集中式存储器池的表搜索的装置和方法
US9871727B2 (en) Routing lookup method and device and method for constructing B-tree structure
US8959077B2 (en) Multi-layer search-engine index
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
JP2005209193A (ja) ドキュメントインデックスのための低頻度ワードインデックス
US8914574B2 (en) Content addressable memory and method of searching data thereof
JP5844895B2 (ja) データの分散検索システム、データの分散検索方法及び管理計算機
CN109165222A (zh) 一种基于协处理器的HBase二级索引创建方法以及系统
US11360958B2 (en) Techniques for indexing and querying a set of documents at a computing device
JP5782937B2 (ja) タグ管理装置、タグ管理システムおよびタグ管理プログラム
CN105117433A (zh) 一种基于Hive解析HFile统计查询HBase的方法和系统
JP2020123320A (ja) インデックスを管理するための方法、装置、設備及び記憶媒体
WO2014029084A1 (zh) 数据存储方法、查找方法及装置
US20140067853A1 (en) Data search method, information system, and recording medium storing data search program
CN113791730B (zh) 基于双存储池的放置组调整方法、系统、装置及存储介质
JPWO2007020849A1 (ja) 共有メモリ型マルチプロセッサシステム及びその情報処理方法
CN108140022A (zh) 数据查询方法和数据库系统
KR100999408B1 (ko) 해시트리를 이용한 url 검색방법
CN111767287A (zh) 数据导入方法、装置、设备及计算机存储介质
CN109977113A (zh) 一种用于医疗影像数据的基于布隆过滤器的HBase索引设计方法
CN114338725A (zh) 一种提升大规模集群渲染上限的分布式存储调度方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080054873.0

Country of ref document: CN

ENP Entry into the national phase

Ref document number: 2011508754

Country of ref document: JP

Kind code of ref document: A

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

Ref document number: 10834385

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13513282

Country of ref document: US

ENP Entry into the national phase

Ref document number: 20127014479

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10834385

Country of ref document: EP

Kind code of ref document: A1