{"id":6758,"date":"2026-07-12T02:07:13","date_gmt":"2026-07-12T10:07:13","guid":{"rendered":"https:\/\/www.gudusoft.com\/hive-data-lineage\/"},"modified":"2026-07-12T02:07:13","modified_gmt":"2026-07-12T10:07:13","slug":"hive-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/fr\/lignee-des-donnees-de-la-ruche\/","title":{"rendered":"Tra\u00e7abilit\u00e9 des donn\u00e9es Hive\u00a0: Tra\u00e7abilit\u00e9 au niveau des colonnes pour HQL et Hadoop ETL"},"content":{"rendered":"<p><strong>Tra\u00e7abilit\u00e9 des donn\u00e9es de la ruche<\/strong> Il s&#039;agit de la carte au niveau des colonnes de la fa\u00e7on dont les donn\u00e9es circulent dans votre HQL\u00a0: quelles tables et colonnes sources alimentent chaque table, partition et vue Hive, et par quelles jointures, agr\u00e9gations et <code>VUE LAT\u00c9RALE<\/code> extensions. La m\u00e9thode la plus fiable pour la construire consiste \u00e0 analyser le HQL lui-m\u00eame. <strong>Gudu SQLFlow<\/strong> Il int\u00e8gre un analyseur syntaxique d\u00e9di\u00e9 au dialecte Hive qui transforme vos scripts en un diagramme de lignage interactif au niveau des colonnes, sans toucher \u00e0 votre cluster.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#eef7fb;padding-top:24px;padding-bottom:24px\"><div class=\"wp-block-group__inner-container\">\n\n<p><strong>Essayez-le maintenant\u00a0:<\/strong> collez n&#039;importe quel script HiveQL dans le <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=hive-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Visualiseur de lign\u00e9es Hive en ligne gratuit<\/a>S\u00e9lectionnez le dialecte Hive et obtenez un diagramme de lignage au niveau des colonnes en quelques secondes. Aucun acc\u00e8s au cluster n&#039;est requis\u00a0: la version gratuite fonctionne dans le navigateur.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Pourquoi la tra\u00e7abilit\u00e9 des donn\u00e9es Hive est plus complexe qu&#039;il n&#039;y para\u00eet<\/h2>\n\n\n\n<p>Un entrep\u00f4t Hadoop typique accumule des ann\u00e9es de donn\u00e9es HQL\u00a0: chargements interm\u00e9diaires, partitionn\u00e9s <code>INSERER \u00c9CRASER<\/code> Des t\u00e2ches, des vues sur des tables externes et des scripts planifi\u00e9s par Oozie ou Airflow que personne n&#039;a lus depuis le d\u00e9part de leur auteur. R\u00e9pondre \u00e0 la question \u00ab\u00a0quels flux\u00a0\u00bb <code>dw.revenu_quotidien<\/code>? ou \u00ab qu&#039;est-ce qui se casse si on laisse tomber ? \u00bb <code>statut des commandes en cours<\/code>\u00ab ? \u00bb signifie suivre les r\u00e9f\u00e9rences de colonnes dans l&#039;ensemble du document.<\/p>\n\n\n\n<p>Les analyseurs SQL g\u00e9n\u00e9riques butent sur les constructions qui font de HiveQL son propre dialecte\u00a0:<\/p>\n\n\n\n<ul><li><strong><code>VUE LAT\u00c9RALE exploser()<\/code><\/strong> Une colonne d&#039;entr\u00e9e de tableaux ou de dictionnaires se divise en plusieurs lignes et de nouvelles colonnes d\u00e9riv\u00e9es. La fonction Lineage doit relier ces colonnes de sortie \u00e0 la collection source unique.<\/li>\n<li><strong>Partitionn\u00e9 <code>INSERER \u00c9CRASER<\/code><\/strong> \u2014 la colonne de partition peut provenir d&#039;une valeur litt\u00e9rale statique dans le <code>PARTITION<\/code> La clause peut \u00eatre modifi\u00e9e ou dynamiquement \u00e0 partir des derni\u00e8res colonnes s\u00e9lectionn\u00e9es. Dans les deux cas, les colonnes prises en compte comme sources de lignage sont modifi\u00e9es.<\/li>\n<li><strong>Tables externes<\/strong> \u2014 La table est un sch\u00e9ma de fichiers stock\u00e9s dans HDFS ou dans un syst\u00e8me de stockage objet. Lineage doit la traiter comme une source de premier ordre, m\u00eame si elle n&#039;a jamais \u00e9t\u00e9 cr\u00e9\u00e9e par une base de donn\u00e9es SQL en amont.<\/li>\n<li><strong>Syntaxe sp\u00e9cifique \u00e0 la ruche<\/strong> \u2014 <code>DISTRIBUER PAR<\/code>, <code>GROUPER PAR<\/code>, insertion multiple (<code>DE ... INS\u00c9RER ... INS\u00c9RER ...<\/code>), les types SerDe et les identificateurs entre guillemets invers\u00e9s ne respectent pas les grammaires ANSI uniquement.<\/li><\/ul>\n\n\n\n<p>SQLFlow analyse HiveQL avec un analyseur syntaxique d\u00e9di\u00e9, l&#039;un des 39 analyseurs sp\u00e9cifiques \u00e0 chaque dialecte pr\u00e9sents dans l&#039;outil\u00a0\u2014 une grammaire con\u00e7ue pour HiveQL, et non un analyseur ANSI g\u00e9n\u00e9rique auquel on aurait ajout\u00e9 des exceptions. Le moteur sous-jacent, le <a href=\"https:\/\/www.sqlparser.com\/\">Analyseur SQL g\u00e9n\u00e9ral<\/a>, est d\u00e9velopp\u00e9 commercialement depuis le milieu des ann\u00e9es 2000 et est valid\u00e9 par rapport \u00e0 environ 13 600 jeux de tests SQL par dialecte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Hooks Atlas vs. analyse HQL\u00a0: deux fa\u00e7ons d\u2019obtenir la lign\u00e9e Hive<\/h2>\n\n\n\n<p>La plupart des \u00e9quipes Hadoop d\u00e9couvrent d&#039;abord la lign\u00e9e \u00e0 travers <strong>Atlas Apache<\/strong>Atlas excelle v\u00e9ritablement dans son domaine\u00a0: son hook Hive s\u2019int\u00e8gre au cluster et capture la lign\u00e9e des t\u00e2ches lors de leur ex\u00e9cution, vous offrant ainsi un enregistrement de gouvernance en temps r\u00e9el de ce qui a \u00e9t\u00e9 ex\u00e9cut\u00e9, quand, li\u00e9 \u00e0 la classification et \u00e0 l\u2019\u00e9tiquetage sur l\u2019ensemble de la pile Hadoop.<\/p>\n\n\n\n<p>L\u2019approche par hame\u00e7onnage pr\u00e9sente toutefois des limites structurelles, et celles-ci sont particuli\u00e8rement importantes lorsque les \u00e9quipes recherchent une lign\u00e9e\u00a0:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>Hooks d&#039;ex\u00e9cution (style Atlas)<\/th><th>Analyse syntaxique HQL (SQLFlow)<\/th><\/tr><\/thead><tbody>\n<tr><td>N\u00e9cessite un cluster en fonctionnement<\/td><td>Oui, la tra\u00e7abilit\u00e9 n&#039;est captur\u00e9e que lorsque les t\u00e2ches s&#039;ex\u00e9cutent avec le hook install\u00e9.<\/td><td>Non \u2014 analyse statique du texte SQL, n&#039;importe o\u00f9<\/td><\/tr>\n<tr><td>Couvre le code qui n&#039;a pas \u00e9t\u00e9 ex\u00e9cut\u00e9.<\/td><td>Non \u2014 un script qui n&#039;a jamais \u00e9t\u00e9 ex\u00e9cut\u00e9 ne laisse aucune trace<\/td><td>Oui, tous les scripts du d\u00e9p\u00f4t, y compris les t\u00e2ches obsol\u00e8tes ou rarement ex\u00e9cut\u00e9es.<\/td><\/tr>\n<tr><td>Fonctionne pendant\/apr\u00e8s la migration<\/td><td>Difficile \u2014 une fois le cluster mis hors service, le point de capture l&#039;est \u00e9galement.<\/td><td>Oui \u2014 analysez le fichier HQL export\u00e9 hors ligne, avant, pendant et apr\u00e8s la migration.<\/td><\/tr>\n<tr><td>Couverture historique<\/td><td>Cela commence lorsque vous installez le crochet<\/td><td>Complet \u2014 le code est l&#039;enregistrement<\/td><\/tr>\n<tr><td>Lit vos donn\u00e9es<\/td><td>S&#039;ex\u00e9cute au sein du cluster, parall\u00e8lement aux t\u00e2ches.<\/td><td>Jamais \u2014 uniquement le texte SQL et les m\u00e9tadonn\u00e9es de sch\u00e9ma<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>Ces approches sont compl\u00e9mentaires plut\u00f4t que concurrentes\u00a0: les hooks indiquent ce qui a \u00e9t\u00e9 ex\u00e9cut\u00e9\u00a0; un analyseur syntaxique indique ce que fait le code. Si votre question est \u00ab\u00a0documenter chaque d\u00e9pendance de cet environnement Hive afin de pouvoir l\u2019auditer ou le d\u00e9placer\u00a0\u00bb, l\u2019analyse syntaxique est l\u2019outil qui y r\u00e9pond, et SQLFlow peut exploiter ses r\u00e9sultats. <strong>DataHub, Microsoft Purview ou OpenMetadata<\/strong> si l&#039;un d&#039;eux est votre syst\u00e8me d&#039;enregistrement.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tra\u00e7abilit\u00e9 au niveau des colonnes d&#039;une t\u00e2che HiveQL r\u00e9elle<\/h2>\n\n\n\n<p>Voici la structure du travail que chaque entrep\u00f4t Hadoop ex\u00e9cute chaque nuit\u00a0: un partitionn\u00e9 <code>INSERER \u00c9CRASER<\/code> construit \u00e0 partir de tables de transit jointes\u00a0:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT OVERWRITE TABLE dw.daily_revenue PARTITION (ds = &#039;2026-07-11&#039;) SELECT c.region, SUM(o.amount) AS revenue, COUNT(DISTINCT o.order_id) AS order_cnt FROM staging.orders o JOIN staging.customers c ON o.customer_id = c.customer_id WHERE o.ds = &#039;2026-07-11&#039; AND o.status = &#039;COMPLETE&#039; GROUP BY c.region;<\/code><\/pre>\n\n\n\n<p>Ex\u00e9cutez ce code via SQLFlow et le diagramme affichera, pour chaque colonne de sortie\u00a0:<\/p>\n\n\n\n<ul><li><code>dw.daily_revenue.revenue<\/code> est aliment\u00e9 directement par <code>mise en place.commandes.montant<\/code> \u00e0 travers <code>SOMME()<\/code>.<\/li>\n<li><code>dw.daily_revenue.order_cnt<\/code> est aliment\u00e9 par <code>staging.orders.order_id<\/code> \u00e0 travers <code>COUNT(DISTINCT)<\/code>.<\/li>\n<li><code>dw.revenu_quotidien.r\u00e9gion<\/code> cartes directement issues de <code>r\u00e9gion de mise en sc\u00e8ne des clients<\/code>.<\/li>\n<li>La valeur de la partition statique est renseign\u00e9e <code>dw.daily_revenue.ds<\/code> \u2014 SQLFlow mod\u00e9lise la colonne de partition comme une cible de lignage m\u00eame si elle n&#039;appara\u00eet jamais dans la liste SELECT.<\/li>\n<li><code>statut des commandes en cours<\/code>, <code>staging.orders.ds<\/code>et les deux <code>identifiant_client<\/code> Les colonnes fa\u00e7onnent le r\u00e9sultat \u00e0 travers les <code>O\u00d9<\/code> et <code>REJOINDRE<\/code> conditions sans appara\u00eetre dans la sortie. SQLFlow les enregistre comme <strong>lign\u00e9e indirecte (d&#039;impact)<\/strong>, un type de relation distinct et activable. La plupart des outils de tra\u00e7abilit\u00e9 ne font pas cette distinction, or c&#039;est pr\u00e9cis\u00e9ment ce dont l&#039;analyse d&#039;impact a besoin\u00a0: le changement <code>statut<\/code> Le codage et tous les chiffres de revenus qui en d\u00e9coulent.<\/li><\/ul>\n\n\n\n<p>La m\u00eame r\u00e9solution de colonne s&#039;applique \u00e0 travers <code>VUE LAT\u00c9RALE exploser()<\/code>: si une table en aval s\u00e9lectionne <code>article.sku<\/code> d&#039;une explosion <code>articles_\u00e9v\u00e9nements_commande<\/code> tableau, traces SQLFlow <code>r\u00e9f\u00e9rence<\/code> de retour \u00e0 la colonne de la collection source, via l&#039;alias de table introduit par la vue lat\u00e9rale. Elle r\u00e9sout \u00e9galement les r\u00e9f\u00e9rences via les CTE, les sous-requ\u00eates imbriqu\u00e9es, les vues, et <code>S\u00c9LECTIONNER *<\/code> expansion, donc le HQL h\u00e9rit\u00e9, riche en \u00e9toiles, produit toujours des bords de colonne pr\u00e9cis.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Lign\u00e9e de la ruche au moment de la migration<\/h2>\n\n\n\n<p>La raison la plus fr\u00e9quente pour laquelle les \u00e9quipes ont besoin de suivre la tra\u00e7abilit\u00e9 Hive aujourd&#039;hui est qu&#039;elles abandonnent Hive. Que la destination soit Spark, Databricks ou un entrep\u00f4t de donn\u00e9es cloud, les questions restent les m\u00eames\u00a0: quels jobs alimentent quelles tables, dans quel ordre doivent-ils \u00eatre d\u00e9plac\u00e9s et lesquels de ces 4\u00a0000 scripts sont r\u00e9ellement obsol\u00e8tes\u00a0?<\/p>\n\n\n\n<p>Comme SQLFlow fonctionne uniquement \u00e0 partir du code, vous pouvez ex\u00e9cuter l&#039;analyse sur une exportation de votre r\u00e9f\u00e9rentiel HQL depuis n&#039;importe quelle machine\u00a0; aucun acc\u00e8s au cluster (\u00e9ventuellement fig\u00e9) n&#039;est requis. L&#039;analyse par lots est con\u00e7ue \u00e0 cet effet\u00a0: SQLFlow analyse des environnements de plus de 100 bases de donn\u00e9es et plus d&#039;un million de colonnes, conserve les r\u00e9sultats dans un r\u00e9f\u00e9rentiel de lignage persistant et les actualise de mani\u00e8re incr\u00e9mentielle \u00e0 mesure que les scripts changent pendant la migration. Et depuis Hive, <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-de-donnees-spark-sql\/\">Spark SQL<\/a>, et <a href=\"https:\/\/www.gudusoft.com\/fr\/lignee-des-donnees-databricks\/\">Databricks<\/a> Chaque outil poss\u00e8de son propre analyseur syntaxique de dialecte\u00a0; vous pouvez ainsi analyser c\u00f4te \u00e0 c\u00f4te le domaine source et le domaine cible r\u00e9\u00e9crit et v\u00e9rifier que la nouvelle lign\u00e9e correspond \u00e0 l\u2019ancienne.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Comment le faire fonctionner<\/h2>\n\n\n\n<ul><li><strong>Collez ou t\u00e9l\u00e9chargez du HQL<\/strong> Dans SQLFlow Cloud \u2014 niveau gratuit, r\u00e9sultats dans le navigateur, exportables au format JSON, CSV ou PNG.<\/li>\n<li><strong>Extraire les m\u00e9tadonn\u00e9es du m\u00e9tastore<\/strong> via JDBC, les d\u00e9finitions de vues et les sch\u00e9mas sont r\u00e9solus <code>S\u00c9LECTIONNER *<\/code> et les r\u00e9f\u00e9rences crois\u00e9es correctement.<\/li>\n<li><strong>Automatisez-le<\/strong> \u00e0 travers le <a href=\"https:\/\/www.gudusoft.com\/fr\/api-restful-sqlflow\/\">API REST<\/a> ou une interface de ligne de commande sans interface graphique \u2014 par exemple, analyser chaque modification HQL dans l&#039;int\u00e9gration continue avant sa fusion.<\/li>\n<li><strong>Gardez tout dans le r\u00e9seau<\/strong> avec <a href=\"https:\/\/www.gudusoft.com\/fr\/sqlflow-on-premise-version\/\">SQLFlow sur site<\/a>Docker ou Kubernetes, isol\u00e9s du r\u00e9seau si n\u00e9cessaire, $500\/mois ou $4\u00a0800 en une seule fois par type de base de donn\u00e9es s\u00e9lectionn\u00e9. De nombreuses infrastructures Hadoop sont d\u00e9ploy\u00e9es dans les banques et les op\u00e9rateurs t\u00e9l\u00e9coms o\u00f9 les requ\u00eates SQL ne peuvent pas sortir du r\u00e9seau\u00a0; cette \u00e9dition leur est d\u00e9di\u00e9e.<\/li><\/ul>\n\n\n\n<p>Lors de chaque d\u00e9ploiement, SQLFlow effectue uniquement une analyse statique\u00a0: il lit le code SQL et les m\u00e9tadonn\u00e9es du sch\u00e9ma, jamais les lignes de vos tables. Depuis la version\u00a08.2.3, vous pouvez \u00e9galement interroger le graphe r\u00e9sultant en langage naturel (\u00ab\u00a0quelles tables d\u00e9pendent de\u00a0\u00bb). <code>commandes de mise en sc\u00e8ne<\/code>?), chaque tableau et chaque colonne de la r\u00e9ponse \u00e9tant valid\u00e9s par rapport au graphique analys\u00e9 avant affichage. Pour une pr\u00e9sentation plus compl\u00e8te des fonctionnalit\u00e9s, consultez la section <a href=\"https:\/\/www.gudusoft.com\/fr\/outil-de-lignee-de-donnees-sql\/\">Pr\u00e9sentation de l&#039;outil de tra\u00e7abilit\u00e9 des donn\u00e9es SQL<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Foire aux questions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">SQLFlow peut-il construire la lign\u00e9e Hive sans acc\u00e8s au cluster\u00a0?<\/h3>\n\n\n<p>Oui. SQLFlow analyse le texte HQL\u00a0; il suffit donc d\u2019exporter vos scripts (et le DDL pour une interpr\u00e9tation pr\u00e9cise). <code>S\u00c9LECTIONNER *<\/code> La r\u00e9solution est suffisante. C&#039;est l\u00e0 la principale diff\u00e9rence avec les approches bas\u00e9es sur des hooks comme Apache Atlas, qui ne capturent la lign\u00e9e que lorsque les t\u00e2ches s&#039;ex\u00e9cutent sur un cluster en production avec le hook install\u00e9.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">G\u00e8re-t-il la commande LATERAL VIEW explode et d&#039;autres syntaxes sp\u00e9cifiques \u00e0 Hive\u00a0?<\/h3>\n\n\n<p>Oui. Hive poss\u00e8de son propre analyseur syntaxique d\u00e9di\u00e9 parmi les 39 analyseurs syntaxiques de dialecte de SQLFlow, couvrant <code>VUE LAT\u00c9RALE exploser()<\/code>, partitionn\u00e9 <code>INSERER \u00c9CRASER<\/code>et les tables externes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La lign\u00e9e est-elle au niveau des colonnes ou au niveau de la table\u00a0?<\/h3>\n\n\n<p>Au niveau des colonnes. Pour chaque colonne de sortie, SQLFlow identifie les colonnes sources exactes qui l&#039;alimentent, ainsi que les fonctions, conversions, jointures et op\u00e9rateurs ensemblistes utilis\u00e9s. Il enregistre \u00e9galement la lign\u00e9e indirecte\u00a0: les colonnes utilis\u00e9es dans <code>O\u00d9<\/code>, <code>REJOINDRE<\/code>, et <code>GROUPER PAR<\/code> clauses qui fa\u00e7onnent le r\u00e9sultat sans y figurer.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Puis-je exporter la lign\u00e9e Hive vers mon catalogue de donn\u00e9es\u00a0?<\/h3>\n\n\n<p>Oui. Les d\u00e9ploiements en entreprise incluent des adaptateurs d&#039;exportation pour DataHub, Microsoft Purview et OpenMetadata, ainsi que l&#039;exportation JSON et CSV et une API REST pour les int\u00e9grations personnalis\u00e9es.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Est-ce que SQLFlow lit les donn\u00e9es stock\u00e9es dans mes tables Hive\u00a0?<\/h3>\n\n\n<p>Non. Il effectue une analyse statique du code SQL et lit, en option, les m\u00e9tadonn\u00e9es du sch\u00e9ma depuis le metastore. Les donn\u00e9es des lignes de la table ne sont jamais modifi\u00e9es et, avec l&#039;\u00e9dition sur site, le texte SQL lui-m\u00eame ne quitte jamais votre r\u00e9seau.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Combien co\u00fbte SQLFlow\u00a0?<\/h3>\n\n\n<p>SQLFlow Cloud est gratuit au d\u00e9part\u00a0; les comptes premium co\u00fbtent 49,99\u00a0\u00a3\/mois. SQLFlow On-Premise co\u00fbte 500\u00a0\u00a3\/mois ou 4\u00a0800\u00a0\u00a3 (paiement unique) par type de base de donn\u00e9es s\u00e9lectionn\u00e9, installable sur deux serveurs, avec des types de bases de donn\u00e9es suppl\u00e9mentaires \u00e0 100\u00a0\u00a3\/mois ou 1\u00a0000\u00a0\u00a3 (paiement unique) chacun.<\/p>\n\n\n\n<div class=\"wp-block-group alignfull has-background is-layout-constrained\" style=\"background-color:#60d5f6;padding-top:32px;padding-bottom:32px\"><div class=\"wp-block-group__inner-container\">\n\n<h2 class=\"wp-block-heading\">Cartographiez la lign\u00e9e de votre domaine Hive<\/h2>\n\n\n<p>Collez un script HQL dans le visualiseur gratuit, ou contactez-nous pour organiser une analyse par lots de l&#039;ensemble de votre entrep\u00f4t Hadoop avant le d\u00e9but de la migration.<\/p>\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=hive-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Essayez SQLFlow gratuitement<\/a><\/div>\n<\/div>\n\n\n<div class=\"wp-block-buttons is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.gudusoft.com\/fr\/contact\/\">Demander une d\u00e9monstration pour entreprises<\/a><\/div>\n<\/div>\n\n<\/div><\/div>\n\n\n\n<script type=\"application\/ld+json\">{\n    \"@context\": \"https:\\\/\\\/schema.org\",\n    \"@graph\": [\n        {\n            \"@type\": \"SoftwareApplication\",\n            \"name\": \"Gudu SQLFlow\",\n            \"applicationCategory\": \"DeveloperApplication\",\n            \"applicationSubCategory\": \"SQL Data Lineage Tool\",\n            \"operatingSystem\": \"Web, Linux, Windows, macOS\",\n            \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/hive-data-lineage\\\/\",\n            \"description\": \"Automated data lineage for Apache Hive: a dedicated HiveQL parser produces interactive column-level lineage diagrams from HQL scripts \\u2014 LATERAL VIEW, partitioned INSERT OVERWRITE, external tables \\u2014 with no running cluster required.\",\n            \"featureList\": \"Hive dialect parser, column-level lineage, indirect\\\/impact lineage, LATERAL VIEW explode support, partitioned INSERT OVERWRITE, batch estate scanning, DataHub\\\/Purview\\\/OpenMetadata export, REST API, on-premise deployment\",\n            \"softwareVersion\": \"8.2.3\",\n            \"offers\": [\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Free\",\n                    \"price\": \"0\",\n                    \"priceCurrency\": \"USD\"\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow Cloud Premium\",\n                    \"price\": \"49.99\",\n                    \"priceCurrency\": \"USD\",\n                    \"priceSpecification\": {\n                        \"@type\": \"UnitPriceSpecification\",\n                        \"price\": \"49.99\",\n                        \"priceCurrency\": \"USD\",\n                        \"billingIncrement\": 1,\n                        \"unitText\": \"MONTH\"\n                    }\n                },\n                {\n                    \"@type\": \"Offer\",\n                    \"name\": \"SQLFlow On-Premise\",\n                    \"price\": \"4800\",\n                    \"priceCurrency\": \"USD\"\n                }\n            ],\n            \"publisher\": {\n                \"@type\": \"Organization\",\n                \"name\": \"Gudu Software\",\n                \"url\": \"https:\\\/\\\/www.gudusoft.com\\\/\"\n            }\n        },\n        {\n            \"@type\": \"FAQPage\",\n            \"mainEntity\": [\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SQLFlow build Hive lineage without access to the cluster?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. SQLFlow parses HQL text, so an export of your scripts plus DDL is enough. Hook-based approaches like Apache Atlas capture lineage only when jobs execute on a live cluster with the hook installed.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does it handle LATERAL VIEW explode and other Hive-specific syntax?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Hive has its own dedicated parser among SQLFlow's 39 dialect parsers, covering LATERAL VIEW explode(), partitioned INSERT OVERWRITE, and external tables.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Is the lineage column-level or table-level?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Column-level. For each output column, SQLFlow identifies the exact source columns that feed it and the functions, casts, joins, and set operators along the way, plus indirect lineage from WHERE, JOIN, and GROUP BY clauses.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can I export Hive lineage to my data catalog?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Enterprise deployments include export adapters for DataHub, Microsoft Purview, and OpenMetadata, plus JSON and CSV export and a REST API for custom integrations.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow read the data stored in my Hive tables?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. It performs static analysis of SQL code and optionally reads schema metadata from the metastore. Table row data is never touched, and with the On-Premise edition the SQL text never leaves your network.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"What does SQLFlow cost?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"SQLFlow Cloud starts free; premium is $49.99\\\/month. SQLFlow On-Premise is $500\\\/month or $4,800 one-time per selected database type, installable on two servers, with additional database types at $100\\\/month or $1,000 one-time each.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>Hive data lineage is the column-level map of how data flows through your HQL: which source tables and columns feed each Hive table, partition, and view, and through which joins, aggregations, and LATERAL VIEW expansions. The most reliable way to build it is to parse the HQL itself \u2014 Gudu SQLFlow ships a dedicated Hive dialect parser that turns your scripts into an interactive, column-level lineage diagram without touching your cluster. Try it now: paste any HiveQL script into the free online Hive lineage visualizer, select the Hive dialect, and get a column-level lineage diagram in seconds. No cluster access\u2026<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"blocksy_meta":{"styles_descriptor":{"styles":{"desktop":"","tablet":"","mobile":""},"google_fonts":[],"version":5}},"_links":{"self":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6758"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/comments?post=6758"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/pages\/6758\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/fr\/wp-json\/wp\/v2\/media?parent=6758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}