DL-Handler Doc
[dcaegen2.git] / docs / sections / services / datalake-handler / overview.rst
diff --git a/docs/sections/services/datalake-handler/overview.rst b/docs/sections/services/datalake-handler/overview.rst
new file mode 100644 (file)
index 0000000..51dab10
--- /dev/null
@@ -0,0 +1,76 @@
+.. This work is licensed under a Creative Commons Attribution 4.0\r
+   International License. http://creativecommons.org/licenses/by/4.0\r
+   \r
+.. _docs_Datalake_Handler_MS:\r
+\r
+Architecture\r
+------------\r
+\r
+\r
+Background\r
+~~~~~~~~~~\r
+There are large amount of data flowing among ONAP components, mostly via DMaaP and Web Services. \r
+For example, all events/feed collected by DCAE collectors go through DMaaP. \r
+DMaaP is backed by Kafka, which is a system for Publish-Subscribe, \r
+where data is not meant to be permanent and gets deleted after certain retention period. \r
+Kafka is not a database, means that data there is not for query.\r
+Though some components may store processed result into their local databases, most of the raw data will eventually lost. \r
+We should provide a systematic way to store these raw data, and even the processed result,\r
+which will serve as the source for data analytics and machine learning, providing insight to the network operation.\r
+\r
+\r
+Relations with Other ONAP Components\r
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r
+The architecture below depicts the DataLake MS as a part of ONAP. Only the relevant interactions and components are shown.\r
+\r
+.. image:: ./arch.PNG\r
+\r
+Note that not all data storage systems in the picture are supported. In R6, the following storage are supported:\r
+  - MongoDB\r
+  - Couchbase\r
+  - Elasticsearch and Kibana\r
+  - HDFS\r
+Depending on demands, new systems may be added to the supported list. In the following we use the term database for the storage, \r
+even though HDFS is a file system (but with simple settings, it can be treats as a database, e.g. Hive.)\r
+\r
+Note that once the data is stored in databases, other ONAP components and systems will directly query data from the databases, \r
+without interacting with DataLake Handler.\r
+\r
+Description\r
+~~~~~~~~~~~\r
+DataLate Handler's main function is to monitor and persist data flow through DMaaP. The databases are outside of ONAP scope, \r
+since the data is expected to be huge, and a database may be a complicated cluster consisting of thousand of nodes.\r
+\r
+Admin UI\r
+~~~~~~~~\r
+A system administrator uses DataLake Admin UI to:\r
+  - Configure external database connections, such as host, port, login.\r
+  - Configure which Topics to monitor, which databases to store the data for each Topic.\r
+  - Pre-configured 3rd Party Tools dashboards and templates.\r
+\r
+This UI tool is used to manage all the Dayalake settings stored in MariaDB. Here is the database schema:\r
+\r
+.. image:: ./dbschema.PNG\r
+\r
+Feeder\r
+~~~~~~\r
+Architecture\r
+.. image:: ./feeder-arch.PNG\r
+\r
+Features\r
+\r
+   - Read data directly from Kafka for performance.\r
+   - Support for pluggable databases. To add a new database, we only need to implement its corrosponding service.\r
+   - Support REST API for inter-component communications. Besides managing DatAlake settings in MariaDB, \r
+   Admin UI also use this API to start/stop Feeder, query Feeder status and statistics.\r
+   - Use MariaDB to store settings.\r
+   - Support data processing features. Before persisting data, data can be massaged in Feeder. \r
+   Currently two features are implemented: Correlate Cleared Message (in org.onap.datalake.feeder.service.db.ElasticsearchService) \r
+   and Flatten JSON Array (org.onap.datalake.feeder.service.StoreService).    \r
+   - Connection to Kafka and DBs are secured\r
+\r
+\r
+Links\r
+~~~~~\r
+   - DataLake Development Environment Setup https://wiki.onap.org/display/DW/DataLake+Development+Environment+Setup\r
+   - Source Code https://gerrit.onap.org/r/gitweb?p=dcaegen2/services.git;a=tree;f=components/datalake-handler;hb=HEAD\r