{"id":6750,"date":"2026-07-12T02:06:00","date_gmt":"2026-07-12T10:06:00","guid":{"rendered":"https:\/\/www.gudusoft.com\/bigquery-data-lineage\/"},"modified":"2026-07-12T02:06:00","modified_gmt":"2026-07-12T10:06:00","slug":"bigquery-data-lineage","status":"publish","type":"page","link":"https:\/\/www.gudusoft.com\/pt\/linhagem-de-dados-bigquery\/","title":{"rendered":"Linhagem de dados do BigQuery: Linhagem em n\u00edvel de coluna para o Google BigQuery SQL"},"content":{"rendered":"<p><strong>linhagem de dados do BigQuery<\/strong> \u00e9 o mapa de como os dados se movem pelo seu projeto do BigQuery: quais tabelas e colunas de origem alimentam cada tabela derivada, visualiza\u00e7\u00e3o e consulta agendada, e quais express\u00f5es transformam os dados ao longo do caminho. O Dataplex do Google captura automaticamente a linhagem dos trabalhos do BigQuery no n\u00edvel da tabela; para ver qual <em>colunas<\/em> Para entender qual \u00e9 o par\u00e2metro e por meio de quais fun\u00e7\u00f5es e jun\u00e7\u00f5es voc\u00ea precisa analisar o pr\u00f3prio SQL. <strong>Gudu SQLFlow<\/strong> faz exatamente isso, com um analisador de dialeto BigQuery dedicado que resolve rela\u00e7\u00f5es aninhadas. <code>ESTRUTURA<\/code> campos, <code>DESANESTAR<\/code>, expans\u00e3o de estrelas e visualiza\u00e7\u00e3o de cadeias at\u00e9 a granularidade de coluna.<\/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>Experimente em 30 segundos:<\/strong> Cole qualquer consulta do BigQuery no <a href=\"https:\/\/sqlflow.gudusoft.com\/?utm_source=gudusoft&amp;utm_medium=website&amp;utm_campaign=bigquery-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Visualizador de linhagem SQLFlow gratuito<\/a>Selecione o dialeto do BigQuery e obtenha um diagrama de linhagem interativo em n\u00edvel de coluna. A edi\u00e7\u00e3o em nuvem possui um plano gratuito.<\/p>\n\n<\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Por que a linhagem do BigQuery \u00e9 mais dif\u00edcil do que parece<\/h2>\n\n\n\n<p>O SQL do BigQuery n\u00e3o \u00e9 um SQL ANSI gen\u00e9rico. Tr\u00eas recursos em particular quebram a fidelidade das ferramentas de linhagem que dependem de uma gram\u00e1tica \u00fanica para todos os casos:<\/p>\n\n\n\n<ul><li><strong>Colunas aninhadas e repetidas.<\/strong> Uma \u00fanica coluna do BigQuery pode ser uma <code>ESTRUTURA<\/code> contendo outros campos, ou um <code>VARIEDADE<\/code> de estruturas. A verdadeira linhagem precisa chegar ao interior: <code>pedidos.cliente.email<\/code> \u00e9 um n\u00f3 de linhagem diferente de <code>pedidos.cliente.pa\u00eds<\/code>, embora ambos vivam na mesma coluna f\u00edsica.<\/li>\n<li><strong><code>DESANESTAR<\/code>.<\/strong> Aplanar um campo repetido transforma uma linha em v\u00e1rias e introduz uma rela\u00e7\u00e3o derivada no meio da consulta. Um analisador sint\u00e1tico que n\u00e3o modela <code>DESANESTAR<\/code> Perde-se a liga\u00e7\u00e3o entre o alias simplificado e o campo de matriz de onde ele veio.<\/li>\n<li><strong>Expans\u00e3o estelar.<\/strong> <code>SELECIONE *<\/code> &quot;Atrav\u00e9s de uma cadeia de visualiza\u00e7\u00f5es&quot; significa que as colunas de sa\u00edda n\u00e3o s\u00e3o escritas em nenhum lugar no texto da consulta. Resolv\u00ea-las requer as defini\u00e7\u00f5es da tabela e da visualiza\u00e7\u00e3o, n\u00e3o apenas a instru\u00e7\u00e3o que voc\u00ea tem em m\u00e3os.<\/li><\/ul>\n\n\n\n<p>O SQLFlow inclui um analisador sint\u00e1tico espec\u00edfico para BigQuery (um dos <a href=\"https:\/\/www.gudusoft.com\/pt\/ferramenta-de-linhagem-de-dados-sql\/\">39 analisadores sint\u00e1ticos espec\u00edficos de dialeto<\/a> No produto (n\u00e3o uma \u00fanica gram\u00e1tica gen\u00e9rica), ele lida com os tr\u00eas. Ele resolve cada refer\u00eancia de coluna por meio de CTEs, subconsultas, visualiza\u00e7\u00f5es e expans\u00e3o em estrela, e modela estruturas aninhadas. <code>ESTRUTURA<\/code> campos como n\u00f3s de linhagem de primeira classe.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">O Dataplex fornece a linhagem de tarefas em n\u00edvel de tabela. E depois?<\/h2>\n\n\n\n<p>O Dataplex (camada de governan\u00e7a de dados do Google Cloud) \u00e9 realmente muito bom no que faz: ele observa os trabalhos do BigQuery enquanto s\u00e3o executados e registra quais tabelas cada trabalho leu e gravou. Se voc\u00ea quiser saber se uma consulta agendada preenche... <code>dw.receita_di\u00e1ria<\/code> de <code>pedidos brutos<\/code>O Dataplex j\u00e1 te informa isso.<\/p>\n\n\n\n<p>O que a observa\u00e7\u00e3o de tarefas em tempo de execu\u00e7\u00e3o n\u00e3o revela \u00e9 a l\u00f3gica de transforma\u00e7\u00e3o entre essas tabelas: quais colunas de origem alimentam quais colunas de sa\u00edda, por meio de quais express\u00f5es, filtros e jun\u00e7\u00f5es. Essa informa\u00e7\u00e3o existe apenas no texto SQL, portanto, extra\u00ed-la requer an\u00e1lise sint\u00e1tica do SQL. As duas abordagens respondem a perguntas diferentes:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Pergunta<\/th><th>linhagem de trabalho do Dataplex<\/th><th>Linhagem analisada do SQLFlow<\/th><\/tr><\/thead><tbody>\n<tr><td>Quais tabelas s\u00e3o afetadas por este trabalho?<\/td><td>Sim, automaticamente, por execu\u00e7\u00e3o de tarefa.<\/td><td>Sim, a partir do SQL<\/td><\/tr>\n<tr><td>Quais colunas alimentam <code>receita_di\u00e1ria.total<\/code>?<\/td><td>N\u00e3o \u2014 granularidade da tabela<\/td><td>Sim, por coluna de sa\u00edda.<\/td><\/tr>\n<tr><td>Qual express\u00e3o calcula cada coluna de sa\u00edda?<\/td><td>N\u00e3o<\/td><td>Sim: fun\u00e7\u00f5es, convers\u00f5es de tipo, agrega\u00e7\u00f5es.<\/td><\/tr>\n<tr><td>Quais colunas apenas filtram ou unem (linhagem indireta)?<\/td><td>N\u00e3o<\/td><td>Sim, como uma camada separada que pode ser ativada ou desativada.<\/td><\/tr>\n<tr><td>Hist\u00f3rico de consultas SQL que ainda n\u00e3o foram executadas (revis\u00e3o de c\u00f3digo, migra\u00e7\u00e3o)<\/td><td>N\u00e3o \u2014 precisa de um trabalho executado<\/td><td>Sim \u2014 an\u00e1lise est\u00e1tica do texto SQL.<\/td><\/tr>\n<\/tbody><\/table><\/figure>\n\n\n\n<p>As equipes normalmente usam ambos: Dataplex para o invent\u00e1rio de tarefas sempre ativo e an\u00e1lise SQL quando precisam responder a perguntas como &quot;o que para de funcionar se eu alterar esta coluna&quot; ou &quot;de onde exatamente vem este n\u00famero&quot; com precis\u00e3o de coluna.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exemplo pr\u00e1tico: CREATE TABLE AS SELECT with UNNEST<\/h2>\n\n\n\n<p>Eis um padr\u00e3o t\u00edpico do BigQuery: construir uma tabela de receita simples a partir de uma tabela de pedidos com uma opera\u00e7\u00e3o repetida. <code>itens_de_linha<\/code> estrutura.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE TABLE dw.order_line_revenue AS SELECT o.order_id, o.customer.email AS customer_email, li.product_id, li.qty * li.unit_price AS line_revenue FROM raw.orders AS o, UNNEST(o.line_items) AS li WHERE o.status = &#039;COMPLETE&#039;;<\/code><\/pre>\n\n\n\n<p>Alimente o SQLFlow com isso e a linhagem em n\u00edvel de coluna que ele produzir\u00e1 ser\u00e1:<\/p>\n\n\n\n<ul><li><code>receita_da_linha_de_pedido.email_do_cliente<\/code> vem do campo aninhado <code>raw.orders.customer.email<\/code> \u2014 um membro da estrutura, n\u00e3o a estrutura inteira <code>cliente<\/code> coluna.<\/li>\n<li><code>receita_da_linha_de_pedido.receita_da_linha<\/code> vem de <code>raw.orders.line_items.qty<\/code> e <code>raw.orders.line_items.unit_price<\/code>, atrav\u00e9s do <code>DESANESTAR<\/code> pseud\u00f4nimo <code>li<\/code> e uma multiplica\u00e7\u00e3o. Ambos os campos de origem residem dentro de uma estrutura repetida; o SQLFlow rastreia o processo de achatamento.<\/li>\n<li><code>raw.orders.status<\/code> aparece como <strong>linhagem indireta<\/strong>: nunca chega \u00e0 sa\u00edda, mas o <code>ONDE<\/code> O filtro significa que ele molda cada linha do resultado. O SQLFlow modela o fluxo de dados direto e a influ\u00eancia indireta (colunas WHERE, JOIN e GROUP BY) como tipos de relacionamento distintos que voc\u00ea pode ativar ou desativar separadamente no diagrama \u2014 uma distin\u00e7\u00e3o que a maioria das ferramentas de linhagem n\u00e3o faz.<\/li><\/ul>\n\n\n\n<p>A linhagem indireta importa mais do que parece \u00e0 primeira vista. Se algu\u00e9m alterar os valores da enumera\u00e7\u00e3o em <code>status<\/code>, uma ferramenta de linhagem puramente direta diz <code>receita_da_linha<\/code> n\u00e3o \u00e9 afetado. N\u00e3o \u00e9: todos os n\u00fameros de receita subsequentes mudam. An\u00e1lise de impacto sem linhagem indireta \u00e9 an\u00e1lise de impacto com pontos cegos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Rastreamento de consultas agendadas e cadeias de visualiza\u00e7\u00e3o<\/h2>\n\n\n\n<p>Na maioria dos ambientes BigQuery, a linhagem interessante n\u00e3o \u00e9 uma \u00fanica instru\u00e7\u00e3o. \u00c9 uma cadeia: tabelas brutas, depois uma camada de visualiza\u00e7\u00f5es, em seguida uma consulta agendada que materializa uma tabela de relat\u00f3rios e, por fim, mais visualiza\u00e7\u00f5es por cima. Qualquer link individual \u00e9 f\u00e1cil de ler; o caminho completo, de uma coluna de origem a um campo do painel, n\u00e3o \u00e9.<\/p>\n\n\n\n<p>O SQLFlow analisa todo o conjunto em conjunto. Forne\u00e7a a ele o DDL da view mais o SQL da consulta agendada (colar, upload de arquivo, metadados em tempo real via JDBC, um manifesto dbt ou extra\u00e7\u00e3o de metadados do Grabit) e ele conecta a cadeia: as refer\u00eancias view-on-view s\u00e3o resolvidas, <code>SELECIONE *<\/code> A ferramenta expande os esquemas reais em cada camada, e o diagrama resultante permite clicar em qualquer coluna de sa\u00edda e percorrer o fluxo de dados, desde as visualiza\u00e7\u00f5es intermedi\u00e1rias at\u00e9 as colunas de origem nas tabelas brutas. A exporta\u00e7\u00e3o pode ser feita em JSON, CSV ou PNG, ou programaticamente via API REST \u2014 e as implementa\u00e7\u00f5es corporativas enviam a linhagem de dados para o DataHub, Microsoft Purview ou OpenMetadata.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diagramas ER de restri\u00e7\u00f5es N\u00c3O IMPOSTAS<\/h2>\n\n\n\n<p>O BigQuery suporta apenas chaves prim\u00e1rias e estrangeiras como <code>N\u00c3O APLICADO<\/code> Restri\u00e7\u00f5es: declaradas em DDL para o otimizador e para a documenta\u00e7\u00e3o, nunca verificadas em tempo de escrita. Por n\u00e3o serem aplicadas, muitas equipes presumem que sejam metadados in\u00fateis. N\u00e3o s\u00e3o \u2014 s\u00e3o exatamente as declara\u00e7\u00f5es de relacionamento que um diagrama ER precisa.<\/p>\n\n\n\n<p>A infer\u00eancia ER do SQLFlow entende o BigQuery. <code>N\u00c3O APLICADO<\/code> Express\u00e3o idiom\u00e1tica PK\/FK: execute seu DDL atrav\u00e9s dela e ela desenhar\u00e1 o diagrama de entidade-relacionamento a partir de restri\u00e7\u00f5es como <code>ADICIONAR CHAVE PRIM\u00c1RIA (order_id) N\u00c3O \u00c9 OBRIGAT\u00d3RIO<\/code> e a correspond\u00eancia <code>CHAVE ESTRANGEIRA ... REFER\u00caNCIAS ... N\u00c3O APLICADAS<\/code> declara\u00e7\u00f5es. O resultado \u00e9 um modelo ER do seu data warehouse gerado diretamente a partir do DDL que voc\u00ea j\u00e1 possui, para esquemas cuja documenta\u00e7\u00e3o de relacionamento provavelmente n\u00e3o existe em nenhum outro lugar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Para que as equipes usam a linhagem de dados do BigQuery?<\/h2>\n\n\n\n<ul><li><strong>An\u00e1lise de impacto antes das altera\u00e7\u00f5es de esquema:<\/strong> Encontre todas as consultas, visualiza\u00e7\u00f5es e relat\u00f3rios agendados que uma coluna realmente alimenta \u2014 inclusive por meio de <code>DESANESTAR<\/code> e acesso \u00e0 estrutura \u2014 antes de renome\u00e1-la ou redigit\u00e1-la.<\/li>\n<li><strong>Depurando n\u00fameros incorretos:<\/strong> Percorra a cadeia de visualiza\u00e7\u00e3o, partindo de uma m\u00e9trica do painel de controle, at\u00e9 chegar aos campos e express\u00f5es de origem exatos que a produziram.<\/li>\n<li><strong>Planejamento de migra\u00e7\u00e3o:<\/strong> Ao mover dados para dentro ou para fora do BigQuery, o gr\u00e1fico de depend\u00eancias indica a ordem correta de entrada e o que pode ser deixado para tr\u00e1s com seguran\u00e7a. O SQLFlow cria o mesmo gr\u00e1fico em n\u00edvel de coluna para <a href=\"https:\/\/www.gudusoft.com\/pt\/linhagem-de-dados-de-floco-de-neve\/\">Floco de neve<\/a> e <a href=\"https:\/\/www.gudusoft.com\/pt\/linhagem-de-dados-de-redshift\/\">Amazon Redshift<\/a>Assim, as migra\u00e7\u00f5es entre armaz\u00e9ns podem ser mapeadas em ambos os lados com uma \u00fanica ferramenta.<\/li>\n<li><strong>Conformidade e auditoria:<\/strong> Demonstrar quais campos de origem s\u00e3o utilizados em uma sa\u00edda regulamentada, com a granularidade de coluna exigida pelos auditores, gerada a partir do SQL em vez de mantida manualmente.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Privacidade, implementa\u00e7\u00e3o e pre\u00e7os<\/h2>\n\n\n\n<p>O SQLFlow realiza apenas an\u00e1lises est\u00e1ticas de c\u00f3digo SQL e metadados de esquema. Ele nunca l\u00ea as linhas das suas tabelas do BigQuery e n\u00e3o precisa de uma conta de servi\u00e7o com acesso a dados \u2014 o texto SQL e o DDL s\u00e3o suficientes. O SQLFlow Cloud possui um plano gratuito (o plano premium custa \u00a349,99\/m\u00eas). Para ambientes regulamentados, <a href=\"https:\/\/www.gudusoft.com\/pt\/sqlflow-on-premise-versao\/\">SQLFlow no local<\/a> Executa em Docker ou Kubernetes dentro da sua pr\u00f3pria rede, isolada da internet se necess\u00e1rio, por \u00a31.500\/m\u00eas ou \u00a34.800 (pagamento \u00fanico) por tipo de banco de dados selecionado; detalhes completos est\u00e3o dispon\u00edveis em [link para o site]. <a href=\"https:\/\/www.gudusoft.com\/pt\/precos\/\">p\u00e1gina de pre\u00e7os<\/a>Implanta\u00e7\u00f5es corporativas realizam varreduras em lote de mais de 100 bancos de dados e mais de um milh\u00e3o de colunas com varreduras incrementais e um reposit\u00f3rio de linhagem persistente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Perguntas frequentes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">O Dataplex j\u00e1 n\u00e3o me fornece a linhagem do BigQuery?<\/h3>\n\n\n<p>Sim, no n\u00edvel da tabela. O Dataplex registra automaticamente quais tabelas cada tarefa do BigQuery l\u00ea e grava, o que \u00e9 um invent\u00e1rio s\u00f3lido das tarefas. Ele n\u00e3o extrai a l\u00f3gica de transforma\u00e7\u00e3o dentro do SQL \u2014 quais colunas alimentam quais, por meio de quais express\u00f5es. Para isso, voc\u00ea precisa de uma ferramenta que analise o SQL, que \u00e9 o que o SQLFlow faz.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O SQLFlow consegue rastrear a linhagem atrav\u00e9s de colunas STRUCT e ARRAY?<\/h3>\n\n\n<p>Sim. O analisador do BigQuery modela campos de estrutura aninhados como n\u00f3s de linhagem individuais, ent\u00e3o <code>cliente.email<\/code> e <code>cliente.pa\u00eds<\/code> possuem linhagem separada e rastreiam campos atrav\u00e9s de <code>DESANESTAR<\/code> achatamento de colunas repetidas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Como o SQLFlow lida com o comando SELECT * nas visualiza\u00e7\u00f5es do BigQuery?<\/h3>\n\n\n<p>As express\u00f5es com asterisco s\u00e3o expandidas com base nas defini\u00e7\u00f5es reais de tabela e visualiza\u00e7\u00e3o, de modo que cada coluna impl\u00edcita receba uma linhagem expl\u00edcita. Isso funciona por meio de cadeias de visualiza\u00e7\u00e3o multicamadas, onde as colunas por tr\u00e1s de uma <code>SELECIONE *<\/code> Podem ser definidas v\u00e1rias vis\u00f5es a montante.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00c9 poss\u00edvel mapear a linhagem entre consultas agendadas e visualiza\u00e7\u00f5es simultaneamente?<\/h3>\n\n\n<p>Sim. Analise o SQL da consulta agendada e visualize o DDL como um \u00fanico trabalho, e o SQLFlow interliga toda a cadeia, permitindo rastrear uma coluna de relat\u00f3rio desde a consulta de materializa\u00e7\u00e3o e todas as visualiza\u00e7\u00f5es intermedi\u00e1rias at\u00e9 as colunas de origem brutas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O SQLFlow precisa acessar meus dados do BigQuery?<\/h3>\n\n\n<p>N\u00e3o. Trata-se de uma an\u00e1lise est\u00e1tica: texto SQL mais metadados de esquema opcionais. Os dados das linhas da tabela nunca s\u00e3o lidos. Com a vers\u00e3o On-Premise, at\u00e9 mesmo o texto SQL permanece dentro da sua rede.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qual o custo do SQLFlow?<\/h3>\n\n\n<p>O SQLFlow Cloud \u00e9 gratuito a partir de um primeiro m\u00eas; contas premium custam \u00a349,99\/m\u00eas. O SQLFlow On-Premise custa \u00a3500\/m\u00eas ou \u00a34.800 (pagamento \u00fanico) por tipo de banco de dados selecionado, e pode ser instalado em dois servidores.<\/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\">Veja agora sua linhagem do BigQuery.<\/h2>\n\n\n<p>Cole uma consulta do BigQuery no visualizador gratuito ou fale conosco sobre a possibilidade de analisarmos todo o seu projeto.<\/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=bigquery-data-lineage\" target=\"_blank\" rel=\"noreferrer noopener\">Experimente o SQLFlow gratuitamente<\/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\/pt\/contato\/\">Solicite uma demonstra\u00e7\u00e3o empresarial<\/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\\\/bigquery-data-lineage\\\/\",\n            \"description\": \"Automated SQL data lineage tool with a dedicated BigQuery dialect parser: column-level lineage through STRUCT fields, UNNEST, star expansion, view chains, and scheduled queries.\",\n            \"featureList\": \"BigQuery column-level lineage, nested STRUCT field lineage, UNNEST tracing, star expansion, indirect\\\/impact lineage, ER diagrams from NOT ENFORCED constraints, dbt support, REST API, DataHub\\\/Purview\\\/OpenMetadata export\",\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\": \"Doesn't Dataplex already give me BigQuery lineage?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes, at the table level. Dataplex automatically records which tables each BigQuery job reads and writes. It does not extract the transform logic inside the SQL \\u2014 which columns feed which, through which expressions. For that you need a tool that parses the SQL, which is what SQLFlow does.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can SQLFlow trace lineage through STRUCT and ARRAY columns?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. The BigQuery parser models nested struct fields as individual lineage nodes, so customer.email and customer.country have separate lineage, and it traces fields through UNNEST flattening of repeated columns.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"How does SQLFlow handle SELECT * in BigQuery views?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Star expressions are expanded against the actual table and view definitions, so every implicit column gets explicit lineage, even through multi-layer view chains.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Can it map lineage across scheduled queries and views together?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"Yes. Analyze the scheduled-query SQL and view DDL as one job and SQLFlow stitches the end-to-end chain from reporting columns back to raw source columns.\"\n                    }\n                },\n                {\n                    \"@type\": \"Question\",\n                    \"name\": \"Does SQLFlow need access to my BigQuery data?\",\n                    \"acceptedAnswer\": {\n                        \"@type\": \"Answer\",\n                        \"text\": \"No. It is static analysis of SQL text plus optional schema metadata. Table row data is never read. With the On-Premise edition, even the SQL text stays inside 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 accounts are $49.99\\\/month. SQLFlow On-Premise is $500\\\/month or $4,800 one-time per selected database type, installable on two servers.\"\n                    }\n                }\n            ]\n        }\n    ]\n}<\/script>","protected":false},"excerpt":{"rendered":"<p>BigQuery data lineage is the map of how data moves through your BigQuery project: which source tables and columns feed each derived table, view, and scheduled query, and which expressions transform the data along the way. Google&#8217;s Dataplex captures lineage automatically for BigQuery jobs at the table level; to see which columns feed which, and through which functions and joins, you have to parse the SQL itself. Gudu SQLFlow does exactly that, with a dedicated BigQuery dialect parser that resolves nested STRUCT fields, UNNEST, star expansion, and view chains down to column granularity. Try it in 30 seconds: paste any\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\/pt\/wp-json\/wp\/v2\/pages\/6750"}],"collection":[{"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/comments?post=6750"}],"version-history":[{"count":0,"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/pages\/6750\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gudusoft.com\/pt\/wp-json\/wp\/v2\/media?parent=6750"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}