.. _Introduction:

Introduction
============

Industrial Data Collector is an integration tool to:

* **Collect** data from OPC UA Servers;
* **Store** that data in the Local Storage and immediately **Forward** into the destination persistent storage. Currentlty it uses InfluxDB (versions 1.7 and 2.0), TimescaleDB (PostgreSQL database optimized to store time-series data), Apache Kafka, MS SQL, MySQL, SQLite and MQTT. Regular version of PostgreSQL can be used too.

* **Visualize** data, using `Grafana <https://www.grafana.com>`_, acting as a REST back-end for its `SimpleJson` data source plugin. It can fetch real time or historical data directly from OPC UA Servers, or from the persistent storage.
* **Analyze** stored in the persistent storage data using queries.

Multiple instances of Industrial Data Collector can run in parallel in the same or different machines, and share common configuration settings. Each instance can be configured to perform all tasks, or only sub-set of tasks (roles). This makes horizontal scaling easy.

Context diagram below illustrates use case when single instance of the Industrial Data Collector serves all roles:

.. image:: images/ContextDiagram.png

For more information on each of these and other features, please refer section :ref:`features`.

