# tMapROjaiInput

Reads documents from a MapR-DB database to load the data in a given Job.

You must have properly installed and configured your MapR Client before using this component. A \opt\mapr\conf\mapr-clusters.conf file is automatically generated out of the Client configuration process to store the connection information to your MapR cluster and your MapR-DB database. At runtime, this OJAI component reads this connection information by itself to connect to the MapR-DB database to be used.

For further information about how to install and configure your MapR client, see [Setting up the Client](http://doc.mapr.com/display/MapR/Setting+Up+the+Client) from the MapR documentation.

This component is not shipped with your Talend Studio by default. You need to install it using the Feature Manager. For more information, see [Installing features using the Feature Manager](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/install-features-to-talend-studio).

## tMapROjaiInput Standard properties

These properties are used to configure tMapROjaiInput running in the Standard Job framework.

The Standard tMapROjaiInput component belongs to the Databases NoSQL family.

The component in this framework is available in all Talend products with Big Data and in Talend Data Fabric.

## Basic settings

| Properties | Description |
| --- | --- |
| Schema and Edit schema | A schema is a row description. It defines the number of fields<br>(columns) to be processed and passed on to the next component. When you create a Spark<br>Job, avoid the reserved word line when naming the<br>fields.<br><br><ul> <li> <p> <span>Built-In</span>: You create and store the schema locally for this component                only.</p> </li> <li> <p> <span>Repository</span>: You have already created the schema and stored it in the                Repository. You can reuse it in various projects and Job designs.</p> </li> </ul><br><br>Click Edit schema to make changes to<br>the schema. If you make changes, the schema automatically becomes built-in.<br><br><ul> <li> <p> <span>View schema</span>: choose this                option to view the schema only.</p> </li> <li> <p> <span>Change to built-in property</span>:                choose this option to change the schema to <span>Built-in</span> for local changes.</p> </li> <li> <p> <span>Update repository connection</span>:                choose this option to change the schema stored in the repository and decide whether                to propagate the changes to all the Jobs upon completion.</p> <p>If you just want to                propagate the changes to the current Job, you can select <span>No</span> upon completion and choose this schema metadata                again in the <span>Repository Content</span>                window.</p> </li> </ul><br><br>This component supports the Document type. If a field is for entire<br>documents, select Document in the Type column for this field in the schema editor.<br><br>Click Sync<br>columns to retrieve the schema from the previous component connected in the<br>Job. |
| Use kerberos authentication | If you are accessing a MapR-DB as-OJAI database<br>running with Kerberos security, select this checkbox, then, enter the Kerberos<br>principal name and password in the displayed fields.<br><br>Every time when you launch your Job, the<br>component submits this authentication information to Kerberos for a new kinit<br>ticket. |
| Use a keytab to authenticate | Select the Use a keytab to authenticate<br>checkbox to log into a Kerberos-enabled system using a given keytab file. A keytab<br>file contains pairs of Kerberos principals and encrypted keys. You need to enter the<br>principal to be used in the Principal field and<br>the access path to the keytab file itself in the Keytab field. This keytab file must be stored in the machine in<br>which your Job actually runs, for example, on a Talend JobServer.<br><br>Note that the user that executes a keytab-enabled Job is not necessarily<br>the one a principal designates but must have the right to read the keytab file being<br>used. For example, the username you are using to execute a Job is *user1* and the principal to be used is *guest*; in this<br>situation, ensure that *user1* has the right to read the keytab<br>file to be used. |
| Restrict partial sorts with Secondary Indexes | Select this check box to force the query to explicitly sort on the actual<br>data. This way, you avoid in your query the partial sorts that could<br>otherwise occur due to the asynchronous secondary indexes.<br><br>For further information about this partial sorts issue of MapR OJAI, see<br>[Asynchronous Secondary Index<br>Updates](https://maprdocs.mapr.com/home/MapR-DB/Indexes/indexes-consistency.html#indexes-consistency) from the MapR documentation.<br><br>Do not select this check box if you do not expect to encounter the lags<br>in the asynchronous indexes or you know that the impact of the lags is<br>trivial. By keeping this check box clear, your query benefits from the<br>ordering advantages provided by the secondary indexes of MapR-DB JSON<br>tables. |
| Table name | Enter the name of the table to be processed. |
| Query | Specify the where clause of the query to be performed by<br>tMapROjaiInput.<br><br>For example, type in "{id:{$eq:<br>4}}" or "{id:4}}"to retrieve the record in<br>which *id* is *4*.<br><br>As OJAI uses MongoDB query format for queries, see [Query Operators](https://docs.mongodb.com/manual/reference/operator/query/) from the<br>MongoDB documentation for available operators. |
| Mapping | Each column of the schema defined for this component represents a field of the documents<br>to be read. In this table, you need to specify the parent nodes of these fields, if<br>any.<br><br>For example, in the document reading as<br>follows<br><br>```<br>{<br>_id: ObjectId("5099803df3f4948bd2f98391"),<br>person: { first: "Joe", last: "Walker" }<br>}<br>```<br><br><br>The<br>*first* and the *last*<br>fields have *person* as their parent node but the *\_id* field does not have any parent node. So once completed, this<br>Mapping table should read as<br>follows:<br><br>```<br>Column     Parent node path<br>_id<br>first       "person"<br>last        "person"<br>``` |

## Advanced settings

| Properties | Description |
| --- | --- |
| tStatCatcher Statistics | Select this checkbox to gather the Job processing metadata at the Job level<br>as well as at each component level. |

## Global Variables

| Variables | Description |
| --- | --- |
| Global Variables | ERROR\_MESSAGE: the error message generated by the<br>component when an error occurs. This is an After variable and it returns a string. This<br>variable functions only if the Die on error checkbox is<br>cleared, if the component has this checkbox.<br><br><br>NB\_LINE: the number<br>of rows read by an input component or transferred to an output component. This is an<br>After variable and it returns an integer.<br><br>A Flow variable functions during the execution of a component<br>while an After variable functions after the execution of the component.<br><br>To fill up a field or expression with a variable, press Ctrl+Space to access the variable list and choose the variable to use from<br>it.<br><br>For more information about variables, see [Using contexts and variables](https://help.qlik.com/talend/r/en-US/8.0/studio-user-guide/contexts-and-variables). |

## Usage

| Usage guidance | Description |
| --- | --- |
| **Usage rule** | tMapROjaiInput executes queries to read data from a<br>given MapR-DB database. It is a starting component of a Job and requires<br>an outgoing link to send data to its following component. |