Patent Publication Number: US-11663232-B2

Title: Data processing apparatus, data processing method, and data processing program stored on computer-readable storage medium

Description:
FIELD 
     The present invention relates to a data processing apparatus, a data processing method, and a data processing program. 
     BACKGROUND 
     Japanese Unexamined Patent Application Publication No. 2016-91429 (Patent Literature 1) describes an information processing system that generates a set of data suitable for data analysis based on a set of accumulated real data. More specifically, the information processing system subjects data to the extract, transform, and load (ETL) process to generate a data set suitable for data analysis (refer to Patent Literature 1). 
     WO 2014/041826 (Patent Literature 2) describes a system for circulating data, such as sensing data associated with metadata indicating the attribute of the sensing data. The system allows the user to refer to metadata and retrieve sensing data that meets the user&#39;s requests (refer to Patent Literature 2). 
     SUMMARY 
     The system that implements the ETL process as described in Patent Literature 1 is also referred to as an ETL tool. Many ETL tools are designed for processing real data (e.g., sensing data), rather than for processing metadata. Thus, ETL tools receive real data alone although the real data is associated with metadata. 
     Real data and metadata indicating the attribute of the real data are linked with each other with a common identification (ID) included in both the real data and the metadata. Different items of real data have different IDs, which are to be changed in response to a change in the real data values. Thus, real data with the value changed by an ETL tool together with the ID (without changing the ID of the metadata) can be unlinked from the metadata. 
     In response to the above issue, one or more aspects of the present invention are directed to a data processing apparatus, a data processing method, and a data processing program that enable real data processed by an ETL tool to remain linked with metadata. 
     Solution to Problem 
     A data processing apparatus according to an aspect of the present invention is an apparatus for processing metadata indicative of an attribute of real data input into an ETL tool external to the data processing apparatus. The ETL tool is an extract, transform, and load tool. The real data and the metadata each include an identification. The data processing apparatus includes a memory and a processor. The memory stores a program. The processor executes the program. The program causes the processor to process the metadata to include the same identification as the real data output from the ETL tool. 
     The data processing apparatus processes metadata to include the same ID as the real data output from the ETL tool. The data processing apparatus thus enables the real data output from the ETL tool and the metadata to include the same ID and to remain linked with each other. 
     In the above data processing apparatus, the real data and the metadata may each include a common identification. The program may cause the processor to change, in response to the identification included in the real data being changed by the ETL tool, the identification included in the metadata to a resultant identification included in the real data. 
     In response to the ID included in the real data being changed by the ETL tool, the data processing apparatus changes the ID included in the metadata to the resultant ID included in the real data. The data processing apparatus thus enables the real data with its ID changed by the ETL tool and the metadata to include the same ID and to remain linked with each other. 
     In the above data processing apparatus, the identification included in the real data may not be changed by the ETL tool. The program may cause the processor to change the identification included in the real data before being input into the ETL tool and the identification included in the metadata to a new common identification. 
     In the data processing apparatus, the ID included in the real data is not changed by the ETL tool. The ID included in the real data before being input into the ETL tool and the ID included in the metadata are changed to a new common ID included in both the real data and the metadata. Thus, the data processing apparatus allows the real data with its value changed by the ETL tool to include the new ID different from the original ID and thus causes no issue. The data processing apparatus also enables the real data output from the ETL tool and the metadata to include the same ID and to remain linked with each other. 
     In the data processing apparatus, the real data may include sensing data generated by a sensor. 
     A data processing method according to another aspect of the present invention is a method for processing metadata indicative of an attribute of real data input into an ETL tool. The ETL tool is an extract, transform, and load tool. The real data and the metadata each include an identification. The data processing method includes processing the metadata to include the same identification as the real data output from the ETL tool. 
     The data processing method processes metadata to include the same ID as the real data output from the ETL tool. The data processing method thus enables the real data output from the ETL tool and the metadata to include the same ID and to remain linked with each other. 
     A data processing program according to still another aspect of the present invention is a program for causing a processor to process metadata indicative of an attribute of real data input into an ETL tool. The ETL tool is an extract, transform, and load tool. The real data and the metadata each include an identification. The data processing program causes the processor to perform operations including processing the metadata to include the same identification as the real data output from the ETL tool. 
     Once the data processing program is executed by the processor, the metadata is processed to include the same ID as the real data output from the ETL tool. The data processing program thus enables the real data output from the ETL tool and the metadata to include the same ID and to remain linked with each other. 
     Advantageous Effects 
     The data processing apparatus, the data processing method, and the data processing program according to one or more aspects of the present invention enable real data processed by an ETL tool to remain linked with metadata. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG.  1    is a schematic diagram illustrating a data processing server. 
         FIG.  2    is a schematic diagram illustrating an example analysis data generation system including a data processing server according to a first embodiment. 
         FIG.  3    is a diagram illustrating a data formats of data items stored in a sensing data database (DB). 
         FIG.  4    is a diagram illustrating a data processing server showing an example hardware configuration. 
         FIG.  5    is a diagram illustrating a data processing server and an extract, transform, and load (ETL) server showing example software configurations. 
         FIG.  6    is a detailed diagram illustrating a data format converter. 
         FIG.  7    is a diagram illustrating a types of data conversion performed by a data format converter. 
         FIG.  8    is a detailed diagram illustrating a metadata transformer. 
         FIG.  9    is a table illustrating example metadata transformation performed by a value converter. 
         FIG.  10    is a flowchart illustrating an example procedure for data format conversion performed by a data format converter. 
         FIG.  11    is a flowchart illustrating an example procedure for metadata transformation performed by a metadata transformer. 
         FIG.  12    is a diagram illustrating a data processing server according to a second embodiment showing an example hardware configuration. 
         FIG.  13    is a diagram illustrating a data processing server and an ETL server according to a second embodiment showing example software configurations. 
         FIG.  14    is a detailed diagram illustrating a metadata transformer according to a second embodiment. 
         FIG.  15    is a flowchart illustrating an example procedure for identification (ID) conversion. 
         FIG.  16    is a flowchart illustrating an example procedure for value conversion. 
     
    
    
     DETAILED DESCRIPTION 
     One or more embodiments of the present invention (hereafter, the present embodiment) will now be described in detail with reference to the drawings. The same or corresponding components in the figures are given the same reference numerals, and will not be described repeatedly. The embodiments described below are mere examples of the present invention in any aspect. The embodiments may be variously modified or altered within the scope of the present invention. More specifically, the present invention may be implemented as appropriate using any configuration specific to each embodiment. 
     1. First Embodiment 
     1-1. Overview 
       FIG.  1    is a schematic diagram of a data processing apparatus (data processing server)  100  according to a first embodiment. As shown in  FIG.  1   , the data processing server  100  is connected to a sensing data database (DB)  200  and to an extract, transform, and load (ETL) tool (ETL server)  400  through a network. The sensing data DB  200  stores various items of sensing data (an example of real data). The data processing server  100  generates output data by processing sensing data input from the sensing data DB  200 . 
     For example, the data stored in the sensing data DB  200  includes sensing data generated by a sensor and metadata indicating the attribute of the sensing data and associated with the sensing data. The sensing data and the metadata are associated by, for example, an identification (ID) commonly assigned to the sensing data and the metadata. 
     The ETL server  400  (e.g., an existing ETL tool) is designed for processing sensing data (real data), rather than metadata. Thus, the ETL server  400  receives sensing data alone among the data items stored in the sensing data DB  200 . The ETL server  400  may change the ID of the sensing data alone. In this case, the sensing data is unlinked from its metadata. In another case, the ETL server  400  may change the value of the sensing data alone without changing the ID of the sensing data, and this may be an issue. 
     As described in detail later, the data processing server  100  according to the present embodiment processes metadata to include the same ID as the sensing data output from the ETL server  400 . The data processing server  100  thus enables the sensing data output from the ETL tool and the metadata to include the same ID and to remain linked with each other. 
     1-2. System Configuration 
       FIG.  2    is a schematic diagram of an example analysis data generation system  10  including the data processing server  100  according to the first embodiment. The analysis data generation system  10  generates data to be analyzed by data analysts based on sensing data generated by a sensor installed at, for example, a manufacturing site. 
     Many data analysts understand little about the situations on, for example, the manufacturing sites. Thus, many data analysts who refer to sensing data alone are unlikely to understand the meaning of the sensing data accurately. In the first embodiment, the analysis data includes sensing data (real data) and metadata that aids data analysts in understanding the sensing data. Metadata indicates the attribute of sensing data. Metadata may be generated at, for example, a manufacturing site or in the process of generating analysis data. 
     Data analysts can handle sensing data appropriately by referring to the metadata associated with the sensing data, thus performing appropriate data analysis. 
     In the example shown in  FIG.  2   , the analysis data generation system  10  includes the data processing server  100 , the sensing data DB  200 , an analysis data DB  300 , the ETL server  400 , and an ID management server  500 . 
     The sensing data DB  200  stores sensing data generated by a sensor. Examples of the sensor that generates sensing data stored in the sensing data DB  200  include an image sensor (camera), a temperature sensor, a humidity sensor, an illumination sensor, a force sensor, a sound sensor, a radio frequency identification (RFID) sensor, an infrared sensor, a posture sensor, a rain sensor, a radiation sensor, and a gas sensor. The sensor may be a stationary sensor, or a mobile sensor, such as a mobile phone, a smartphone, or a tablet. The sensor may be a single sensing device or may include multiple sensing devices. The sensor may be installed for any purposes. For example, the sensor may be installed for factory automation (FA) and production management at a factory, urban traffic control, weather or other environmental measurement, healthcare, or crime prevention. 
     The sensing data DB  200  stores sensing data items generated by such various sensors. Thus, the data items stored in the sensing data DB  200  may not be in the same data format. For example, the sensing data DB  200  stores data items in different data formats. 
       FIG.  3    is a diagram describing the data formats of the data items stored in the sensing data DB  200 . As shown in  FIG.  3   , a first data format includes sensing data (real data) (with no metadata). In the first data format, the sensing data includes a value V 11  generated by a sensor. 
     A second data format includes sensing data and metadata in different data units. In the second data format, the sensing data includes an ID and a value V 21  generated by a sensor. The ID is determined in the manner described in detail later. The metadata includes an ID and a value V 22  indicating the attribute of the sensing data. The sensing data and the metadata are associated with each other with a common ID included in the sensing data and the metadata. 
     A third data format includes sensing data and metadata that together form a single data unit. In the third data format, the data unit includes a value V 31  generated by a sensor and metadata stored in the header. 
     Referring back to  FIG.  2   , the ETL server  400  implements an ETL tool. More specifically, the ETL server  400  extracts (E) data from the sensing data DB  200 , transforms (T) the extracted data into a form suitable for analysis, and loads (L) the resultant data into the analysis data DB  300 . The ETL server  400  will be described in detail later. 
     The data processing server  100  preprocesses the sensing data for which transmission is requested by the ETL server  400  from the sensing data DB  200 . The data processing server  100  outputs the sensing data (real data) obtained from the sensing data DB  200  to the ETL server  400  and processes the metadata associated with the sensing data. The data processing server  100  outputs the processed metadata to the analysis data DB  300 . The data processing server  100  will be described in detail later. 
     The analysis data DB  300  stores the sensing data processed by the ETL server  400  and the metadata processed by the data processing server  100 . The processed sensing data and metadata stored in the analysis data DB  300  are easily analyzable by data analysts. 
     The ID management server  500  manages the IDs included in the sensing data (real data) and the metadata in the second data format. The ID management server  500  generates an ID different from any issued ID as requested by, for example, the data processing server  100  or the ETL server  400 . The ID management server  500  generates, for example, a universally unique identifier (UUID). The ID management server  500  stores the transition (history) of the IDs included in the sensing data and the metadata. For example, for any ID included in an item of sensing data being changed, the ID management server  500  stores the ID(s) before and after being changed in a manner associated with the sensing data. Thus, the provider of the sensing data can, for example, track the use of the sensing data, which is provided by the provider, by accessing the ID management server  500 . 
     1-3. Hardware Configuration 
       FIG.  4    is a diagram of the data processing server  100  showing an example hardware configuration. In the first embodiment, the data processing server  100  is implemented by, for example, a general-purpose computer. 
     In the example shown in  FIG.  4   , the data processing server  100  includes a controller  170 , a communication interface (I/F)  190 , and a storage  180 . The components are electrically connected to one another with a bus  195 . 
     The controller  170  includes, for example, a central processing unit (CPU)  172 , a random-access memory (RAM)  174 , and a read-only memory (ROM)  176 . The controller  170  controls the components in accordance with intended information processing. 
     The communication I/F  190  communicates with external devices external to the data processing server  100  (e.g., the sensing data DB  200 , the analysis data DB  300 , the ETL server  400 , and the ID management server  500  shown in  FIG.  2   ) through the Internet. The communication I/F  190  includes, for example, a wired local area network (LAN) module and a wireless LAN module. 
     The storage  180  is, for example, an auxiliary storage device such as a hard disk drive or a solid state drive. The storage  180  stores, for example, a control program  181 . 
     The control program  181  is executable by the controller  170  to control the data processing server  100 . For example, the controller  170  executes the control program  181  to implement the software modules described later. The controller  170  expands the control program  181  into the RAM  174  for executing the control program  181 . The controller  170  controls the components with the CPU  172  interpreting and executing the control program  181  expanded in the RAM  174 . The ETL server  400  may have the same hardware configuration as the data processing server  100 . 
     1-4. Software Configuration 
     1-4-1. Software Configurations of Data Processing Server and ETL Server 
       FIG.  5    is a diagram illustrating the data processing server  100  and the ETL server  400  showing example software configurations. As shown in  FIG.  5   , the data processing server  100  includes a data format converter  102 , a data separator  104 , a metadata transformer  106 , and a metadata transmitter  108 . The data format converter  102 , the data separator  104 , the metadata transformer  106 , and the metadata transmitter  108  are software modules implementable by the controller  170  ( FIG.  4   ) executing the control program  181 . 
     The ETL server  400  includes a data extractor  402 , a data transformer  404 , and a loader  406 . The data extractor  402 , the data transformer  404 , and the loader  406  are software modules implementable by a controller or a processor (not shown) included in the ETL server  400  executing a control program (not shown). 
     The software modules start the processing in response to the data extractor  402  included in the ETL server  400  requesting the sensing data DB  200  to transmit data. More specifically, the data extractor  402  transmits an application programming interface (API) command for requesting the sensing data DB  200  to transmit data. This causes transmission of a data item stored in the sensing data DB  200  to the data format converter  102 . The processing is started in this manner. 
     The data format converter  102  is a software module that converts input data in any data format to data in the second data format described above. The data format converter  102  determines the data format of the input data and converts the data format based on the determination result. The data generated by the data format converter  102  is output to the data separator  104 . The data format converter  102  will be described in detail later. 
     The data separator  104  is a software module that separates the input data into sensing data (real data) and metadata. The ETL server  400  is typically designed to process real data alone. The data separator  104  thus outputs the sensing data to the data extractor  402  and the metadata to the metadata transformer  106 . 
     The data extractor  402  outputs the input (extracted) sensing data to the data transformer  404 . 
     The data transformer  404  is a software module that transforms the input data in accordance with, for example, a transformation rule predefined for each type of sensing data. For example, a sensing data value generated by a temperature sensor is a voltage value (V). In this case, the transformation rule includes, for example, a conversion formula from a voltage value (V) to a temperature (° C.). The data transformer  404  converts the input voltage value (V) to a temperature (° C.) in accordance with, for example, the conversion formula. In another example, sensing data generated by a sensor has ten digits. The transformation rule may define, for example, that any sensing data is to be converted to data with five digits. In this case, the data transformer  404  converts the input sensing data to data with five digits in accordance with the transformation rule. 
     In response to the sensing data value being converted (changed), the data transformer  404  changes the ID included in the sensing data. To change the ID, the data transformer  404  requests the ID management server  500  to issue a new ID. The data transformer  404  receives the new ID from the ID management server  500  and assigns the ID to the sensing data. The data transformer  404  outputs the resultant sensing data to the loader  406 . 
     The loader  406  is a software module that outputs input data to the analysis data DB  300 . The analysis data DB  300  stores the sensing data input from the loader  406 . 
     The metadata transformer  106  is a software module that transforms metadata in accordance with the transformation performed on the sensing data by the ETL server  400 . The resultant metadata is output to the metadata transmitter  108 . The metadata transformer  106  will be described in detail later. 
     The metadata transmitter  108  is a software module that outputs input data to the analysis data DB  300 . The analysis data DB  300  stores the metadata input from the metadata transmitter  108 . 
     1-4-2. Detailed Configuration of Data Format Converter 
       FIG.  6    is a detailed diagram of the data format converter  102 . As shown in  FIG.  6   , the data format converter  102  includes a data format determiner  110 , a first converter  112 , and a second converter  114 . 
     The data format determiner  110  is a software module that determines the data format of input data. The data format determiner  110  determines whether the input data is in the first, second, or third data format described above. More specifically, the data format determiner  110  determines i) whether the input data includes metadata and ii) whether the sensing data (real data) and the metadata are included in the same data unit. 
     Upon determining that the input data does not include metadata, the data format determiner  110  determines that the input data is in the first data format. Upon determining that the input data includes metadata and that the sensing data and the metadata are in different data units, the data format determiner  110  determines that the input data is in the second data format. Upon determining that the input data includes metadata and that the sensing data and the metadata are in a single data unit, the data format determiner  110  determines that the input data is in the third data format. 
     The data format determiner  110  outputs the input data determined to be in the first data format to the first converter  112 . The data format determiner  110  outputs the input data determined to be in the second data format to the data separator  104 . The data format determiner  110  outputs the input data determined to be in the third data format to the second converter  114 . In other words, the input data determined to be in the second data format does not undergo data format conversion. 
     The first converter  112  is a software module that converts data in the first data format to data in the second data format. The second converter  114  is a software module that converts data in the third data format to data in the second data format. 
       FIG.  7    is a diagram describing the types of data conversion performed by the data format converter  102 . Referring to  FIG.  7   , the first converter  112  converts data in the first data format to data in the second data format as described above. More specifically, the first converter  112  generates metadata having a predetermined default. The first converter  112  further requests the ID management server  500  ( FIG.  5   ) to issue an ID and assigns the received ID to both the sensing data and the metadata. This generates the sensing data and the metadata each having an assigned common ID but in different data units. 
     As described above, the second converter  114  converts data in the third data format to data in the second data format. More specifically, the second converter  114  separates the sensing data and the metadata into different data units. The second converter  114  further requests the ID management server  500  ( FIG.  5   ) to issue an ID and assigns the received ID to both the sensing data and the metadata. This generates the sensing data and the metadata each having an assigned common ID but in different data units. 
     Referring back to  FIG.  6   , the data in the data format resulting from conversion by the first converter  112  and the data in the data format resulting from conversion by the second converter  114  are output to the data separator  104 . 
     In this manner, the data format converter  102  generates output data in the second data format from any input data that may be in the first data format or in the third data format. In other words, the data format converter  102  outputs data in the second data format from input data in any format. The data format converter  102  thus provides data in a common data format (second data format) to a subsequent process from input data in any format, facilitating data processing in the subsequent process. 
     1-4-3. Detailed Configuration of Metadata Transformer 
       FIG.  8    is a detailed diagram of the metadata transformer  106 . As shown in  FIG.  8   , the metadata transformer  106  includes a query unit  120 , an ID converter  122 , and a value converter  124 . 
     The query unit  120  is a software module that inquires the ETL server  400  about the process performed on sensing data. For example, the query unit  120  inquires the ETL server  400  about i) whether the ID of the sensing data has been changed and the resultant ID and ii) the type of conversion performed on the sensing data value. The type of conversion of the sensing data value may be, for example, unit conversion and digit conversion. The query unit  120  receives an answer to the inquiry from the ETL server  400 . 
     The query unit  120  outputs instructions to the ID converter  122  and the value converter  124  in accordance with the answer from the ETL server  400 . More specifically, in response to the ID of the sensing data being changed by the ETL server  400 , the query unit  120  outputs, to the ID converter  122 , an instruction to change the ID of the metadata to the resultant ID of the sensing data. In response to the value of the sensing data being changed by the ETL server  400 , the query unit  120  outputs an instruction to change the value of the metadata to a value matching the resultant sensing data value to the value converter  124 . 
     The ID converter  122  is a software module that processes the metadata as instructed by the query unit  120 . In response to the ID of the sensing data being changed by the ETL server  400 , for example, the ID converter  122  changes the ID included in the metadata to the resultant ID included in the sensing data. In contrast, the ID converter  122  does not change the ID included in the metadata in response to the ID of the sensing data being unchanged by the ETL server  400 . In other words, the ID converter  122  changes the ID included in the metadata simply in response to the ID included in the sensing data having been changed by the ETL server  400 . This structure avoids the issuance of more IDs than used, where the number of IDs is limited. 
     The value converter  124  is a software module that processes the metadata as instructed by the query unit  120 . In response to the value of the sensing data being converted (changed) by the ETL server  400 , the value converter  124  changes the value of the metadata to a value matching the resultant sensing data value. 
       FIG.  9    is a table describing example metadata transformation performed by the value converter  124 . In this example, the ETL server  400  changes the unit of the sensing data from voltage (V) to temperature (° C.), and thus converts the sensing data value and converts the number of digits of the sensing data value from ten to five. 
     In this case, as shown in  FIG.  9   , the unit entry in the metadata is changed from V to ° C., and the digit entry in the metadata is changed from ten to five. 
     Referring back to  FIG.  8   , the metadata generated by the value converter  124  is output to the metadata transmitter  108 . 
     In the manner described above, the metadata transformer  106  processes the metadata in accordance with the process performed on the sensing data (real data) by the ETL server  400  (ETL tool). Thus, the metadata transformer  106  enables the metadata to remain properly associated with the sensing data (real data) processed by an existing ETL tool. 
     In the first embodiment, sensing data and metadata indicating the attribute of the sensing data are associated with each other with a common ID included in the sensing data and the metadata. Thus, the sensing data with the ID changed by the ETL server  400  can be unlinked from the metadata with the unchanged ID. In response to the ID included in the sensing data being changed by the ETL server  400 , the metadata transformer  106  changes the ID included in the metadata to the resultant ID included in the sensing data. More specifically, the metadata transformer  106  processes metadata to include the same ID as the sensing data output from the ETL server  400 . Thus, the metadata transformer  106  enables the metadata to remain linked with the sensing data with the ID changed by the ETL server  400 . More specifically, the metadata transformer  106  enables the metadata to include the same ID as the sensing data output from the ETL server  400  and remain linked with the sensing data. 
     The sensing data with the value changed by the ETL server  400  may fail to match the metadata with the unchanged value. In response to the value included in the sensing data changed by the ETL server  400 , the metadata transformer  106  changes the value included in the metadata to a value matching the resultant value included in the sensing data. Thus, the metadata transformer  106  enables the metadata to remain matching the sensing data with the value changed by the ETL server  400 . 
     1-5. Operation 
     1-5-1. Data Format Conversion 
       FIG.  10    is a flowchart showing an example procedure for data format conversion performed by the data format converter  102 . The process shown in this flowchart is started by the controller  170  (data format converter  102 ) in response to an input of data stored in the sensing data DB  200  into the data format converter  102 . 
     Referring to  FIG.  10   , the controller  170  determines whether the input data is in the second data format (step S 100 ). In response to determination that the input data is in the second data format (Yes in step S 100 ), the processing advances to step S 140 . 
     In response to determination that the input data is not in the second data format (No in step S 100 ), the controller  170  determines whether the input data is in the first data format (step S 110 ). In response to determination that the input data is in the first data format (Yes in step S 110 ), the controller  170  converts the format of the input data from the first data format to the second data format (step S 120 ). 
     In response to determination that the input data is not in the first data format (No in step S 110 ), the controller  170  converts the format of the input data from the third data format to the second data format (step S 130 ). The controller  170  then outputs data in the second data format (step S 140 ). This converts data in any format to data in the second data format output from the data format converter  102 . 
     1-5-2. Metadata Transformation 
       FIG.  11    is a flowchart showing an example procedure for metadata transformation performed by the metadata transformer  106 . The process shown in this flowchart is started by the controller  170  (metadata transformer  106 ) in response to an input of metadata into the metadata transformer  106 . 
     Referring to  FIG.  11   , the controller  170  inquires the ETL server  400  about the process performed on the sensing data (real data) that includes the same ID as the input metadata (step S 200 ). The controller  170  determines whether an answer is received from the ETL server  400  (step S 210 ). In response to determination that no answer is received (No in step S 210 ), the controller  170  repeats the processing in step S 210 . 
     In response to determination that an answer is received (Yes in step S 210 ), the controller  170  determines whether the ID of the sensing data is converted by the ETL server  400  based on the received answer (step S 220 ). In response to determination that the ID of the sensing data is unchanged (No in step S 220 ), the processing advances to step S 240 . 
     In response to determination that the ID of the sensing data is changed (Yes in step S 220 ), the controller  170  changes the ID of the metadata to the resultant ID included in the sensing data (step S 230 ). 
     The controller  170  determines whether the value of the sensing data is converted by the ETL server  400  based on the answer received in step S 210  (step S 240 ). In response to determination that the sensing data value is unchanged (No in step S 240 ), the processing advances to step S 260 . 
     In response to determination that the value of the sensing data is converted (Yes in step S 240 ), the controller  170  converts the value of the metadata to a value matching the value included in the sensing data (step S 250 ). The controller  170  then outputs the resultant metadata (step S 260 ). This generates metadata that matches the sensing data processed by the ETL server  400 . 
     1-6. Features 
     As described above, the data processing server  100  according to the first embodiment includes the controller  170  that processes metadata to include the same ID as the sensing data (real data) output from the ETL server  400 . The data processing server  100  thus enables the sensing data output from the ETL server  400  and the metadata to include the same ID and to remain linked with each other. 
     2. Second Embodiment 
     In the first embodiment, the metadata transformer  106  (ID converter  122 ) changes the ID of the metadata simply in response to the ID of the sensing data having been changed by the ETL server  400  (data transformer  404 ). However, the IDs of the sensing data and the metadata may be changed at other times. In a second embodiment, the ID of the sensing data is unchanged although an ETL server  400 A changes the value of the sensing data. In the second embodiment, the ETL server  400 A is more likely to change the value of the sensing data. Thus, the ID of both the sensing data and the metadata is changed to a new ID each time before the sensing data is input into the ETL server  400 A. The second embodiment will now be described, focusing on the differences from the first embodiment. 
     2-1. Hardware Configuration 
       FIG.  12    is a diagram of a data processing server  100 A according to a second embodiment showing an example hardware configuration. In the second embodiment, the data processing server  100 A is implemented by, for example, a general-purpose computer. 
     In the example shown in  FIG.  12   , the data processing server  100 A includes a storage  180 A. The storage  180 A is an auxiliary storage device such as a hard disk drive or a solid state drive. The storage  180 A stores, for example, a control program  181 A. 
     The control program  181 A is executable by the controller  170  to control the data processing server  100 A. For example, the controller  170  executes the control program  181 A to implement the software modules described later. The controller  170  expands the control program  181 A into the RAM  174  for executing the control program  181 A. The controller  170  controls the components with the CPU  172  interpreting and executing the control program  181 A expanded in the RAM  174 . The ETL server  400 A (described later) may have the same hardware configuration as the data processing server  100 A. 
     2-2. Software Configuration 
     2-2-1. Software Configuration of Data Processing Server 
       FIG.  13    is a diagram illustrating the data processing server  100 A and the ETL server  400 A showing example software configurations. As shown in  FIG.  13   , the data processing server  100 A includes an ID converter  103  and a metadata transformer  106 A, unlike the data processing server  100  according to the first embodiment. The ID converter  103 , the metadata transformer  106 A, the data format converter  102 , the data separator  104 , and the metadata transmitter  108  are software modules implementable by the controller  170  ( FIG.  12   ) executing the control program  181 A. 
     The ETL server  400 A includes a data transformer  404 A, unlike the ETL server  400  in the first embodiment. The data transformer  404 A, the data extractor  402 , and the loader  406  are software modules implementable by a controller or a processor (not shown) included in the ETL server  400 A executing a control program (not shown). 
     Unlike the data transformer  404  in the first embodiment, the data transformer  404 A converts a sensing data value without changing the ID included in the sensing data. The metadata transformer  106 A also does not change the ID included in the metadata. However, the value of the sensing data input into the ETL server  400 A is usually converted by the data transformer  404 A. The sensing data retains the ID stored in the sensing data DB  200  although the sensing data value has undergone conversion. 
     The data processing server  100 A according to the second embodiment includes the ID converter  103  that changes the ID of sensing data and metadata to a new ID in advance. Thus, the sensing data does not retain the ID stored in the sensing data DB  200  although the ID is unchanged by the data transformer  404 A. The sensing data and the metadata remain linked with each other with their IDs unchanged by the data transformer  404 A and the metadata transformer  106 A. 
     2-2-2. Detailed Configuration of Metadata Transformer 
       FIG.  14    is a detailed diagram of the metadata transformer  106 A. As shown in  FIG.  14   , the metadata transformer  106 A eliminates the ID converter  122  in the first embodiment. The metadata transformer  106 A thus does not change the ID. 
     2-3. Operation 
     2-3-1. ID Conversion 
       FIG.  15    is a flowchart showing an example procedure for ID conversion performed by the ID converter  103 . The process shown in this flowchart is started by the controller  170  (ID converter  103 ) in response to an input of a data set (sensing data and metadata) in the second data format into the ID converter  103 . 
     Referring to  FIG.  15   , the controller  170  requests the ID management server  500  to generate a new ID (step S 300 ). The controller  170  determines whether a new ID is received from the ID management server  500  (step S 310 ). In response to determination that no new ID is received (No in step S 310 ), the controller  170  repeats the processing in step S 310 . 
     In response to determination that a new ID is received (Yes in step S 310 ), the controller  170  changes the ID of both the sensing data and the metadata to the received new ID (step S 320 ). This assigns a common new ID to the sensing data and the metadata. The controller  170  then outputs the data in the second data format with the resultant ID to the data separator  104  ( FIG.  13   ) (step S 330 ). 
     2-3-2. Value Conversion 
       FIG.  16    is a flowchart showing an example procedure for value conversion performed by the value converter  124 . The process shown in this flowchart is started by the controller  170  (value converter  124 ) in response to an input of metadata into the value converter  124 . 
     Referring to  FIG.  16   , the controller  170  inquires the ETL server  400 A about the process performed on the sensing data (real data) including the same ID as the input metadata (step S 400 ). The controller  170  determines whether an answer is received from the ETL server  400 A (step S 410 ). In response to determination that no answer is received (No in step S 410 ), the controller  170  repeats the processing in step S 410 . 
     In response to determination that an answer is received (Yes in step S 410 ), the controller  170  determines whether the value of the sensing data is converted by the ETL server  400 A based on the received answer (step S 420 ). In response to determination that the sensing data value is unchanged (No in step S 420 ), the processing advances to step S 440 . 
     In response to determination that the sensing data value is converted (Yes in step S 420 ), the controller  170  converts the value of the metadata to a value matching the value included in the sensing data (step S 430 ). The controller  170  then outputs the resultant metadata (step S 440 ). This generates metadata with a value matching the value of the sensing data processed by the ETL server  400 A. 
     2-4. Features 
     As described above, the data processing server  100 A according to the second embodiment processes metadata to include the same ID as the sensing data (real data) output from the ETL server  400 A. The data processing server  100 A thus enables the sensing data output from the ETL server  400 A and the metadata to include the same ID and to remain linked with each other. 
     3. Modifications 
     Although the invention has been described based on the first and second embodiments, the embodiments may be modified variously without departing from the sprit and scope of the present invention. Such modifications will now be described. The modifications described below may be combined as appropriate. 
     3-1. 
     In the first and second embodiments, data stored in the sensing data DB  200  and data processed by the data processing server  100  or  100 A are sensing data. In some embodiments, the sensing data DB  200  and the data processing server  100  or  100 A may store or process data other than sensing data. For example, the sensing data DB  200  and the data processing server  100  or  100 A may store or process data indicating the purchase history of a user at a shopping site, data indicating a score of a user at a game site, or any data other than sensing data. 
     3-2. 
     In the first and second embodiments, the metadata generated by the data processing server  100  or  100 A is output to the analysis data DB  300 . In some embodiments, the metadata generated by the data processing server  100  or  100 A may be output to a device other than the analysis data DB  300 . For example, the metadata generated by the data processing server  100  or  100 A may be output to the loader  406  in the ETL server  400  or  400 A. In this case, the loader  406  associates the metadata with sensing data and outputs the resultant data set to the analysis data DB  300 .