diff options
Diffstat (limited to 'docs/modelingconcepts/data-dictionary.rst')
-rw-r--r-- | docs/modelingconcepts/data-dictionary.rst | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/docs/modelingconcepts/data-dictionary.rst b/docs/modelingconcepts/data-dictionary.rst new file mode 100644 index 000000000..f2dbc3524 --- /dev/null +++ b/docs/modelingconcepts/data-dictionary.rst @@ -0,0 +1,113 @@ +.. This work is a derivative of https://wiki.onap.org/display/DW/Modeling+Concepts#Concepts-1386016968 by IBM +.. used under Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. Copyright (C) 2020 Deutsche Telekom AG. + +.. _data_dictionary: + +Data Dictionary +----------------- + +A data dictionary **models the how** a specific **resource** can be **resolved**. + +A resource is a **variable/parameter** in the context of the service. +It can be anything, but it should not be confused with SDC or Openstack resources. + +A data dictionary can have **multiple sources** to handle resolution in different ways. + +The main goal of data dictionary is to define **re-usable** entity that could be shared. + +**Creation** of data dictionaries is a **standalone** activity, separated from the blueprint design. + +As part of modelling a data dictionary entry, the following generic information should be provided: + +.. list-table:: + :widths: 25 50 25 + :header-rows: 1 + + * - Property + - Description + - Scope + * - updated-by + - The creator + - Mandatory + * - tags + - Information related + - Mandatory + * - sources + - List of resource source instance (see :ref:`resource source`) + - Mandatory + * - property + - Defines type and description, as nested JSON + - Mandatory + * - name + - Data dictionary name + - Mandatory + +**Bellow are properties that all the resource source can have** + +The modeling does allow for **data translation** between external capability +and CDS for both input and output key mapping. + +.. list-table:: + :widths: 25 50 25 + :header-rows: 1 + + * - Property + - Description + - Scope + * - input-key-mapping + - map of resources required to perform the request/query. The left hand-side is what is used within + the query/request, the right hand side refer to a data dictionary instance. + - Optional + * - output-key-mapping + - name of the resource to be resolved mapped to the value resolved by the request/query. + - Optional + * - key-dependencies + - | list of data dictionary instances to be resolved prior the resolution of this specific resource. + | during run time execution the key dependencies are recursively sorted and resolved + in batch processing using the `acyclic graph algorithm + <https://en.wikipedia.org/wiki/Directed_acyclic_graph>`_ + - Optional + +**Example:** + +``vf-module-model-customization-uuid`` and ``vf-module-label`` are two data dictionaries. +A SQL table, VF_MODULE_MODEL, exist to correlate them. + +Here is how input-key-mapping, output-key-mapping and key-dependencies can be used: + +.. list-table:: + :widths: 100 + :header-rows: 1 + + * - vf-module-label data dictionary + * - .. code-block:: JSON + + + { + "name" : "vf-module-label", + "tags" : "vf-module-label", + "updated-by" : "adetalhouet", + "property" : { + "description" : "vf-module-label", + "type" : "string" + }, + "sources" : { + "primary-db" : { + "type" : "source-primary-db", + "properties" : { + "type" : "SQL", + "query" : "select sdnctl.VF_MODULE_MODEL.vf_module_label as vf_module_label + from sdnctl.VF_MODULE_MODEL where sdnctl.VF_MODULE_MODEL.customization_uuid=:customizationid", + "input-key-mapping" : { + "customizationid" : "vf-module-model-customization-uuid" + }, + "output-key-mapping" : { + "vf-module-label" : "vf_module_label" + }, + "key-dependencies" : [ "vf-module-model-customization-uuid" ] + } + } + } + }
\ No newline at end of file |