Utilisation de pattern integration hive pour le partitionning d'une table
B
BENABBES Sofiane (Externe)
started a topic
over 1 year ago
Bonjour,
je vous contacte car je trouve pas d'exemple ou de doc stambia pour la création de table partitionné, et l'insertion de données dans cette dernière avec le pattern Integration Hive , ainsi que l'utilisation des bucket dans stambia
1-creation d'une table selon une clé de partition
pour le faire je suis allé dans metadata, onglet standard--> partitionning et j'ai rajouté le nom de la clé de partition.
Le problème c'est que ca crée bien la table partitionnée avec tous les champs, sauf le champ utilisé comme clé de partitionning, et dont j'ai besoin dans ma table.
avez vous une solution pour remédier a ca?
2- lors du lancement de l'exécution du mapping de recharge de la table cible (notre table que nous avons partitionné dans l'étape 1), et on utilisant le patterne Integration Hive pour inserer les données dans la table que nous avons partitionnée, la req générée par le pattern est la suivante :
insert into table schéma.nom_table_partitionnée
PARTITION (clé_partition=schéma.clé_partition)
select nom_des_champs
from table
j'ai le message d'erreur suivant :
ParseException line 3:20 cannot recognize input near 'schéma' '.' 'clé_partition' in constant
j'ai l'impression que ce message d'erreur est a cause du mont clé rajouté par stambia "clé_partition="
3- comment utilisé les buckets dans stambia
techno utilisé : Hive
version stambia designer : Stambia Designer 19.0.0.20190125_092334
pattern utilisé : Integration Hive
Merci d'avance pour votre retour
Best Answer
M
Michaël TURCHI
said
over 1 year ago
Bonjour Sofiane,
Voici mes réponses aux différents points remontés sur l'utilisation Hive :
1-creation d'une table selon une clé de partition
Il faut bien définir la clé de partition dans l'onglet Standard - Attribut Partitionning de la metadata table.
Exemple :
En observant la création de la table:
Voici le type de script de création de table que vous devriez obtenir :
Create table stb_hadoop_demo.countries_list_3
(
countryname STRING ,
capital STRING ,
population STRING
)
PARTITIONED BY(countryid INT )
STORED AS ORC
En activant l'option de création de table dans un mapping au niveau du template d'Intégration :
A quel endroit ne voyez vous pas le champ de partition ?
2- lors du lancement de l'exécution du mapping de recharge de la table cible (notre table que nous avons partitionné dans l'étape 1), et on utilisant le patterne Integration Hive pour inserer les données dans la table que nous avons partitionnée, la req générée par le pattern est la suivante :
Je comprends que vous souhaitez alimenter la clé de partition dynamiquement et pas avec une partition constante.
Pour cela, vous devez ajouter le tag DYNAMIC_PARTITION sur votre champ de partition dans le mapping :
La requête d'insertion ainsi obtenue est :
Je vous joins un mapping d'exemple pour ce cas de création + insertion dans une table partitionnée.
3- comment utilisé les buckets dans stambia
Les Buckets ne sont pas encore gérés dans Stambia/Semarchy xDI.
Vous pouvez les définir manuellement en créant votre table en dehors de Semarchy.
C'est cependant une fonctionnalité d'optimisation intéressante que nous envisageons d'ajouter dans une future version de notre connecteur.
Voici mes réponses aux différents points remontés sur l'utilisation Hive :
1-creation d'une table selon une clé de partition
Il faut bien définir la clé de partition dans l'onglet Standard - Attribut Partitionning de la metadata table.
Exemple :
En observant la création de la table:
Voici le type de script de création de table que vous devriez obtenir :
Create table stb_hadoop_demo.countries_list_3
(
countryname STRING ,
capital STRING ,
population STRING
)
PARTITIONED BY(countryid INT )
STORED AS ORC
En activant l'option de création de table dans un mapping au niveau du template d'Intégration :
A quel endroit ne voyez vous pas le champ de partition ?
2- lors du lancement de l'exécution du mapping de recharge de la table cible (notre table que nous avons partitionné dans l'étape 1), et on utilisant le patterne Integration Hive pour inserer les données dans la table que nous avons partitionnée, la req générée par le pattern est la suivante :
Je comprends que vous souhaitez alimenter la clé de partition dynamiquement et pas avec une partition constante.
Pour cela, vous devez ajouter le tag DYNAMIC_PARTITION sur votre champ de partition dans le mapping :
La requête d'insertion ainsi obtenue est :
Je vous joins un mapping d'exemple pour ce cas de création + insertion dans une table partitionnée.
3- comment utilisé les buckets dans stambia
Les Buckets ne sont pas encore gérés dans Stambia/Semarchy xDI.
Vous pouvez les définir manuellement en créant votre table en dehors de Semarchy.
C'est cependant une fonctionnalité d'optimisation intéressante que nous envisageons d'ajouter dans une future version de notre connecteur.
concernant ta question "A quel endroit ne voyez vous pas le champ de partition ?"
j'aurais aimer avoir la même req mais avec le champ de la clé de partition selectionné, car j'ai besoin de ce champ dans ma table.
Exemple :
Create table stb_hadoop_demo.countries_list_3
(
countryname String,
capital STRING,
population STRING
countryid INT
)
PARTITIONNED BY (countyid INT)
STORED AS ORC
je sais que c'est le comportement normale que la clé de partition ne se trouve pas dans la liste des champs sélectionné, mais j'aurais aimé récupérer ce champ pour des besoin fonctionnels.
M
Michaël TURCHI
said
over 1 year ago
Bonjour Sofiane,
Ce type de requête de création de table n'est pas possible sur Hive et terminerais avec l'erreur suivante :
Error while compiling statement: FAILED: SemanticException [Error 10035]: Column repeated in partitioning columns
Je ne connais pas votre besoin fonctionnel mais les champs de partition sont bien accessible avec une requête SELECT key_part FROM table
BENABBES Sofiane (Externe)
Bonjour,
je vous contacte car je trouve pas d'exemple ou de doc stambia pour la création de table partitionné, et l'insertion de données dans cette dernière avec le pattern Integration Hive , ainsi que l'utilisation des bucket dans stambia
1-creation d'une table selon une clé de partition
pour le faire je suis allé dans metadata, onglet standard--> partitionning et j'ai rajouté le nom de la clé de partition.
Le problème c'est que ca crée bien la table partitionnée avec tous les champs, sauf le champ utilisé comme clé de partitionning, et dont j'ai besoin dans ma table.
avez vous une solution pour remédier a ca?
2- lors du lancement de l'exécution du mapping de recharge de la table cible (notre table que nous avons partitionné dans l'étape 1), et on utilisant le patterne Integration Hive pour inserer les données dans la table que nous avons partitionnée, la req générée par le pattern est la suivante :
insert into table schéma.nom_table_partitionnée
PARTITION (clé_partition=schéma.clé_partition)
select nom_des_champs
from table
j'ai le message d'erreur suivant :
ParseException line 3:20 cannot recognize input near 'schéma' '.' 'clé_partition' in constant
j'ai l'impression que ce message d'erreur est a cause du mont clé rajouté par stambia "clé_partition="
3- comment utilisé les buckets dans stambia
techno utilisé : Hive
version stambia designer : Stambia Designer 19.0.0.20190125_092334
pattern utilisé : Integration Hive
Merci d'avance pour votre retour
Bonjour Sofiane,
Voici mes réponses aux différents points remontés sur l'utilisation Hive :
1-creation d'une table selon une clé de partition
Il faut bien définir la clé de partition dans l'onglet Standard - Attribut Partitionning de la metadata table.
Exemple :
En observant la création de la table:
Voici le type de script de création de table que vous devriez obtenir :
Create table stb_hadoop_demo.countries_list_3
(
countryname STRING ,
capital STRING ,
population STRING
)
PARTITIONED BY(countryid INT )
STORED AS ORC
En activant l'option de création de table dans un mapping au niveau du template d'Intégration :
A quel endroit ne voyez vous pas le champ de partition ?
2- lors du lancement de l'exécution du mapping de recharge de la table cible (notre table que nous avons partitionné dans l'étape 1), et on utilisant le patterne Integration Hive pour inserer les données dans la table que nous avons partitionnée, la req générée par le pattern est la suivante :
Je comprends que vous souhaitez alimenter la clé de partition dynamiquement et pas avec une partition constante.
Pour cela, vous devez ajouter le tag DYNAMIC_PARTITION sur votre champ de partition dans le mapping :
La requête d'insertion ainsi obtenue est :
Je vous joins un mapping d'exemple pour ce cas de création + insertion dans une table partitionnée.
3- comment utilisé les buckets dans stambia
Les Buckets ne sont pas encore gérés dans Stambia/Semarchy xDI.
Vous pouvez les définir manuellement en créant votre table en dehors de Semarchy.
C'est cependant une fonctionnalité d'optimisation intéressante que nous envisageons d'ajouter dans une future version de notre connecteur.
Cordialement,
Michaël Turchi
- Oldest First
- Popular
- Newest First
Sorted by Oldest FirstMichaël TURCHI
Bonjour Sofiane,
Voici mes réponses aux différents points remontés sur l'utilisation Hive :
1-creation d'une table selon une clé de partition
Il faut bien définir la clé de partition dans l'onglet Standard - Attribut Partitionning de la metadata table.
Exemple :
En observant la création de la table:
Voici le type de script de création de table que vous devriez obtenir :
Create table stb_hadoop_demo.countries_list_3
(
countryname STRING ,
capital STRING ,
population STRING
)
PARTITIONED BY(countryid INT )
STORED AS ORC
En activant l'option de création de table dans un mapping au niveau du template d'Intégration :
A quel endroit ne voyez vous pas le champ de partition ?
2- lors du lancement de l'exécution du mapping de recharge de la table cible (notre table que nous avons partitionné dans l'étape 1), et on utilisant le patterne Integration Hive pour inserer les données dans la table que nous avons partitionnée, la req générée par le pattern est la suivante :
Je comprends que vous souhaitez alimenter la clé de partition dynamiquement et pas avec une partition constante.
Pour cela, vous devez ajouter le tag DYNAMIC_PARTITION sur votre champ de partition dans le mapping :
La requête d'insertion ainsi obtenue est :
Je vous joins un mapping d'exemple pour ce cas de création + insertion dans une table partitionnée.
3- comment utilisé les buckets dans stambia
Les Buckets ne sont pas encore gérés dans Stambia/Semarchy xDI.
Vous pouvez les définir manuellement en créant votre table en dehors de Semarchy.
C'est cependant une fonctionnalité d'optimisation intéressante que nous envisageons d'ajouter dans une future version de notre connecteur.
Cordialement,
Michaël Turchi
BENABBES Sofiane (Externe)
Bonjour Michaël,
Merci pour ton retour détaillé.
concernant ta question "A quel endroit ne voyez vous pas le champ de partition ?"
j'aurais aimer avoir la même req mais avec le champ de la clé de partition selectionné, car j'ai besoin de ce champ dans ma table.
Exemple :
Create table stb_hadoop_demo.countries_list_3
(
countryname String,
capital STRING,
population STRING
countryid INT
)
PARTITIONNED BY (countyid INT)
STORED AS ORC
je sais que c'est le comportement normale que la clé de partition ne se trouve pas dans la liste des champs sélectionné, mais j'aurais aimé récupérer ce champ pour des besoin fonctionnels.
Michaël TURCHI
Bonjour Sofiane,
Ce type de requête de création de table n'est pas possible sur Hive et terminerais avec l'erreur suivante :
Error while compiling statement: FAILED: SemanticException [Error 10035]: Column repeated in partitioning columns
Je ne connais pas votre besoin fonctionnel mais les champs de partition sont bien accessible avec une requête SELECT key_part FROM table
Cordialement,
Michaël TURCHI
-
File external resolver with encrypted value
-
Timeout on Mapping/Webservice call
-
UNIQUE TEMP TABLE NAMES
-
Previous step name from a sub-process of execute delivery
-
Dropping multiple tables at once in XDI
-
Freeze Designer and corrupted workspace
-
FileWait/Move/Copy: FileInclude with space
-
Loop excel files
-
Change SVN user in the Designer
-
How to Specify the JVM used by the Designer?
See all 63 topics