SlideShare uma empresa Scribd logo
1 de 12
Training course goals
    • Develop and support solutions based on CloverETL
      technology
      – Compose and debug transformations in CloverETL Designer
      – Connect to any number of data sources or sinks (files,
        databases, web/cloud…)
      – Detect and react to errors in the data
      – Use CloverETL Server to process large amounts of data
      – Design and develop Job Flows to manage complex processes
      – Support existing solutions using CloverETL


1                                                        © 2013 Javlin; All rights reserved
Course modules: basics
    1.   CloverETL introduction
         CloverETL product family, basic terminology

    2.   First steps in CloverETL Designer
         Building transformations with basic components, reading and writing data

    3.   Error handling
         Properly handling input data errors and runtime errors

    4.   Common components and CTL programming
         Commonly used components and business rule development in CTL

    5.   Databases
         Connecting to databases and using them as data sources and targets


2                                                                                   © 2013 Javlin; All rights reserved
Course modules: advanced
    6.   Structured data
         Handling complex data formats like XML or JSON, using web services

    7.   Advanced graph design
         Complex transformation components, Java transformations and more

    8.   CloverETL Server
         Introduction to CloverETL Server, its user interface and execution environment

    9.   Jobflows
         Building jobflows to manage your processes on CloverETL Server

    10. Advanced CloverETL Server
         Advanced graph scheduling, using Launch Services and CloverETL Cluster


3                                                                                         © 2013 Javlin; All rights reserved
CloverETL product family
    • CloverETL is a whole family of products
      – Support for broad range of usage scenarios
      – Purely Java-based – supported on many operating systems
        • Windows, *nix, Linux, Mac


                           CloverETL          CloverETL
                           Designer             Server

                               CloverETL Engine
                                       Java

4                                                         © 2013 Javlin; All rights reserved
Metadata
    •   Metadata describe record structure and format
        –   Required for each edge used in the graph to define the format of the data flowing through
            that edge

    •   Structure defines fields in the record
        –   Unique (within record) field names
        –   Data types to determine type of information which can be stored in the record.
        –   Flat structure – no nesting is allowed

    •   Format defines rules for data input and output
        –   Format of the record: delimited, fixed-length or mixed
            •   Delimiters only apply when working with files
        –   Parsing rules for readers and formatting rules for writers
            •   Special formatting for numbers, date fields, …




5                                                                                        © 2013 Javlin; All rights reserved
Metadata types and fields
    •   Record type determines how to find the fields
        –   Delimited: fields are separated by delimiters
        –   Fixed-length: each fields has predefined number of
            characters
        –   Mixed: both types of fields in single record             Transaction
                                                                 1   transactionId          long


    •   Fields can be of various types                           2   accountNumber          long

        –   Numeric: integer, long, number, decimal              3   transactionType        string

        –   Text: string                                         4   amount                 decimal(20, 3)

        –   Boolean values: boolean                              5   timestamp              date
        –   Date and time: date
        –   Other: byte, cbyte
        –   Containers: list or map of a primitive type




6                                                                                © 2013 Javlin; All rights reserved
Field ordering matters
    •   Ordering of the fields is very important
        –   For parsing
        –   For output formatting
    •   Data is read/written in the same order in which            Transaction
        the fields are defined.                                1   transactionId          long

                                                               2   accountNumber          long

                                                               3   transactionType        string

                                                               4   amount                 decimal(20, 3)

                                                               5   timestamp              date




              1340817132,3293200814,D,59.940,20100102125243
              1340817156,5357054331,C,6.720,20100116080136
              1340817746,4270100470,D,194.920,20100323100706

7                                                                              © 2013 Javlin; All rights reserved
Reformat and CTL code
    • Transformation in Reformat can be written directly in CTL
      without using Visual Mode
      – Use all CTL features: control structures, error handling, logging…
      – Write comments explaining the complex parts of the code
    • Editor supports syntax highlighting, autocomplete and on-
      the-fly code validation




8                                                                   © 2013 Javlin; All rights reserved
Reformat code workflow
    Called during component initialization                             init

                                                                      Begin



    Called before the first record is processed.                  preExecute



    Main part of the transformation. Called


                                                   Next record
    once for each input record.
                                                                 backransform
                                                                    t        back              transformOnError
    Return value determines which port (if                                           Error
    any) receives the result.
                                                                                    Called only if transform caused an error.


    Called after the last record is processed
    immediately before component finishes.
                                                                  postExecute



                                                                       End
9                                                                                                                      © 2013 Javlin; All rights reserved
Data denormalization
                                       Account
     Original data                     accountId    customerId     balance        created       closed
     Multiple records grouped
     based on the key.                 9804568699   27345              2300.56    2011-11-14
                                       1108193472   27345              -1739.05   2005-07-22
                                       6054951154   27345              4500.60    2009-09-01    2010-04-30
                                       9459175447   27345              3200.80    2011-03-08




            Denormalize




                                       CustomerAccount
     Denormalized data                 s
     Single record containing values   customerId   totalBalance   accounts
     determined by processing the
                                       27345             8262.91   [9804568699, 1108193472, 6054951154, 9459175447]
     whole input group.

10                                                                                                 © 2013 Javlin; All rights reserved
Denormalizer
     • Converts data into denormalized form
       – Combine multiple records in a group into one output record
       – Output usually uses different metadata

     • Required configuration
       – Transformation code
         • Only CTL can be used, visual mode is not available
       – Grouping
         • Group can be defined based on a key or group size
         • If key is used, data has to be sorted


11                                                              © 2013 Javlin; All rights reserved
Denormalize code workflow
                                                                                      init

                                                                                      Begin
                                                                                                      transform and append have their own
                                                                                                      error handler. Each handler interrupts the
                                                                                 preExecute           group and resumes processing as if the
                                                                                                      group was processed as a whole.
     append is called once for each record in a




                                                                 Next record
     group. It is typically used to update global
                                                                               back append back                    appendOnError
     variables which are then used in transform
     function.

     transform is called once per group and is
                                                                                                     Error
     the only function which generates output                                  backransform
                                                                                  t        back                   transformOnError
     records.
                                                    Next group




     clean is called after each transform and
     can be used to clean-up internal variables.
                                                                               back   clean   back




                                                                                postExecute


                                                                                      End
12                                                                                                                                      © 2013 Javlin; All rights reserved

Mais conteúdo relacionado

Mais procurados

JavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big DataJavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big DataBrian Martin
 
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data ManagementODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data ManagementFrancisco Amores
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)blahap
 
Arch stylesandpatternsmi
Arch stylesandpatternsmiArch stylesandpatternsmi
Arch stylesandpatternsmilord14383
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellCuneyt Goksu
 
HFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management ClientHFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management ClientCharles Beyer
 
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data ManagementODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data ManagementFrancisco Amores
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batchtimfanelli
 
DDS vs DDS4CCM
DDS vs DDS4CCMDDS vs DDS4CCM
DDS vs DDS4CCMRemedy IT
 
JavaOne2013: Implement a High Level Parallel API - Richard Ning
JavaOne2013: Implement a High Level Parallel API - Richard NingJavaOne2013: Implement a High Level Parallel API - Richard Ning
JavaOne2013: Implement a High Level Parallel API - Richard NingChris Bailey
 
FDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next LevelFDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next LevelFrancisco Amores
 

Mais procurados (12)

JavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big DataJavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big Data
 
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data ManagementODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
ODTUG KSCOPE 2018 - REST APIs for FDMEE and Cloud Data Management
 
Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)Intro in JavaEE world (TU Olomouc)
Intro in JavaEE world (TU Olomouc)
 
Arch stylesandpatternsmi
Arch stylesandpatternsmiArch stylesandpatternsmi
Arch stylesandpatternsmi
 
DB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in NutshellDB2 for z/OS Architecture in Nutshell
DB2 for z/OS Architecture in Nutshell
 
HFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management ClientHFM API Deep Dive – Making a Better Financial Management Client
HFM API Deep Dive – Making a Better Financial Management Client
 
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data ManagementODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
ODTUG KSCOPE 2017 - Black Belt Techniques for FDMEE and Cloud Data Management
 
Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batch
 
DDS vs DDS4CCM
DDS vs DDS4CCMDDS vs DDS4CCM
DDS vs DDS4CCM
 
JavaOne2013: Implement a High Level Parallel API - Richard Ning
JavaOne2013: Implement a High Level Parallel API - Richard NingJavaOne2013: Implement a High Level Parallel API - Richard Ning
JavaOne2013: Implement a High Level Parallel API - Richard Ning
 
Ta3
Ta3Ta3
Ta3
 
FDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next LevelFDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next Level
 

Semelhante a CloverETL Training Sample

Consolidated shared indexes in real time
Consolidated shared indexes in real timeConsolidated shared indexes in real time
Consolidated shared indexes in real timeJeff Mace
 
026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...
026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...
026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...Neo4j
 
Presenter manual embedded systems (specially for summer interns)
Presenter manual   embedded systems (specially for summer interns)Presenter manual   embedded systems (specially for summer interns)
Presenter manual embedded systems (specially for summer interns)XPERT INFOTECH
 
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Ruby Meditation
 
Introduction to MySQL Cluster
Introduction to MySQL ClusterIntroduction to MySQL Cluster
Introduction to MySQL ClusterAbel Flórez
 
Real-world Entity Framework
Real-world Entity FrameworkReal-world Entity Framework
Real-world Entity FrameworkLynn Langit
 
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for DevelopersBIOVIA
 
Building a Database for the End of the World
Building a Database for the End of the WorldBuilding a Database for the End of the World
Building a Database for the End of the Worldjhugg
 
SDN Controller - Programming Challenges
SDN Controller - Programming ChallengesSDN Controller - Programming Challenges
SDN Controller - Programming Challengessnrism
 
Django è pronto per l'Enterprise
Django è pronto per l'EnterpriseDjango è pronto per l'Enterprise
Django è pronto per l'EnterprisePyCon Italia
 
triAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcachedtriAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcachedtriAGENS
 
SimpleVoc vs Memcached
SimpleVoc vs MemcachedSimpleVoc vs Memcached
SimpleVoc vs Memcachedtriagens
 
OpenTravel XML Object Suite - Component Model
OpenTravel XML Object Suite - Component ModelOpenTravel XML Object Suite - Component Model
OpenTravel XML Object Suite - Component ModelOpenTravel Alliance
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
 
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and ChallengesBIOVIA
 

Semelhante a CloverETL Training Sample (20)

Consolidated shared indexes in real time
Consolidated shared indexes in real timeConsolidated shared indexes in real time
Consolidated shared indexes in real time
 
026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...
026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...
026 Neo4j Data Loading (ETL_ELT) Best Practices - NODES2022 AMERICAS Advanced...
 
Presenter manual embedded systems (specially for summer interns)
Presenter manual   embedded systems (specially for summer interns)Presenter manual   embedded systems (specially for summer interns)
Presenter manual embedded systems (specially for summer interns)
 
Ice
IceIce
Ice
 
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
Teach your application eloquence. Logs, metrics, traces - Dmytro Shapovalov (...
 
Erlang/Elixir and OTP
Erlang/Elixir and OTPErlang/Elixir and OTP
Erlang/Elixir and OTP
 
Introduction to MySQL Cluster
Introduction to MySQL ClusterIntroduction to MySQL Cluster
Introduction to MySQL Cluster
 
Real-world Entity Framework
Real-world Entity FrameworkReal-world Entity Framework
Real-world Entity Framework
 
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
 
VoltDB.ppt
VoltDB.pptVoltDB.ppt
VoltDB.ppt
 
Building a Database for the End of the World
Building a Database for the End of the WorldBuilding a Database for the End of the World
Building a Database for the End of the World
 
Datastage Online Training
Datastage Online TrainingDatastage Online Training
Datastage Online Training
 
SDN Controller - Programming Challenges
SDN Controller - Programming ChallengesSDN Controller - Programming Challenges
SDN Controller - Programming Challenges
 
Django è pronto per l'Enterprise
Django è pronto per l'EnterpriseDjango è pronto per l'Enterprise
Django è pronto per l'Enterprise
 
triAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcachedtriAGENS simplevoc vs_memcached
triAGENS simplevoc vs_memcached
 
SimpleVoc vs Memcached
SimpleVoc vs MemcachedSimpleVoc vs Memcached
SimpleVoc vs Memcached
 
OpenTravel XML Object Suite - Component Model
OpenTravel XML Object Suite - Component ModelOpenTravel XML Object Suite - Component Model
OpenTravel XML Object Suite - Component Model
 
L04 loading metadata
L04 loading metadataL04 loading metadata
L04 loading metadata
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
(ATS3-PLAT07) Pipeline Pilot Protocol Tips, Tricks, and Challenges
 

Mais de CloverDX (formerly known as CloverETL) (6)

CloverETL is now CloverDX
CloverETL is now CloverDXCloverETL is now CloverDX
CloverETL is now CloverDX
 
GDPR Is Happening!
GDPR Is Happening!GDPR Is Happening!
GDPR Is Happening!
 
CloverETL Provides Data Prep for Tableau
CloverETL Provides Data Prep for TableauCloverETL Provides Data Prep for Tableau
CloverETL Provides Data Prep for Tableau
 
Spiefel wählt CloverETL für medien dataintegration
Spiefel wählt CloverETL für medien dataintegrationSpiefel wählt CloverETL für medien dataintegration
Spiefel wählt CloverETL für medien dataintegration
 
CloverETL and Tableau integration
CloverETL and Tableau integrationCloverETL and Tableau integration
CloverETL and Tableau integration
 
Introduction to ETL and Data Integration
Introduction to ETL and Data IntegrationIntroduction to ETL and Data Integration
Introduction to ETL and Data Integration
 

Último

Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...
Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...
Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...Amil baba
 
澳洲Deakin学位证,迪肯大学毕业证书1:1制作
澳洲Deakin学位证,迪肯大学毕业证书1:1制作澳洲Deakin学位证,迪肯大学毕业证书1:1制作
澳洲Deakin学位证,迪肯大学毕业证书1:1制作rpb5qxou
 
Computer Organization and Architecture 10th - William Stallings, Ch01.pdf
Computer Organization and Architecture 10th - William Stallings, Ch01.pdfComputer Organization and Architecture 10th - William Stallings, Ch01.pdf
Computer Organization and Architecture 10th - William Stallings, Ch01.pdfShahdAbdElsamea2
 
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjekAIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjekpavan402055
 
RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作f3774p8b
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...Amil Baba Dawood bangali
 
美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作
美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作
美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作ss846v0c
 
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls DubaiDubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubaikojalkojal131
 
Kwin - Trang Tải App Game Kwin68 Club Chính Thức
Kwin - Trang Tải App Game Kwin68 Club Chính ThứcKwin - Trang Tải App Game Kwin68 Club Chính Thức
Kwin - Trang Tải App Game Kwin68 Club Chính ThứcKwin68 Club
 

Último (9)

Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...
Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...
Uae-NO1 Amil Baba In Karachi Kala Jadu In Karachi Amil baba In Karachi Addres...
 
澳洲Deakin学位证,迪肯大学毕业证书1:1制作
澳洲Deakin学位证,迪肯大学毕业证书1:1制作澳洲Deakin学位证,迪肯大学毕业证书1:1制作
澳洲Deakin学位证,迪肯大学毕业证书1:1制作
 
Computer Organization and Architecture 10th - William Stallings, Ch01.pdf
Computer Organization and Architecture 10th - William Stallings, Ch01.pdfComputer Organization and Architecture 10th - William Stallings, Ch01.pdf
Computer Organization and Architecture 10th - William Stallings, Ch01.pdf
 
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjekAIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
AIMA_ch3_L2-complement.ppt kjekfkjekjfkjefkjefkjek
 
RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作RBS学位证,鹿特丹商学院毕业证书1:1制作
RBS学位证,鹿特丹商学院毕业证书1:1制作
 
NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...
NO1 Certified Black Magic Specialist Expert Amil baba in Uk England Northern ...
 
美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作
美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作
美国IUB学位证,印第安纳大学伯明顿分校毕业证书1:1制作
 
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls DubaiDubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
Dubai Call Girls O525547819 Spring Break Fast Call Girls Dubai
 
Kwin - Trang Tải App Game Kwin68 Club Chính Thức
Kwin - Trang Tải App Game Kwin68 Club Chính ThứcKwin - Trang Tải App Game Kwin68 Club Chính Thức
Kwin - Trang Tải App Game Kwin68 Club Chính Thức
 

CloverETL Training Sample

  • 1. Training course goals • Develop and support solutions based on CloverETL technology – Compose and debug transformations in CloverETL Designer – Connect to any number of data sources or sinks (files, databases, web/cloud…) – Detect and react to errors in the data – Use CloverETL Server to process large amounts of data – Design and develop Job Flows to manage complex processes – Support existing solutions using CloverETL 1 © 2013 Javlin; All rights reserved
  • 2. Course modules: basics 1. CloverETL introduction CloverETL product family, basic terminology 2. First steps in CloverETL Designer Building transformations with basic components, reading and writing data 3. Error handling Properly handling input data errors and runtime errors 4. Common components and CTL programming Commonly used components and business rule development in CTL 5. Databases Connecting to databases and using them as data sources and targets 2 © 2013 Javlin; All rights reserved
  • 3. Course modules: advanced 6. Structured data Handling complex data formats like XML or JSON, using web services 7. Advanced graph design Complex transformation components, Java transformations and more 8. CloverETL Server Introduction to CloverETL Server, its user interface and execution environment 9. Jobflows Building jobflows to manage your processes on CloverETL Server 10. Advanced CloverETL Server Advanced graph scheduling, using Launch Services and CloverETL Cluster 3 © 2013 Javlin; All rights reserved
  • 4. CloverETL product family • CloverETL is a whole family of products – Support for broad range of usage scenarios – Purely Java-based – supported on many operating systems • Windows, *nix, Linux, Mac CloverETL CloverETL Designer Server CloverETL Engine Java 4 © 2013 Javlin; All rights reserved
  • 5. Metadata • Metadata describe record structure and format – Required for each edge used in the graph to define the format of the data flowing through that edge • Structure defines fields in the record – Unique (within record) field names – Data types to determine type of information which can be stored in the record. – Flat structure – no nesting is allowed • Format defines rules for data input and output – Format of the record: delimited, fixed-length or mixed • Delimiters only apply when working with files – Parsing rules for readers and formatting rules for writers • Special formatting for numbers, date fields, … 5 © 2013 Javlin; All rights reserved
  • 6. Metadata types and fields • Record type determines how to find the fields – Delimited: fields are separated by delimiters – Fixed-length: each fields has predefined number of characters – Mixed: both types of fields in single record Transaction 1 transactionId long • Fields can be of various types 2 accountNumber long – Numeric: integer, long, number, decimal 3 transactionType string – Text: string 4 amount decimal(20, 3) – Boolean values: boolean 5 timestamp date – Date and time: date – Other: byte, cbyte – Containers: list or map of a primitive type 6 © 2013 Javlin; All rights reserved
  • 7. Field ordering matters • Ordering of the fields is very important – For parsing – For output formatting • Data is read/written in the same order in which Transaction the fields are defined. 1 transactionId long 2 accountNumber long 3 transactionType string 4 amount decimal(20, 3) 5 timestamp date 1340817132,3293200814,D,59.940,20100102125243 1340817156,5357054331,C,6.720,20100116080136 1340817746,4270100470,D,194.920,20100323100706 7 © 2013 Javlin; All rights reserved
  • 8. Reformat and CTL code • Transformation in Reformat can be written directly in CTL without using Visual Mode – Use all CTL features: control structures, error handling, logging… – Write comments explaining the complex parts of the code • Editor supports syntax highlighting, autocomplete and on- the-fly code validation 8 © 2013 Javlin; All rights reserved
  • 9. Reformat code workflow Called during component initialization init Begin Called before the first record is processed. preExecute Main part of the transformation. Called Next record once for each input record. backransform t back transformOnError Return value determines which port (if Error any) receives the result. Called only if transform caused an error. Called after the last record is processed immediately before component finishes. postExecute End 9 © 2013 Javlin; All rights reserved
  • 10. Data denormalization Account Original data accountId customerId balance created closed Multiple records grouped based on the key. 9804568699 27345 2300.56 2011-11-14 1108193472 27345 -1739.05 2005-07-22 6054951154 27345 4500.60 2009-09-01 2010-04-30 9459175447 27345 3200.80 2011-03-08 Denormalize CustomerAccount Denormalized data s Single record containing values customerId totalBalance accounts determined by processing the 27345 8262.91 [9804568699, 1108193472, 6054951154, 9459175447] whole input group. 10 © 2013 Javlin; All rights reserved
  • 11. Denormalizer • Converts data into denormalized form – Combine multiple records in a group into one output record – Output usually uses different metadata • Required configuration – Transformation code • Only CTL can be used, visual mode is not available – Grouping • Group can be defined based on a key or group size • If key is used, data has to be sorted 11 © 2013 Javlin; All rights reserved
  • 12. Denormalize code workflow init Begin transform and append have their own error handler. Each handler interrupts the preExecute group and resumes processing as if the group was processed as a whole. append is called once for each record in a Next record group. It is typically used to update global back append back appendOnError variables which are then used in transform function. transform is called once per group and is Error the only function which generates output backransform t back transformOnError records. Next group clean is called after each transform and can be used to clean-up internal variables. back clean back postExecute End 12 © 2013 Javlin; All rights reserved

Notas do Editor

  1. CloverETL product family can easily fit different usage scenarios:Open source CloverETL Engine for very small or hobby projectsStandalone CloverETL Designer for small projectsCloverETL Server (includes Designer) for medium to large projectsCloverETL Enterprise Server for large projects, optionally can support clustering for even better performance
  2. Each metadata defines a record structure which is used when parsing the data in reader components or writing the output in writer components. To make the work easier, each record has its own name. Note that the name does not have to be unique within a graph – Clover uses internal identifiers (metadata id) to distinguish between different records with the same name. It is however strongly recommended that the record names are unique to prevent confusion during the development of larger graphs.Each record name has to be a valid identifier and therefore can only contain letters, numbers and underscores. Record names are case-sensitive when used in code.Each record can contain any number of fields of various types. Fields only have simple types and it is not possible to nest records into each other like in Java or other popular languages. Each field has to have a name which is unique within the record. Field names have to be identifiers as well and therefore they have to conform to the same rules as record names.
  3. Record types:Delimited: whole record defines a delimiter between records and each field can have its own delimiter which separates it from the next field. Clover supports delimiters with multiple characters and each delimiter can be different.Fixed-length: each field has predefined width and no delimiters are used.Mixed: some of the fields are delimited and some of the fields have fixed length.Field types:boolean: simple true/false valueinteger: signed integer number, 32-bit (minimum value is -2 147 483 648; maximum is 2 147 483 647)long: signed integer number, 64-bit (minimum is -9 223 372 036 854 775 808; maximum is -9 223 372 036 854 775 807)number: a floating-point number (64-bit IEEE 754 double precision, same as Java double data type).string: a character string. All strings are unicode and are represented in UTF-16. The maximum length of a string is 2^32-1 (the maximum value of integer).date: represents a date with millisecond precision. Note that it is possible to specify the date formatting via custom format string. Clover supports two libraries for date formatting – built-in Java standard library and Joda time library. More details about the formatting options provided by these libraries can be found online:Built-in Java library: formatting performed by java.util.SimpleDateFormat class, online documentation at http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.htmlJoda time: formatting performed by org.joda.time.format.DateTimeFormatter class with configuration specified as DateTimeFormat class, online documentation for formatting strings can be found at http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.htmldecimal: a fixed-precision number with configurable precision. Two parameters – length and scale – define the total number of digits and the number of digits after decimal point.byte, cbyte: array of bytes. cbyte is compressed in memory so it can be used for larger data.It is also possible to use containers for field values. Clover supports lists and maps of primitive data types. For maps, the map is always map[string, X] where X is the data type specified in the metadata. Note that not all components support these types in full (for example it is not possible to use them as keys for sorting etc.).
  4. Programmable components in CloverETL all use set of functions which are called in a specific order when processing the data. In general, the components contain initialization functions (init and preExecute) which are called before the record processing starts. Then usually one “main” function (like transform or generate) which is called once for each incoming record. Finally, after all data is processed, postExecute is called.Only the main function is mandatory – other functions (initialization and post-processing) are optional and you do not need to provide their implementations. All onError functions (like transformOnError) are optional as well – if they are not specified, the processing fails whenever an error is encountered.Some of the components (e.g. RollUp) contain multiple functions which are called for each record. See later modules for more details on advanced programming in Clover.The function prototypes are automatically created for you when you create new transformation (i.e. when you first try to open transformation code after adding a component to the graph). Optional functions are commented out in the source and you can uncomment them if needed.
  5. Onlytransform and append functions are mandatory. All other functions mentioned on the slide can be left unimplemented.Note: it is not possible to access fields from the input record in transform function. The transformation will crash if you attempt to use anything from the input port. It is therefore necessary to store all the data you need in a variable. For example, it is possible to create instance of a record and copy the data via wildcard mappings:InputMetadata temp;temp.* = $in.0.*;InputMetadata is of course name of the metadata coming through the input port.Note: it is not possible to access output ports in append function.