Creating MongoDB Input Data Source
The MongoDB connector is an interface used to import MongoDB’s schema-less BSON documents into a table schema that Panopticon Streams can interpret and analyze. It uses many BSON structure types and MongoDB query features.
Steps:
1. In the New Data Source page, select Input > MongoDB in the Connector drop-down list.
2. Enter the following properties:
Property |
Description |
URL |
Enter either: · localhost if the database resides on the same computer, or · enter the IP address and port of the computer where MongoDB is installed (e.g., 192.168.1.1:27017). If no port is specified, the default is 27017. |
User Id |
The user Id that will be used to connect to MongoDB. |
Password |
The password that will be used to connect to MongoDB. |
Authentication DB |
The database where the user is created. |
Database |
The database that will be used. |
Collection |
The collection that will be used. |
3. To make the Query Document feature of MongoDB available in Panopticon, select Use Query Document.
The Plugin Settings pane updates to display the settings of this query option.
For the Method option, select any of the following values:
· Find (Default)
Allows you to fetch a document from a MongoDB collection.
Two more configurable settings are available:
¨ Sort
Provide a JSON object that defines the sort criteria, then set the order to either 1 for ascending or -1 for descending (e.g., {"address.building":1}).
¨ Projection
Provide a JSON object to include or exclude from the result of the Find query.
For example, if a document has 9 documents and you only need to display 5, you can either:
o select 5 JSON objects, then set the limit value to 1 to display
{"cuisine":1, "grades":1, "restaurant_id":1, "name":1, "borough":1}
o select 4 JSON objects then set the limit value to 0 to hide
{"address.zipcode":0, "address.coord":0, "address.street":0, "address.building":0}
NOTE |
_id field is always displayed while executing the Find method. You can opt to set this field to 0 to hide it (e.g., {"_id":0}). |
· Aggregate
Allows you to add all the columns generated by aggregation into the schema.
In addition, the MongoDB command line interface displays query operations with a JSON style syntax.
Enter your JSON query document. See http://docs.mongodb.org/manual/tutorial/query-documents/ for more information on the Query Documents feature on MongoDB.
For example, queries from the document look like this: db.inventory.find ( {type: "snacks"} ). The database and collection are already defined in the UI and the Find operation is handled in the code. You only need to enter the JSON query:
{"type":"snacks"}
For more advanced query, it must include surrounding curly braces as well as matching internal braces.
4. Instead of using Use Query Document, select the Parameterize query option.
Click Fetch Parameters to populate the Parameter drop-down and select a value. Then select what column to filter on in the Filter By drop-down.
5. Select either the period (.) or comma (,) as the Decimal Separator.
NOTE |
Prepend 'default:' for the elements falling under default namespace. |
6. Select the Data Type Discovery. This property specifies how many rows to fetch from the input data source, when auto generating the schema after clicking .
7. You can also opt to load or save a copy of the column definition.
8. You can also opt to click . A new row displays in the JSON list box. Enter the necessary information for each column.
Property |
Description |
Name |
The column name of the source schema. NOTE: It is recommended to name the column the same as its JSON path for clarity and uniformity. |
JsonPath |
The JsonPath of the source schema. |
Type |
The data type of the column. Can be a Text, Numeric, or Time |
Structure |
Used for more advanced features and are covered in the Row-Wise Array Expansion, Column-Wise Array Expansion, and Bson-Wise Array Expansion sections. Value is the default structure and will always display data regardless of actual structure. |
Column Count |
Enabled when Column-Expanded Array structure is selected. Enter the number of columns for the plugin to generate as columns for that array. |
Date Format |
The format when the data type is Time. NOTE: To parse and format times with higher than millisecond precision, the format string needs to end with a period followed by sequence of upper case S. There can be no additional characters following them. For example: yyyy-MM-dd HH:mm:ss.SSSSSS |
Enabled |
Determines whether the message field should be processed. |
To delete a column, check its or all the column entries, check the topmost , then click .
9. Click . The new data source is added in the Data Sources list.