PageSourceSearch

https://getbruin.com/_nuxt/CWphJcMy.js

js getbruin.com collected 2026-09-25 19:09:29 UTC 18,963 bytes, 55 lines download raw bytes

1import{k as P,l as B,o,a as i,b as e,f as c,e as d,w as y,s as A,F as r,r as l,t as s,v as m}from"./Cl7FfoLF.js";import{C}from"./D7wFmbO6.js";import{C as I}from"./xYsfyIvd.js";import{_ as S}from"./nLwikBsy.js";import{d as D}from"./CZRHxk29.js";const q={"data-hero":"",class:"relative z-20 flex min-h-[calc(100dvh-61px)] items-center justify-center border-b border-gray-100 bg-gray-100"},L={class:"mx-auto grid w-full max-w-7xl gap-12 px-8 py-20 lg:grid-cols-[minmax(0,1.1fr)_minmax(24rem,0.9fr)] lg:items-center"},T={class:"mt-10 flex flex-col gap-3 sm:flex-row"},E={class:"demo-canvas rounded-2xl p-6"},M={class:"border border-gray-100 bg-white"},j={class:"divide-y divide-gray-100"},O={class:"text-xs uppercase tracking-wide text-gray-500"},Q={class:"text-sm leading-6 text-gray-700"},V={class:"border-b border-gray-100 bg-white"},R={class:"mx-auto max-w-7xl"},z={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"},F={class:"text-xs uppercase tracking-wide text-gray-500"},G={class:"mt-3 text-lg font-medium text-gray-900"},H={class:"mt-3 text-sm leading-6 text-gray-600"},K={class:"border-b border-gray-100 bg-gray-50"},N={class:"mx-auto max-w-7xl"},W={class:"overflow-x-auto"},Y={class:"min-w-full text-left text-sm"},J={class:"divide-y divide-gray-100 bg-white"},U={class:"px-8 py-5 font-medium text-gray-900"},X={class:"px-8 py-5 leading-6 text-gray-600"},$={class:"px-8 py-5 leading-6 text-gray-700"},Z={class:"border-b border-gray-100 bg-white"},ee={class:"mx-auto max-w-7xl"},te={class:"grid grid-cols-1 md:grid-cols-2"},ae={class:"text-xs uppercase tracking-wide text-gray-500"},se={class:"mt-3 text-xl font-medium text-gray-900"},ne={class:"mt-3 text-sm leading-6 text-gray-600"},oe={class:"border-b border-gray-100 bg-gray-950","data-dark-section":""},ie={class:"mx-auto grid max-w-7xl gap-10 px-8 py-16 sm:py-24 lg:grid-cols-[minmax(0,0.85fr)_minmax(0,1.15fr)] lg:items-start"},re={class:"rounded-2xl border border-gray-700 bg-gray-900 p-4"},le={class:"grid gap-4 md:grid-cols-2"},de={class:"min-w-0"},ce={class:"min-w-0"},pe={class:"border-b border-gray-100 bg-white"},me={class:"mx-auto max-w-7xl"},ge={class:"grid grid-cols-1 md:grid-cols-4"},ue={class:"text-xs uppercase tracking-wide text-bruin-400"},he={class:"mt-3 text-lg font-medium text-gray-900"},ye={class:"mt-3 text-sm leading-6 text-gray-600"},be={class:"border-b border-gray-100 bg-gray-50"},xe={class:"mx-auto max-w-7xl px-8 py-16 sm:py-24"},fe={class:"grid gap-10 lg:grid-cols-[minmax(0,0.9fr)_minmax(0,1.1fr)]"},ve={class:"divide-y divide-gray-100 border-y border-gray-100 bg-white"},_e=["open"],we={class:"flex cursor-pointer list-none items-start justify-between gap-6 px-6 py-5 text-left"},ke={class:"text-base font-medium text-gray-900 group-hover:text-bruin-400"},Pe={class:"px-6 pb-6 text-sm leading-6 text-gray-600"},Be={id:"migration-interest",class:"border-b border-gray-100 bg-white"},Ae={class:"mx-auto grid max-w-7xl gap-10 px-8 py-16 sm:py-24 lg:grid-cols-[minmax(0,0.85fr)_minmax(0,1.15fr)] lg:items-start"},Ce={class:"demo-canvas rounded-2xl p-6"},Ie={class:"border border-gray-100 bg-white p-6"},Se=`name: raw.salesforce_opportunity
2type: ingestr
3parameters:
4  source_connection: salesforce
5  source_table: opportunity
6  destination: snowflake
7  incremental_strategy: merge
8  incremental_key: last_timestamp
9
10columns:
11  - name: id
12    type: string
13    description: Primary key
14    primary_key: true
15    checks:
16      - name: unique
17      - name: not_null
18  - name: amount
19    type: float
20  - name: close_date
21    type: timestamp`,De=`name: marts.revenue_pipeline
22type: sf.sql
23depends:
24  - raw.salesforce_opportunity
25owner: revenue-analytics
26materialization:
27  type: table
28meta:
29  tier: gold
30  migrated_from: pentaho
31columns:
32  - name: opportunity_id
33    type: string
34    checks:
35      - name: unique
36      - name: not_null
37  - name: account_id
38    type: string
39    checks:
40      - name: not_null
41  - name: amount
42    type: float
43    checks:
44      - name: non_negative
45  - name: close_date
46    type: timestamp
47    checks:
48      - name: not_null`,qe=`SELECT
49  id AS opportunity_id,
50  account_id,
51  stage_name,
52  amount,
53  close_date
54FROM raw.salesforce_opportunity
55WHERE is_deleted = false`,Qe={__name:"pentaho-vs-bruin",setup(Le){const b=[{label:"Scope",value:"Replace isolated ETL jobs with a governed pipeline graph: ingestion, transforms, checks, lineage, and deployments."},{label:"Fit",value:"Best for teams that want open-source CLIs locally and managed orchestration, catalog, SSO, RBAC, and audit trails in the cloud."},{label:"Pattern",value:"Migrate one critical flow first with Bruin onboarding support, keep Pentaho running in parallel, then retire old jobs as Bruin assets prove parity."}],x=[{kicker:"Support windows",title:"Old versions become a planning problem",body:"If you run older Pentaho or Community Edition environments, version support, security patches, and Java/runtime dependencies can become a real migration driver."},{kicker:"Git workflow",title:"Visual jobs are hard to review",body:"PDI flows are approachable, but large graphical jobs are difficult to diff, test, and govern like normal softw
55are changes."},{kicker:"AI readiness",title:"Data needs lineage and context",body:"AI analysts need trusted metadata, asset ownership, checks, lineage, and metric definitions. That context should live with the pipeline."},{kicker:"Deployment",title:"Hybrid is no longer optional",body:"Enterprises need local development, private connectivity, VPC or on-prem options, and no requirement to expose production databases directly."}],f=[{dimension:"Primary workflow",pentaho:"Visual ETL and BI suite centred around jobs, transformations, and server-side execution.",bruin:"Open-source-first data platform with CLI-authored assets for ingestion, SQL, Python, checks, lineage, and AI analysis."},{dimension:"Developer experience",pentaho:"Spoon/PDI designer, XML-style artefacts, and server configuration that can be hard to review in Git at scale.",bruin:"Plain files, YAML metadata, SQL, Python, local runs, CI-friendly validation, and VS Code workflows."},{dimension:"Governance",pentaho:"Governance depends on edition, deployment, and surrounding platform configuration.",bruin:"Catalog, lineage, meta-keys, asset tiers, quality checks, SSO, RBAC, audit logs, and cost visibility through Bruin Cloud."},{dimension:"Ingestion",pentaho:"Mature ETL components and connectors, usually managed through graphical transformations.",bruin:"Open-source ingestion through ingestr plus Python materializations for custom APIs, legacy systems, exports, and niche sources."},{dimension:"Transformation",pentaho:"Transformation logic often lives inside visual steps and job files.",bruin:"SQL and Python assets live beside checks and metadata, so transformations are testable, reviewable, and reusable."},{dimension:"Deployment model",pentaho:"Enterprise deployments typically depend on server administration and environment-specific setup.",bruin:"Run locally, in CI, in your cloud, in a VPC, or through Bruin Cloud with private connectivity."},{dimension:"AI data analyst",pentaho:"Not designed as a chat-native AI analyst layer on top of governed pipelines.",bruin:"AI analyst in Slack, Microsoft Teams, browser, and other channels, powered by the same governed pipeline context."}],g=[{old:"PDI jobs",title:"Job orchestration becomes a Bruin asset graph",body:"Dependencies are declared explicitly. Bruin can run only the changed assets, validate the graph, and show lineage from source to output."},{old:"Spoon transformations",title:"Visual transformations become SQL or Python",body:"Business logic moves into files your team can review, test, lint, and run locally without opening a desktop designer."},{old:"Manual checks",title:"Quality checks block bad data by default",body:"Freshness, row counts, uniqueness, accepted values, and custom SQL checks live with the asset instead of in a separate runbook."},{old:"Server reports",title:"Analytics becomes chat-native and governed",body:"Bruin can feed DAC dashboards and an AI analyst from the same pipeline context, so business users ask questions without bypassing governance."}],v=[{number:"Step 1",title:"Inventory the estate",body:"List the jobs, transformations, schedules, source systems, outputs, owners, and downstream reports that matter."},{number:"Step 2",title:"Move one flow",body:"Pick a high-value pipeline and recreate it with ingestr assets, SQL/Python transforms, and quality checks."},{number:"Step 3",title:"Run in parallel",body:"Compare row counts, freshness, values, and report outputs while Pentaho continues to serve production."},{number:"Step 4",title:"Expand governance",body:"Add lineage, catalog metadata, tiers, access controls, alerts, and AI analyst context before retiring more jobs."}],u=[{q:"Why compare Pentaho with Bruin?",a:"This is a general alternatives page for teams evaluating whether Pentaho, PDI, Kettle, or older ETL estates still fit their development, governance, and analytics requirements."},{q:"Can Bruin migrate existing Pentaho transformations automatically?",a:"Some patterns can be translated quickly, but a serious migration should validate business logic, not just convert syntax. Bruin usually starts by mapping sources, transformations, dependencies, checks, and outputs, then recreating the critical flows as code. Our team can help with onboarding and migration planning."},{q:"Does Bruin replace both Pentaho Data Integration and BI?",a:"Bruin replaces the pipeline layer with ingestion, SQL/Python transforms, checks, lineage, and orchestration. It also adds an AI data analyst and DAC dashboards. Some teams keep a BI tool during migration while Bruin becomes the governed data foundation."},{q:"Does Bruin offer Pentaho migration support?",a:"Yes. The Bruin team can help with onboarding and migration planning. The first step is mapping your PDI jobs, Kettle transformations, schedules, sources, outputs, and checks into a practical Bruin migration plan."},{q:"Can Bruin run in a private network?",a:"Yes. Bruin is designed for hybrid deployment patterns: local development, CI, your cloud, VPC, on-prem, or managed Bruin Cloud with private connectivity options."}];return D({}),P({title:"Pentaho vs Bruin - Modern Pentaho Alternative for Data Pipelines",description:"Compare Pentaho and Bruin for modern data pipelines. See how Bruin helps teams evaluate alternatives to PDI and Kettle with onboarding support, ingestr, SQL/Python assets, checks, lineage, DAC dashboards, MCP, governance, and AI analyst workflows.",ogTitle:"Pentaho vs Bruin - Modern Pentaho Alternative",ogDescription:"A practical comparison for teams evaluating Pentaho PDI, Kettle, or Community Edition alternatives for governed, code-first data pipelines with Bruin.",ogUrl:"https://getbruin.com/comparisons/pentaho-vs-bruin/",ogType:"article",twitterCard:"summary_large_image",twitterTitle:"Pentaho vs Bruin - Modern Pentaho Alternative",twitterDescription:"Compare Pentaho and Bruin across ETL, migration planning, onboarding, governance, checks, lineage, DAC dashboards, MCP, deployment, and AI analytics.",keywords:"pentaho alternative, pentaho vs bruin, pentaho migration, pentaho onboarding, pentaho pdi alternative, kettle alternative, etl migration, modern data pipeline, bruin data",robots:"index, follow"}),B({link:[{rel:"canonical",href:"https://getbruin.com/comparisons/pentaho-vs-bruin/"}],script:[{type:"application/ld+json",innerHTML:JSON.stringify({"@context":"https://schema.org","@type":"Article",headline:"Pentaho vs Bruin: Modern Pentaho Alternative for Data Pipelines",description:"A practical comparison for teams evaluating Pentaho PDI, Kettle, or Community Edition alternatives.",author:{"@type":"Organization",name:"Bruin Data"},publisher:{"@type":"Organization",name:"Bruin Data",logo:{"@type":"ImageObject",url:"https://getbruin.com/bruin-logo-sm128.png"}},datePublished:"2026-07-02",dateModified:"2026-07-02",mainEntityOfPage:"https://getbruin.com/comparisons/pentaho-vs-bruin/"})}
55,{type:"application/ld+json",innerHTML:JSON.stringify({"@context":"https://schema.org","@type":"FAQPage",mainEntity:u.map(p=>({"@type":"Question",name:p.q,acceptedAnswer:{"@type":"Answer",text:p.a}}))})}]}),(p,t)=>{const h=A,_=C,w=I,k=S;return o(),i("main",null,[e("section",q,[e("div",L,[e("div",null,[t[2]||(t[2]=e("p",{class:"text-sm uppercase tracking-wide text-gray-600"},"Pentaho vs Bruin",-1)),t[3]||(t[3]=e("h1",{class:"mt-4 max-w-4xl text-[48px] font-light leading-tight text-gray-900 sm:text-[72px]"},[c(" A modern "),e("span",{class:"font-serif italic text-bruin-400"},"Pentaho alternative"),c(" for governed data pipelines ")],-1)),t[4]||(t[4]=e("p",{class:"mt-6 max-w-2xl text-lg leading-8 text-gray-600"}," Pentaho is a familiar ETL and BI platform, but many teams compare alternatives when PDI, Kettle, or older estates become harder to review, govern, and connect to modern analytics workflows. Bruin gives those teams a code-first path to ingestion, SQL and Python transforms, quality checks, lineage, DAC dashboards, and AI-ready analytics. Our team can also help with onboarding and migration planning. ",-1)),e("div",T,[d(h,{href:"#migration-interest",variant:"primary",size:"lg"},{default:y(()=>[...t[0]||(t[0]=[c(" Talk to migration team ",-1)])]),_:1}),d(h,{href:"https://github.com/bruin-data/bruin",external:"",variant:"secondary",size:"lg"},{default:y(()=>[...t[1]||(t[1]=[c(" View Bruin on GitHub ",-1)])]),_:1})])]),e("div",E,[e("div",M,[t[5]||(t[5]=e("div",{class:"border-b border-gray-100 px-5 py-4"},[e("p",{class:"text-xs uppercase tracking-wide text-gray-500"},"Migration lens"),e("p",{class:"mt-1 text-xl font-light text-gray-900"},"What changes when you move from visual ETL to pipelines as code?")],-1)),e("dl",j,[(o(),i(r,null,l(b,a=>e("div",{key:a.label,class:"grid grid-cols-[7rem_1fr] gap-4 px-5 py-4"},[e("dt",O,s(a.label),1),e("dd",Q,s(a.value),1)])),64))])])])])]),e("section",V,[e("div",R,[t[6]||(t[6]=e("div",{class:"border-b border-gray-100 px-8 py-16 sm:py-20"},[e("p",{class:"text-sm uppercase tracking-wide text-gray-500"},"Why teams compare them"),e("h2",{class:"mt-3 max-w-3xl text-[36px] font-light leading-tight text-gray-900 sm:text-[48px]"}
55," Pentaho is familiar. The question is whether it still fits the way your data team works. ")],-1)),e("div",z,[(o(),i(r,null,l(x,(a,n)=>e("div",{key:a.title,class:m(["border-b border-gray-100 px-8 py-10 lg:border-b-0",[n%2!==0?"sm:border-l sm:border-l-gray-100":"",n%4!==0?"lg:border-l lg:border-l-gray-100":"",n>=2?"sm:border-b-0":""]])},[e("p",F,s(a.kicker),1),e("h3",G,s(a.title),1),e("p",H,s(a.body),1)],2)),64))])])]),e("section",K,[e("div",N,[t[8]||(t[8]=e("div",{class:"border-b border-gray-100 px-8 py-16 sm:py-20"},[e("p",{class:"text-sm uppercase tracking-wide text-gray-500"},"At a glance"),e("h2",{class:"mt-3 text-[36px] font-light leading-tight text-gray-900 sm:text-[48px]"}," Pentaho vs Bruin, by the dimensions that usually matter in a migration ")],-1)),e("div",W,[e("table",Y,[t[7]||(t[7]=e("thead",{class:"border-b border-gray-100 bg-white text-xs uppercase tracking-wide text-gray-500"},[e("tr",null,[e("th",{class:"px-8 py-4 font-medium"},"Dimension"),e("th",{class:"px-8 py-4 font-medium"},"Pentaho"),e("th",{class:"px-8 py-4 font-medium"},"Bruin")])],-1)),e("tbody",J,[(o(),i(r,null,l(f,a=>e("tr",{key:a.dimension},[e("td",U,s(a.dimension),1),e("td",X,s(a.pentaho),1),e("td",$,s(a.bruin),1)])),64))])])])])]),e("section",Z,[e("div",ee,[t[9]||(t[9]=e("div",{class:"border-b border-gray-100 px-8 py-16 sm:py-20"},[e("p",{class:"text-sm uppercase tracking-wide text-gray-500"},"Replacement map"),e("h2",{class:"mt-3 max-w-4xl text-[36px] font-light leading-tight text-gray-900 sm:text-[48px]"}," What Bruin replaces when a Pentaho estate becomes hard to maintain ")],-1)),e("div",te,[(o(),i(r,null,l(g,(a,n)=>e("div",{key:a.title,class:m(["border-b border-gray-100 px-8 py-10",[n%2!==0?"md:border-l md:border-l-gray-100":"",n>=g.length-2?"md:border-b-0":""]])},[e("p",ae,s(a.old),1),e("h3",se,s(a.title),1),e("p",ne,s(a.body),1)],2)),64))])])]),e("section",oe,[e("div",ie,[t[12]||(t[12]=e("div",null,[e("p",{class:"text-sm uppercase tracking-wide text-gray-400"},"Code-first pipelines"),e("h2",{class:"mt-3 text-[36px] font-light leading-tight text-white sm:text-[48px]"}," A Pentaho transformation becomes a reviewed, testable asset. "),e("p",{class:"mt-5 text-base leading-7 text-gray-300"}," The main migration benefit is not just syntax. It is that ingestion, transformation, ownership, dependencies, quality checks, and deployment metadata live together. Your team can review them in Git, run them locally, and ship them through CI. ")],-1)),e("div",re,[e("div",le,[e("div",de,[t[10]||(t[10]=e("p",{class:"mb-2 px-2 text-xs uppercase tracking-wide text-gray-400"},"Asset 1: ingestion",-1)),d(_,{language:"yaml",code:Se})]),e("div",ce,[t[11]||(t[11]=e("p",{class:"mb-2 px-2 text-xs uppercase tracking-wide text-gray-400"},"Asset 2: transform",-1)),d(w,{yaml:De,sql:qe})])])])])]),e("section",pe,[e("div",me,[t[13]||(t[13]=e("div",{class:"border-b border-gray-100 px-8 py-16 sm:py-20"},[e("p",{class:"text-sm uppercase tracking-wide text-gray-500"},"Migration plan"),e("h2",{class:"mt-3 max-w-3xl text-[36px] font-light leading-tight text-gray-900 sm:text-[48px]"}," A practical path from Pentaho jobs to Bruin assets ")],-1)),e("div",ge,[(o(),i(r,null,l(v,(a,n)=>e("div",{key:a.title,class:m(["border-b border-gray-100 px-8 py-10 md:border-b-0",n!==0?"md:border-l md:border-l-gray-100":""])},[e("p",ue,s(a.number),1),e("h3",he,s(a.title),1),e("p",ye,s(a.body),1)],2)),64))])])]),e("section",be,[e("div",xe,[e("div",fe,[t[15]||(t[15]=e("div",null,[e("p",{class:"text-sm uppercase tracking-wide text-gray-500"},"FAQ"),e("h2",{class:"mt-3 text-[36px] font-light leading-tight text-gray-900 sm:text-[48px]"}," Questions teams ask when replacing Pentaho ")],-1)),e("ul",ve,[(o(),i(r,null,l(u,(a,n)=>e("li",{key:a.q},[e("details",{class:"group",open:n===0},[e("summary",we,[e("span",ke,s(a.q),1),t[14]||(t[14]=e("span",{"aria-hidden":"true",class:"mt-1 text-gray-400 group-open:rotate-45"},"+",-1))]),e("p",Pe,s(a.a),1)],8,_e)])),64))])])])]),e("section",Be,[e("div",Ae,[t[16]||(t[16]=e("div",null,[e("p",{class:"text-sm uppercase tracking-wide text-gray-500"},"Talk to Bruin"),e("h2",{class:"mt-3 text-[36px] font-light leading-tight text-gray-900 sm:text-[48px]"}," Show us your Pentaho estate. We will map the replacement path. "),e("p",{class:"mt-5 text-base leading-7 text-gray-600"}," Share the shape of your current setup: PDI jobs, database sources, file drops, BA Server reports, custom scripts, or whatever is sitting around it. The Bruin team can help with onboarding and migration planning so you can map what becomes ingestr, what becomes SQL or Python, and where Bruin Cloud, MCP, and DAC dashboards fit. ")],-1)),e("div",Ce,[e("div",Ie,[d(k,{source:"pentaho_comparison_page"})])])])])])}}};export{Qe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.