notes d'étude ETL-Kettle (Mise en route, Introduction, opération simple)

Bouilloire: Présentation
ETL: introduction
ETL (acronyme Extract-Transform-Load, que l' extraction de données, la transformation, la procédure de chargement), pour des applications commerciales ou industrielles, nous rencontrons souvent une variété de traitement des données, la conversion, la migration, par conséquent, pour comprendre et maîtriser l'utilisation d'un outil de etl, essentiel, bouilloire est un outil puissant ETL.
Bouilloire: Concept

Bouilloire est un outil ETL open source étrangère, écrit en Java pur, fonctionne sur Window, Linux, Unix, vert sans avoir à installer, très efficace et stable extraction de données.

nom bouilloire bouilloire chinois est appelé, programmeur principal du projet MATT veulent mettre toutes sortes de données dans un pot, puis dans un format spécifié.

Le jeu d'outils ETL Kettle qui vous permet de gérer les données de différentes bases de données, est décrite en fournissant un environnement utilisateur graphique que vous voulez faire, pas ce que vous voulez faire.

Bouilloire Il y a deux fichiers de script, transformation (.ktr) et emploi (.kjb), la transformation base complète pour la conversion des données, l'emploi est le contrôle complet de l'ensemble du workflow.

Bouilloire: quatre familles (composants principaux)

Chef (chinois: chef), cuisine (chinois: cuisine), une cuillère (chinoise: une cuillère), Pan (chinois: pan)

travail Chef- outil de conception (travail) (mode GUI).

Cuisine travail (de travail) actionneur (ligne de commande).

outil de conception converti cuiller (transformation) (mode GUI).

conversion pan- (Transform) de l'actionneur (ligne de commande).

D'emploi et de la différence de transformation: transformation axées sur les données ETL, et l'emploi d'une portée plus large, la transformation peut être, peut être Mail, SQL, Shell, FTP, et même peut être un autre emploi.

Bouilloire: modèle conceptuel

exécution Kettle est divisé en deux niveaux: d'emploi et de transformation. Les deux niveaux de la plus importante est de fournir des données et du mode de fonctionnement

1.Transformation: définir un conteneur pour la manipulation de données, les données à partir des données de fonctionnement est entrée à la sortie d'un processus peut être compris comme la taille des particules du récipient est plus petit que le niveau d'emploi, nous décomposons les tâches en emploi, puis besoin de percer dans un emploi ou plus de la transformation, chaque transformation complète seulement une partie du travail.

(Opération définie sur le conteneur de données, les données de fonctionnement est entrée à un processus de sortie de données, le travail peut être comprise comme une taille de particule inférieure à un récipient, on décompose la tâche dans le travail, alors les besoins de l'emploi à être décomposé en un ou plusieurs conversion, chaque conversion est complète seulement une partie du travail.

)
2.Step: est l'unité minimum à l' intérieur de transformation, chaque étape de remplir une fonction spécifique.
3.Job: La transformation est responsable de l'organisation ensemble et ensuite terminer un travail, nous avons besoin habituellement une grande tâche dans plusieurs isolement logique sur l'emploi, Job Lorsque ceux - ci sont terminés, des moyens que cette tâche est terminée a.

(Responsable des organisations ensemble, puis compléter un travail [conversion], généralement nous avons besoin de mettre une grande tâche dans plusieurs isolement logique au travail, lorsque ces opérations sont terminées, cela signifie que la tâche terminée .

)

4.Job Entrée: unité d'exécution emploi Job Entry est interne, pour chacun de la fonction spécifique d' entrée d' emploi, telles que: table d' authentification existe envoyer du courrier. Job peut être effectué par un autre emploi ou la transformation, qui peut être utilisé comme transformation et Job Entry Job.
5.Hop: pour connecter l'étape de transformation, ou dans le cadre d' emploi du poste d' entrée, est une représentation graphique d'un flux de données.

Dans la bouilloire JobEntry Job est exécuté en série, il doit avoir un début d'emploi JobEntry de, à l'étape de transformation sont exécutées en parallèle.

Bouilloire: fichier de catalogue

Bouilloire: déploiement d'
installation JDK:

Parce que Kettle est un développement du langage Java, le logiciel permet de compter l'environnement d'exécution Java, vous devez installer le JDK, prêt à exécuter l'environnement.

environnement configuration variable:

JAVA_HOME: répertoire d'installation JDK

KETTLE_HOME: bouilloire répertoire de décompression

Bouilloire: l'interface graphique

Kettle: les concepts de base
de la programmation visuelle:

Kettle peut être classé comme un langage de programmation visuelle (Visula langages de programmation), qui peut être utilisé comme Kettle définir graphiquement complexes et flux de travail ETL.

Bouilloire dans la figure est la conversion et l'emploi

la programmation visuelle a été le concept de base Kettle, il peut créer rapidement des emplois ETL complexes et de réduire la charge de travail de maintenance. Il est en cachant un grand nombre de détails techniques pour rendre le domaine de l'informatique plus proche du monde des affaires.

conversion:

Conversion (transformation) est la plus importante partie de la solution d'ETL qui gère l'extraction, la transformation, en chargeant différentes opérations sur les lignes de données.

Il contient une ou plusieurs étapes de conversion (STEP), telles que la lecture du fichier, le filtrage de lignes de données, le nettoyage des données ou pour charger des données dans la base de données.

Dans l'étape de conversion est effectuée par saut (Hop) sont reliés, il définit un canal de saut permet aux données de circuler d'une étape à une autre étape.

En bouilloire, l'unité de données est une ligne, la ligne de données est le flux de données à partir d'une étape de déplacement à une autre étape.

Parfois appelé un flux de données est enregistré flux

Etape étapes:
Etape (Control) est une composante essentielle dans la conversion.

Une étape a les étapes clés caractéristiques suivantes: l'
étape a besoin d'avoir le même nom, le nom est unique dans le cadre de la conversion
de chaque étape lire et lignes de données d'écriture (la seule exception est l'étape « génération record » d'écriture seule données)
les données d'écriture de sortie de l' étape à une ou plus associée saut, l'autre extrémité du saut de l' étape puis transmis à la
plupart des étapes peut avoir une pluralité de saut de sortie. Une étape de transmission de données peut être réglé pour la distribution et la copie, la distribution est à son tour reçu par l'étape d'enregistrement cible, copier tous les enregistrements sont envoyés simultanément à toutes les étapes de cibles.
Hop Jump:
Aller se connecte avec la flèche entre l' étape, le chemin de données est défini avant l' étape de saut

Hop fait mémoire tampon de ligne de données (la taille de l'ensemble de lignes peut être défini dans les paramètres de la conversion) est appelé l'ensemble de lignes entre les deux étapes

Lorsque l'ensemble des lignes, les étapes à des données d'écriture sur l'ensemble de la ligne arrêtera l'écriture jusqu'à ce qu'un autre espace jeu de lignes.

Lorsque la ligne de données est vide, l'étape de lecture à partir de la lecture d'arrêt du jeu de lignes jusqu'à ce qu'un autre ensemble de lignes dans les données de rangée lisible.

Des rangées - Type de données:
données sous la forme de lignes se déplacent le long de l'étape, zéro ou plusieurs champs de données d'un ensemble de rangées, des types de champs sont les suivantes.

Chaîne: Type de données Caractère
Nombre: à double virgule flottante précision
Entier: entier long non signé (64 bits)
BigNumber: données de précision arbitraire
Date: La date avec la valeur de temps de précision milliseconde
booléenne: la valeur des valeurs booléennes true et false
binaire: champ binaire peut contenir des images, du son, de la vidéo et d' autres types de données binaires
lignes de données - métadonnées:
chaque étape d'avoir une description des champs dans la ligne de données de sortie, ce qui est des métadonnées décrivant les lignes de données.

Il comprend une partie des informations suivantes.

Nom: ligne dans le nom du champ doit être unique
type de données: type de données du champ
formats: les données de mode d'affichage, comme Integer de # 0,00.
Longueur: longueur de la chaîne ou BigNumber
Précision: BigNumber décimal Type de précision
symbole monétaire: ¥
décimal notation: les données de format virgule. Sous les symboles décimaux de différentes origines culturelles sont différentes, le plus souvent (.) Ou (,).
Symbole de groupement: données par paquets de symboles de type numérique, différents milieux culturels sont différents symbole de groupement, généralement le point, une virgule (,), apostrophe ( « ) (.).
Parallèle:
sauter ces règles cache d'assemblage à base de ligne permettent à chaque étape est un thread séparé à terme, de sorte que le plus haut degré de concurrence. Cette règle permet également des données de manière à réduire au minimum le traitement des flux de données de consommation de mémoire. bibliothèque de données usine de la façon dont nous traitons souvent de grandes quantités de données, donc ceci est compliqué par une faible consommation de base de la mémoire a besoin d' outil ETL.

Bouilloire pour la conversion, pas possible de définir un ordre d'exécution, étant donné que toutes les étapes sont réalisées de manière simultanée: Une fois la conversion a commencé, toutes les étapes démarrent simultanément. Ils ont lu le saut en entrée de données et envoie les données traitées sont écrites au saut d'entrée, saut sais qu'il ya des données plus entrée, exécutez abort procédure, lorsque toutes les étapes sont suspendues, il a suspendu la totalité de la conversion ( l'ordre d'exécution des flux de données à séparer, parce qu'ils fonctionnent en parallèle).

commandes d'entrée bouilloire

(A) entrée XML :( une date du -get de contrôle Xml)
Xml: xml est le langage de balisage extensible, XML est conçu pour les données de transmission et de stockage (nous devons analyser les données XML sur l'utilisation de XPath.

)

XPath: langage XPath est le chemin xml, qui est un langage pour déterminer la position de certaines parties de documents XML.

arborescence XML basée XPath, offrant la possibilité de trouver un nœud dans l'arborescence de données.

syntaxe Xpath-:

chemins Sélectionnez utilisant le noeud d'expression XPath dans le noeud sélectionné dans Xml. Noeud le long du chemin, ou par l'étape

Être sélectionné.

expression

description

nodename

Sélectionnez ce nœud à tous les nœuds

/

A partir de la racine sélectionnée

//

Sélectionnez le nœud actuel dans les matches de document le nœud sélectionné sans leur position ouverte

.

Sélectionnez le noeud courant

...

Sélectionnez le parent du noeud courant

@

Sélectionnez Propriétés

exemple:

expression de chemin

résultat

librairie

Sélectionnez tous les nœuds enfants de l'élément de librairie

/librairie

Sélectionnez la librairie de l'élément racine

Commentaire: Ajouter le chemin commence par une barre oblique (/), alors ce chemin est toujours représentatif du chemin absolu à un élément de

librairie / livre

Tous les éléments de livre sous-éléments sélectionnés appartenant à la librairie

//livre

Sélectionnez tous les éléments enfants du livre, quelle que soit leur position dans le document

Librairie // livre

Sélectionnez l'arrière-plan appartient à l'élément de librairie du livre tous les éléments, quel que soit leur emplacement et une librairie située à

// @ lang

Sélectionnez tous la propriété nommée lang

exemple:

Obtenez fichier XML via des contrôles d'entrée des données de XML Obtenir

Adresse piste cyclable de lecture

Les paramètres de configuration

exportation

(Ii) l'entrée JSON
JSON (JavaScript Object Notation) est un format léger d' échange de données

Le concept de base de JSON: une matrice de propriétés des objets

Tableau: []

Objet: {}

Propriétés: clé: valeur

JSONPath:

JSONPath positionné de façon similaire dans le document XML XPath, l'expression JsonPath est habituellement utilisé pour la recherche d'itinéraire ou un ensemble de JSON.

Dont l'expression est acceptable « notation de données » (graisse de notation par points) et « support de notation » Format (publié de notation de support)

Inscription et Point store.book de $ [0] .title.

notation support cheveux: $ [ 'magasin'] [ 'book'] [0] [ 'title']

opérateur JSONPath:

symbole

description

$

Racine requête d'objet, JSON utilisé pour représenter un ensemble de données ou d'une boîte d'objet

@

Affirme filtre (prédicat de filtre) de la transformation de l'objet courant de noeud, similaire dans ce domaine java

Wildcard peut représenter un nom ou un numéro

...

Peut-être compris comme une recherche récursive, profonde scan.Available où un nom est requis

.

Il représente un noeud enfant

[ '<Nom'> (, '<nom'> ')]

Il représente un ou plusieurs nœuds enfants

[(,)]

Il représente un ou plusieurs indice de tableau

[début Fin]

section Array, intervalle [début, fin], ne comprend pas la fin

[? ()]

expression de filtre, l'expression doit être un résultat booléen

exemple:

exemple:

Obtenez le stockage de fichiers de JSON, et a ajouté « fichiers sélectionnés »

Nom peut être facilement défini, mais chemin opposé au match de

des données de sortie JSON

Sortie
sortie est transformé à l' intérieur du deuxième obtenu ETL appartenance de classification L, L est chargement (chargement des données de classe).

(A) Tableau de sortie d'
abord ajouter une donnée Excel, et acquiert des informations sur le terrain

Création d'une connexion de base de données, l'accès à la table d'information.

début

Conversion (focus)
Concat Fields (témoins) qui relient les champs multiples formant un nouveau champ.

La valeur de cartographie (contrôle) est la valeur d'un champ mis en correspondance avec d'autres valeurs.

augmentation constante (de contrôle) est l'ajout d'un ensemble de données dans les données elles-mêmes flux, cette colonne est la même valeur de données.

suite croissante (témoin) est ajouté au courant d'un champ de séquence.

Sélection des champs (témoin) est sélectionné à partir d'un champ dans le flux de données, le changement de nom, de modifier le type de données.

Calculator (Control) est une fonction des nouveaux champs pour créer une collection, vous pouvez également définir si le champ est supprimé (champ temporaire).

couper la ficelle (contrôle) de position d'entrée de barre coupe spécifiée v champ d'écoulement de cisaillement d'un nouveau champ.

la manipulation de chaînes (contrôle) retirer les extrémités de chaîne et le boîtier de commutateur spatial et générer un nouveau champ.

substitution de chaîne (contrôle), et si la recherche est de remplacer le contenu, si le contenu du champ de recherche correspond au flux d'entrée pour générer un nouveau champ à remplacer.

Suppression des doublons (contrôle) flux de données qui est éliminé de la même ligne de données (avant d'effectuer l'opération de tri avancée).

Pour trier les enregistrements (témoins) sont triés selon ascendants et descendants des champs de données de flux spécifiés.

La seule ligne (valeur de hachage) (contrôle) est de supprimer la ligne de flux de données en double (Remarque: la seule ligne (valeur de hachage) et (enregistrements de tri + supprimer les doublons) effet est le même, mais la réalisation du principe n'est pas le même).

champs de Split (contrôle), le champ est divisé en deux ou plusieurs champs conformément aux séparateurs.

La colonne est divisée en plusieurs rangées (témoin) est la répartition du champ délimiteur désigné en plusieurs lignes.

Commutateur de colonne (témoin) est, si une donnée a la même valeur, en conformité avec le champ spécifié, les données à lignes multiples en données de ligne supprimer certains des noms de colonnes d'origine, une colonne de données dans le champ. (Flux de données avant le tri de colonne)

colonne de transfert de ligne (commande) est de convertir la quantité de champs de données est un nom de champ, les lignes deviennent des colonnes de données.

ligne aplatissement (contrôles) de la pluralité de lignes de données d'un même groupe comme une seule ligne. Remarque: dans le cas d'un enregistrement cohérent des données comparables afin d'utiliser la ligne de données du flux de données. flux de données doivent être triés

commande de processus bouilloire (focus)
procédé est principalement utilisé pour des données de commande de flux et le flux de données

Switch / Case (contrôle) tout le chemin pour laisser le flux de données provenant de multiples

Filtre enregistrement (contrôle) à partir des flux de données tout le chemin à deux (programmé voulu instruction IF true, false)

Aucune opération (témoin) comme la fin du flux de données (sans effectuer aucune opération de frottement)

Suspension (contrôle) est la fin du flux de données, s'il y a des données d'être ici, sera jeté (utilisé lorsque les données de test est utilisé)

contrôles de recherche Kettle (focus)
requête est utilisé pour interroger la source de données et fusionnées dans les données de base.

client Http (contrôle) est de soumettre une demande en utilisant la voie Get pour obtenir le contenu de la page retournée

Base de données de requête (contrôle) reste connecté à la base de données.

Une connexion de base de données peut effectuer deux requêtes de base de données et tables table d'entrée unaire

le contrôle de script Kettle (focus)
script est fait directement par un code d'opération complexe.

javascript pour le
language Javascript script javascript est utilisé pour terminer l'opération du flux de données par la programmation de code.

JS a beaucoup de fonctions intégrées, vous pouvez voir lors de l'écriture du code JS

Il existe deux modes différents: le mode de compatibilité et le mode de compatibilité n'est pas

Mode Incompatible: il est la valeur par défaut et recommandé

Mode de compatibilité: la compatibilité avec les anciennes versions de ketle

Obtenez le terrain:
Mode incompatibles:
MyVar = filedName; (diriger un nom variable)

Mode de compatibilité: L'utilisation de différentes méthodes dans différents types de terrain

MaVar = filedName.getString (); (String)

MaVar = filedName.getValue (); (数字)

 给字段赋值:

Mode Incompatible: l'utilisation directe des noms de champs

filedName = MaVar;

Mode de compatibilité: Utilisation

        filedName.setValue(MyVar);

Java Script
Java Script est l'utilisation du langage Java pour effectuer des opérations sur le flux de données à travers la programmation de code.

Beaucoup de fonctions intégrées peuvent être utilisées.

Principale:

La fonction principale correspondant à une fonction processRow (), la fonction ProcessRow () est utilisée pour placer le flux de traitement de données.

script SQL en (contrôle) peut effectuer une déclaration d'information de mise à jour est utilisée pour mettre à jour une table

Job
Résumé: La plupart des projets ETL nécessitent la réalisation d'une variété de travaux d'entretien.

Par exemple, le transfert de fichiers, vérifier la présence des tables de base de données, et autres. Ces opérations sont effectuées dans un certain ordre. Étant donné que la conversion est réalisée en parallèle, peut être exécuté un travail en série ont besoin pour gérer ces opérations.

Un travail est constitué d'un ou plusieurs éléments de travail, l'élément de travail est réalisé dans un certain ordre. commande d'exécution de tâche déterminée par le saut (JOB HOP) entre l'élément et le résultat d'exécution de tâche de chaque travail.

entrée du poste
poste d'emploi est un élément essentiel du travail, comme l'étape de conversion, peut également travailler icône de l' élément d'une représentation graphique.

Mais si vous regardez attentivement, vous trouverez toujours un endroit différent des étapes d'entrée d'emploi;

Un objet de résultat peut être passé entre les postes de travail. L'objet de résultat qui contient des lignes de données, ils ne sont pas moyen de flux de données pour passer à vingt en attente d'être livrés après un travail a été exécuté à la tâche suivante.

Job saut
opération de saut est la ligne de jonction entre les éléments de travail. Il définit le chemin d'exécution du travail. Les travaux dans les différents résultats d'exploitation de chaque entrée d'emploi détermine les différents métiers de chemins d'exécution.

① la mise en œuvre inconditionnelle: si le succès de l'exécution du travail à long terme ou de l'échec, le travail d'entrée suivante sera exécutée. Ceci est une ligne de connexion bleue, il y a un verrou de la norme ci-dessus.

② course est vrai que, lorsqu'il est exécuté: Lorsqu'un résultat d'exécution d'entrée d'emploi est vrai, l'élément suivant pour effectuer un travail. Souvent utilisé dans les cas où l'exécution sans erreur. Ceci est un câble vert, il y a une icône de coches ci-dessus.

③ Lorsque les résultats d'exploitation pour la mise en œuvre de faux: Lorsque le résultat de l'exécution sur un élément de travail fausse ou n'a pas exécuté exécuter avec succès un emploi par un terme, ceci est une icône rouge d'arrêt de câble rouge au-dessus.

Paramètres:
Pour paramètre est passé ETL une partie très importante, parce que le transfert implique une référence à la façon dont les paramètres commerciaux sont extraits.

Les paramètres sont divisés en deux types: les paramètres globaux et locaux Paramètres

Paramètres globaux: Définir dossier .kettle fichier kettle.properties pour définir l'utilisateur actuel.

manière définie est d'utiliser le chemin de clé = valeur à définir: start_date = 120;

variables de configuration Kettle besoin de redémarrer avant la note:

Les paramètres locaux: par la façon de définir « Définir les variables » sur « Get variables »

Remarque: Lors de la conversion « Définir les variables » ne peuvent pas être utilisées immédiatement dans le courant, vous devez effectuer une étape dans le travail.

paramètres à l'aide: les paramètres utilisés Kettle: (1) le nom de la variable %% %% (2) le nom de la variable $ {}

Remarque: vous en avez besoin lors de l'utilisation des variables dans SQL, « si vous voulez remplacer le paramètre » checked, sinon la variable ne peut pas prendre effet.

propagation constante: les
constantes de propagation constante est la première des données personnalisées, table d' entrée à l' aide dans l'instruction SQL? Au lieu de cela.

? proposition alternative est l'ordre des appels constants.

Conversion des paramètres nommés:
conversion paramètre variable nommée est définie dans la conversion interne, la portée de conversion est interne.

Droit dans les conversions d'espace, sélectionnez les paramètres de conversion que vous pouvez voir.

Définir les variables pour obtenir la variable:
il y a une catégorie d'emploi dans lequel la conversion, qui est une des variables de conversion de classification et les variables de réglage.

Note: La conversion n'a pas été immédiatement utiliser, vous devez utiliser dans la prochaine étape dans le travail en cours pour « obtenir variable »

--------- variables peuvent également être fournis à l'intérieur du travail (le « Set variable » dans un travail inférieur du module générique)

Publié deux articles originaux · louanges gagnées 0 · Vues 255

Je suppose que tu aimes

Origine blog.csdn.net/xiaohuangren_123/article/details/105057866
conseillé
Classement