Code Monkey home page Code Monkey logo

johwes / fiware-draco Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ging/fiware-draco

0.0 0.0 0.0 5.73 MB

The Draco Generic Enabler is an alternative data persistence mechanism for managing the history of context. It is based on Apache NiFi and is a dataflow system based on the concepts of flow-based programming. It supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic and also offers an intuitive graphical interface

Home Page: https://fiware-draco.readthedocs.io/en/latest/

License: Apache License 2.0

Java 96.58% Shell 2.62% Dockerfile 0.57% HTML 0.23%

fiware-draco's Introduction

FIWARE Draco

Codacy Badge License Docker badge Support badge
Documentation badge CI Coverage Status Known Vulnerabilities Status CII Best Practices

Table of Contents

What is Draco?

This project is part of FIWARE, as part of the Core Context Management Chapter .

Draco is a is an easy to use, powerful, and reliable system to process and distribute data. Internally, Draco is based on Apache NiFi, NiFi is a dataflow system based on the concepts of flow-based programming. It supports powerful and scalable directed graphs of data routing, transformation, and system mediation logic. It was built to automate the flow of data between systems. While the term 'dataflow' is used in a variety of contexts, we use it here to mean the automated and managed flow of information between systems.

๐Ÿ“š Documentation ๐ŸŽ“ Academy ๐Ÿณ Docker Hub ๐ŸŽฏ Roadmap

Terminology

In order to talk about Draco, there are a few key terms that readers should be familiar with. We will explain those NiFi-specific terms here, at a high level.

FlowFile: Each piece of "User Data" (i.e., data that the user brings into NiFi for processing and distribution) is referred to as a FlowFile. A FlowFile is made up of two parts: Attributes and Content. The Content is the User Data itself. Attributes are key-value pairs that are associated with the User Data.

Processor: The Processor is the NiFi component that is responsible for creating, sending, receiving, transforming, routing, splitting, merging, and processing FlowFiles. It is the most important building block available to NiFi users to build their dataflows.

Why use Draco?

Draco is designed to run specific set of processors and templates for persistence context data to multiple sinks.

Current stable release is able to persist the following sources of data in the following third-party storages:

  • NGSI-like context data in:
    • MySQL, the well-known relational database manager.
    • MongoDB, the NoSQL document-oriented database.
    • PostgreSQL, the well-known relational database manager.
    • Cassandra, Distributed database.
    • Carto, for geospatial Data
    • HDFS, High Distributed filesystem.
    • DynamoDB, A cloud key-value Amazon DB.

Draco place in FIWARE architecture

Draco plays the role of a connector between Orion Context Broker (which is a NGSI source of data) and many external and FIWARE storages like MySQL, MongoDB

FIWARE architecture

How to Deploy?

The most easy way to deploy Draco is running the container available on DockerHub.

Start a container for this image by typing in a terminal:

 $ docker run --name draco -p 8080:8080 -p 5050:5050 -d ging/fiware-draco

However if you want to have a custom installation please go to the Installation and Administration Guide at readthedocs.org

Usage: Overview

The best way to start with Draco is following the Quick Start Guide found at readthedocs.org and it provides a good documentation summary (Draco).

Nevertheless, both the Installation and Administration Guide also found at readthedocs.org cover more advanced topics.

The Processors Catalogue completes the available documentation for Draco (Draco).

Training courses

Academy Courses

Some lessons on Draco Fundamentals will be offered soon in the FIWARE Academy .

Examples

Several examples are provided to facilitate getting started with GE. They are hosted in the official documentation at Read the Docs.

Testing

In order to test the code:

$mvn clean test -Dtest=Test* cobertura:cobertura coveralls:report -Padd-dependencies-for-IDEA

Quality Assurance

This project is part of FIWARE and has been rated as follows:

  • Version Tested: TBD
  • Documentation: TBD
  • Responsiveness: TBD
  • FIWARE Testing: TBD

Roadmap

The list of features that are planned for the subsequent release are available in the ROADMAP file.

Maintainers

@anmunoz.

Licensing

Draco Except as otherwise noted this software is licensed under the Apache License, Version 2.0 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Reporting issues and contact information

Any doubt you may have, please refer to the Draco Core Team.

fiware-draco's People

Contributors

anmunoz avatar jason-fox avatar sonsoleslp avatar snyk-bot avatar pooja1pathak avatar codacy-badger avatar javicond3 avatar dependabot[bot] avatar johwes avatar josevirseda avatar veronicapp avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.