Denodo Developper Prep
Denodo Developper Prep
Data virtualization project management : development of best practises for building solution in a
productive way
interactions between :
team role , users of the project , upper management
Development process :
BEFORE :
critical need buy in from management and users along with communication with data consumers
The following is necessary to agree on what is to be built ( data models , data access protocols )
During :
Prefer small features and iterate quickly over big monolithic , let business guide growth
focus on : keeping each iteration as small …
Different roles : data virt architect , platform administrator , data virt developer , business users
any organizations needs support provided to their users : could be the same dev team or separate
group , needs a set of procedures and tools to manage the relationship with users of the project and
developers of the project
The differents components of denodo platform
Development scnarios :
two different development scenarios :
centralized model : one VDP server for each environment , each dev woks on their own vdp (one data
base per project ) theres central database ( per project ) where changes are consolidated
Distributed model : each dev works on their own vdp server , theres an additional central server
where changes are consolidated
choosing a workflow : each model has its own pro and cons , important to understand these in order
to choose the right strategy for your project
centralized workflow with shared , private data ,, distributed workflow
centralized model :
Best practises : Manage global elements
THE DENODO SOLUTION MANAGER IS THE RECOMMENDED WAY TO PROMOTE CHANGES it
tales into account all the tasks that denodo platform administrators should perform to promote
changes through env
The agile dev : the recommende project lifecycle for denodo is very similar to a software project ( dev /
test / promotion to production )
following an agile method , an iterative app can be apolied , repeating these steps for ervy sprint
key value of data virtualization is agility in delivery “ reduce time to data “ with minimal it staff
agile to denodo : each code lifecycle management involves ( defining revisions to promote between
environments , promoting revision to a cluster with no downtimes , testing , integration with lifecycle )
et encore
list of actions carried out in a dev life cycle are : discover and analyze the business need , define the
archi of the sol , design the sol …
sprint : 1 //////dev :: ( can create source/views deploy services and use vcs to build virtual data
model)
2////////testing (optional ) : central server where changes are consolidated …
3 /////////// QA : another team can test the model against similar volum of data
4 //////// production : final users and application will use the views / services …
Monitoring : the denodo platform provides two diff way of monitoring server of the platform across
various env ( Using java management extensions jmx agent such as javatm visualVm or
Jconsole ///////: using the denodo monitor app included in the denodo platform )
denodo platform is available as a docker contaner to be downloaded from the support site
Version Control : vcs is the management of changes to elements of the server catalog
vcs enables team dev : used at different points of the software deployment lifecycle or used at different
geographical location
vcs support allows to do th e main tasks involved in version control : check in / chek out elements ,
reverting elements folder and db , discarding , conflicts detection and resolution …
the configuration of vcs in vdp is a tsk done usually bye a denodo admin ( in a distributed team
with local isnta of denodo platform for each dev this config has to be done by the dev ) so THE
DEV IS THE ADMIN OF THE LOCAL SERVER )
When vcs is active for the current DB each node in the admin tool element tree is marked with a vcs
status icon having different color
the contextual menu shows different options to perform the corresponding version control tasks
depending on the version control system configured
the following are the avail option for each system :
git : commit pull push
TFS / SVN check in check out diff and discard
Promotion overview :
recommendation apple when promoting between environments : USE VCS INETGRATION DURING
DEV , USE SOLUTION MANGER OR VQL FILES to promote changes to other environments admin
can use export import svripts for promoting code between diff en in case Solution manager is not
configured +++++++++ Deploy the complete database ++++++++ add a tag to the vcs repository
performance optim :
the time to perform the rollback in a virtual dataport server depends on the size of te metadata
…
to reduce time for the rollback operation and the promotion , following command can be used :
enter /exit promotion mode
Promote to other env : in solution manager a promotion takes into account all the tasks taht you
should perform to migrate changes in the servers metadata from one env to anothe
the following types of elements are not included in the revision candidates : Ressource manager
plans and rules ++ widgets and jms listeners
the list of candidate elements and tasks depends on the permissions of the user
if the server is configured with the authenticate with current user cred fro creation revisions option , the
user auth in the sol manager will be uses , instead of the user password defined in the server
the following features will be helpful for creatnh reisiosn with ease :
1// wizard to compar e the metadata between source and target env
2// Rest API option to download the VQL of the revision
Revisions operations : users can view the list of created revision in the revision table , users can
remove their own revisions ++Edit their own revisions ( not allowed to remove or edit deployed
revisions ) read-only
Revision PROPERTIES :
the elements of revision may depend on a set of properties like data source, urls user name and
passwords : the target env should define a value fo every virtual data port property that parm the vql of
the revision
every cluster of the target en with schedumer servers should define a value for every scheduler
property that parametrizes the task of the revisions
BEFORE DEPLOYING REVISIONS validate that the target env defines all the required prop ++ its
possible to chekck the list of env where a revision was validated on
Cluster CONSIDERATIONS : During the deployment , all nodes in the cluster should be updated
Simple depl + deployment without service interruption
There are two different cluster env scenarios available for deployment without service interup
that depends on the topology of the target en
single cluster environment ++ several cluster environment
1:::::::::::::Simple deployment :
This option assumes that the application service will not be available during the whole deployment
process : the revision is deployed in all the servers without explicitly disabling any cluster or server in
the load balancer
The section deployment scripts : allow to administer the scripts that the solution manager uses to
enable and disable servers or clusters in the load balancer
ONE CLUSTER : the solution manager will use scripts ( enable / dsiable in the load balancer )
MORE THAN ONE CLUSTER : enable cluster in the load balancer / disable in the load balancer
Each deploy script can declare a list of parameter ; solution manager supports two kinds of types
Literal argument ++ load balancing variable
The solution manager performs some basic validations before starting the deploy :
Deployment must be enabled in the configuration of the target env
the target env must define all the vdp prop that parametrize the vql of the revision
every cluster of the target en with scheduler servers must define all schedumer pro
theres no other deployment in progress
the env config matches the current env topology
DEPLOY PROCESS :
the solution manager executes first all the revisions in one server continuing to the next one
the deploy config of the target envi defines which actions are actually performed during the dep
process
Types of deploy :
STANDARD MODE DEPLO// CLOUD DEPLOY
DEPLOYM PROCESS :
consists in executing all the changes defines in one mor revisions in the denodo server of an env
the solution manager executes
Documentation :
metadata provides information about the elements like owner and the creation and / or modification
time …
Doc is helpful to help track aspects of application
Dev , maintenance , knowledge transfer to other developers
the metada of denodo element allows devlopers to access its metadata : depending on their prib they
could : view diff info about the view , set the owner of the element …
denodo allows to add descriptions for fields this helps users to better understand fields purpose
( imported from jdbc sources )
fields are propagated to DV
the catalog search is a tool provided by the VDP admin tool available in the menu tools >
catalogSearch ( useful for searching fo elements metadata such as : owner of an element , creation or
modification date , description USING CATALOG SEARCH OR USING STORED PROCEDURES )
DENODO PROVIDES different out of the box stored procedures dev can use for diff purposes .
Some of them are useful for searching for metadata
REST WEB SERVICES : the openai specification is specification for describing rest web services
denod rest web services use the openAPI specification for describing the available operations and their
input and output schemas
DATA CATALOG : is web tool that lets both technical and business users query search and
brows information and meta information stored in a virtual dataport sever
by thistool , they can generate new knowledge and pve the way to take better decisions
Project Layers :
for simplifying the dev and management of the data virtu projects with denodo , all these ele mst be
organized in diff layer
CONNECTIVITY ? INTEGRATION ? BUISNESS ENTITIES ? REPORT VIEWS ? DATA SERVICES
PROJECT STRUCTURE :
project stru comprises od fiff layers such as connectivity , integration ..
based on the project structure the dolders can also be organised for managing the elements in case of
complex projects
one foder by layer , additional for others elements for example ,: associations , jms listner
VIEW DEV :
1/////////:: CACHE
THE DBMS USED Aa cache could also be used as data source
general recom … : t
3 /////////// DOCUMENTATION
along with a naming convention views can be de=ocumneted by adding description to them
4 .//////////////// Integration with version control systems
THE Version control system should be the single source of truth about the current status of the projects
+++++ complete
DATA LINEAGE : ALLOWS DATA ADMINS TO TRACE THE ORIGIN OF ANY COLUMN IN A
DERIVED VIEWS ACROSS ITS TREE OF VIEW COMBINATION
EXECTIONS TRACES
INTERFACES