[{"data":1,"prerenderedAt":1462},["ShallowReactive",2],{"tutorial-chess-duckdb/run-pipeline":3,"content-query-3SXqadeYIX":379,"content-query-q9sTnJ7t0D":652},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"readingTime":11,"category":12,"tags":13,"difficulty":16,"module":5,"step":17,"subSteps":18,"learnMore":19,"stepGif":26,"author":27,"body":31,"_type":373,"_id":374,"_source":375,"_file":376,"_stem":377,"_extension":378},"/tutorials/chess-duckdb/run-pipeline","chess-duckdb",false,"","Run & Query","Execute the chess pipeline and query the results in DuckDB to verify your data.","2026-04-15",3,"Tutorial",[14,15],"Bruin CLI","DuckDB","Beginner",2,true,[20,23],{"label":21,"url":22},"Bruin run command","https://getbruin.com/docs/bruin/commands/run.html",{"label":24,"url":25},"Bruin query command","https://getbruin.com/docs/bruin/commands/query.html","/img/learn/tutorials/chesspipeline.gif",{"name":28,"role":29,"image":30},"Bruin Team","Bruin Data","/bruin-logo-2025.svg",{"type":32,"children":33,"toc":363},"root",[34,43,49,55,60,66,73,78,112,117,145,150,159,165,170,210,260,266,271,306,311,346,352,357],{"type":35,"tag":36,"props":37,"children":39},"element","h2",{"id":38},"what-youll-do",[40],{"type":41,"value":42},"text","What you'll do",{"type":35,"tag":44,"props":45,"children":46},"p",{},[47],{"type":41,"value":48},"Run the pipeline to ingest chess data, then query DuckDB to verify the results.",{"type":35,"tag":36,"props":50,"children":52},{"id":51},"why-this-step-matters",[53],{"type":41,"value":54},"Why this step matters",{"type":35,"tag":44,"props":56,"children":57},{},[58],{"type":41,"value":59},"Running the pipeline is where everything comes together. Bruin resolves dependencies between assets, executes ingestors first, then runs the SQL transformation. Querying the output confirms your pipeline works end-to-end.",{"type":35,"tag":36,"props":61,"children":63},{"id":62},"instructions",[64],{"type":41,"value":65},"Instructions",{"type":35,"tag":67,"props":68,"children":70},"h3",{"id":69},"_1-run-the-pipeline",[71],{"type":41,"value":72},"1) Run the pipeline",{"type":35,"tag":44,"props":74,"children":75},{},[76],{"type":41,"value":77},"Execute the entire pipeline with a single command:",{"type":35,"tag":79,"props":80,"children":84},"pre",{"className":81,"code":82,"language":83,"meta":7,"style":7},"language-bash shiki shiki-themes github-dark","bruin run ./chess/pipeline.yml\n","bash",[85],{"type":35,"tag":86,"props":87,"children":88},"code",{"__ignoreMap":7},[89],{"type":35,"tag":90,"props":91,"children":94},"span",{"class":92,"line":93},"line",1,[95,101,107],{"type":35,"tag":90,"props":96,"children":98},{"style":97},"--shiki-default:#B392F0",[99],{"type":41,"value":100},"bruin",{"type":35,"tag":90,"props":102,"children":104},{"style":103},"--shiki-default:#9ECBFF",[105],{"type":41,"value":106}," run",{"type":35,"tag":90,"props":108,"children":109},{"style":103},[110],{"type":41,"value":111}," ./chess/pipeline.yml\n",{"type":35,"tag":44,"props":113,"children":114},{},[115],{"type":41,"value":116},"Bruin will:",{"type":35,"tag":118,"props":119,"children":120},"ol",{},[121,127,132],{"type":35,"tag":122,"props":123,"children":124},"li",{},[125],{"type":41,"value":126},"Fetch chess games for each player from the Chess.com API",{"type":35,"tag":122,"props":128,"children":129},{},[130],{"type":41,"value":131},"Fetch player profiles",{"type":35,"tag":122,"props":133,"children":134},{},[135,137,143],{"type":41,"value":136},"Run the ",{"type":35,"tag":86,"props":138,"children":140},{"className":139},[],[141],{"type":41,"value":142},"player_summary.sql",{"type":41,"value":144}," transformation to create the summary table",{"type":35,"tag":44,"props":146,"children":147},{},[148],{"type":41,"value":149},"You'll see progress output as each asset completes. You can also view the pipeline lineage to see how assets connect:",{"type":35,"tag":44,"props":151,"children":152},{},[153],{"type":35,"tag":154,"props":155,"children":158},"img",{"alt":156,"src":157},"Pipeline lineage in the CLI","/img/learn/tutorials/lineage-cli.gif",[],{"type":35,"tag":67,"props":160,"children":162},{"id":161},"_2-query-the-results",[163],{"type":41,"value":164},"2) Query the results",{"type":35,"tag":44,"props":166,"children":167},{},[168],{"type":41,"value":169},"Once the pipeline finishes, verify the data by querying DuckDB:",{"type":35,"tag":79,"props":171,"children":173},{"className":81,"code":172,"language":83,"meta":7,"style":7},"bruin query --c duckdb-default --q \"SELECT * FROM chess_playground.player_summary LIMIT 10;\"\n",[174],{"type":35,"tag":86,"props":175,"children":176},{"__ignoreMap":7},[177],{"type":35,"tag":90,"props":178,"children":179},{"class":92,"line":93},[180,184,189,195,200,205],{"type":35,"tag":90,"props":181,"children":182},{"style":97},[183],{"type":41,"value":100},{"type":35,"tag":90,"props":185,"children":186},{"style":103},[187],{"type":41,"value":188}," query",{"type":35,"tag":90,"props":190,"children":192},{"style":191},"--shiki-default:#79B8FF",[193],{"type":41,"value":194}," --c",{"type":35,"tag":90,"props":196,"children":197},{"style":103},[198],{"type":41,"value":199}," duckdb-default",{"type":35,"tag":90,"props":201,"children":202},{"style":191},[203],{"type":41,"value":204}," --q",{"type":35,"tag":90,"props":206,"children":207},{"style":103},[208],{"type":41,"value":209}," \"SELECT * FROM chess_playground.player_summary LIMIT 10;\"\n",{"type":35,"tag":44,"props":211,"children":212},{},[213,215,221,223,229,230,236,237,243,244,250,252,258],{"type":41,"value":214},"You should see a table with columns like ",{"type":35,"tag":86,"props":216,"children":218},{"className":217},[],[219],{"type":41,"value":220},"username",{"type":41,"value":222},", ",{"type":35,"tag":86,"props":224,"children":226},{"className":225},[],[227],{"type":41,"value":228},"total_games",{"type":41,"value":222},{"type":35,"tag":86,"props":231,"children":233},{"className":232},[],[234],{"type":41,"value":235},"wins",{"type":41,"value":222},{"type":35,"tag":86,"props":238,"children":240},{"className":239},[],[241],{"type":41,"value":242},"losses",{"type":41,"value":222},{"type":35,"tag":86,"props":245,"children":247},{"className":246},[],[248],{"type":41,"value":249},"draws",{"type":41,"value":251},", and ",{"type":35,"tag":86,"props":253,"children":255},{"className":254},[],[256],{"type":41,"value":257},"win_rate",{"type":41,"value":259},". Each row represents one of the chess players you configured.",{"type":35,"tag":67,"props":261,"children":263},{"id":262},"_3-explore-the-data",[264],{"type":41,"value":265},"3) Explore the data",{"type":35,"tag":44,"props":267,"children":268},{},[269],{"type":41,"value":270},"Try running additional queries to explore the ingested data:",{"type":35,"tag":79,"props":272,"children":274},{"className":81,"code":273,"language":83,"meta":7,"style":7},"bruin query --c duckdb-default --q \"SELECT username, total_games, win_rate FROM chess_playground.player_summary ORDER BY win_rate DESC;\"\n",[275],{"type":35,"tag":86,"props":276,"children":277},{"__ignoreMap":7},[278],{"type":35,"tag":90,"props":279,"children":280},{"class":92,"line":93},[281,285,289,293,297,301],{"type":35,"tag":90,"props":282,"children":283},{"style":97},[284],{"type":41,"value":100},{"type":35,"tag":90,"props":286,"children":287},{"style":103},[288],{"type":41,"value":188},{"type":35,"tag":90,"props":290,"children":291},{"style":191},[292],{"type":41,"value":194},{"type":35,"tag":90,"props":294,"children":295},{"style":103},[296],{"type":41,"value":199},{"type":35,"tag":90,"props":298,"children":299},{"style":191},[300],{"type":41,"value":204},{"type":35,"tag":90,"props":302,"children":303},{"style":103},[304],{"type":41,"value":305}," \"SELECT username, total_games, win_rate FROM chess_playground.player_summary ORDER BY win_rate DESC;\"\n",{"type":35,"tag":44,"props":307,"children":308},{},[309],{"type":41,"value":310},"You can also query the raw ingested tables directly:",{"type":35,"tag":79,"props":312,"children":314},{"className":81,"code":313,"language":83,"meta":7,"style":7},"bruin query --c duckdb-default --q \"SELECT * FROM chess_playground.chess_games LIMIT 5;\"\n",[315],{"type":35,"tag":86,"props":316,"children":317},{"__ignoreMap":7},[318],{"type":35,"tag":90,"props":319,"children":320},{"class":92,"line":93},[321,325,329,333,337,341],{"type":35,"tag":90,"props":322,"children":323},{"style":97},[324],{"type":41,"value":100},{"type":35,"tag":90,"props":326,"children":327},{"style":103},[328],{"type":41,"value":188},{"type":35,"tag":90,"props":330,"children":331},{"style":191},[332],{"type":41,"value":194},{"type":35,"tag":90,"props":334,"children":335},{"style":103},[336],{"type":41,"value":199},{"type":35,"tag":90,"props":338,"children":339},{"style":191},[340],{"type":41,"value":204},{"type":35,"tag":90,"props":342,"children":343},{"style":103},[344],{"type":41,"value":345}," \"SELECT * FROM chess_playground.chess_games LIMIT 5;\"\n",{"type":35,"tag":36,"props":347,"children":349},{"id":348},"what-just-happened",[350],{"type":41,"value":351},"What just happened",{"type":35,"tag":44,"props":353,"children":354},{},[355],{"type":41,"value":356},"You built and ran your first Bruin pipeline. Chess data was fetched from a public API, loaded into DuckDB, and transformed into a summary table - all with a single command. From here, you can add more players, create additional SQL transformations, or try connecting to a different data warehouse.",{"type":35,"tag":358,"props":359,"children":360},"style",{},[361],{"type":41,"value":362},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":17,"depth":17,"links":364},[365,366,367,372],{"id":38,"depth":17,"text":42},{"id":51,"depth":17,"text":54},{"id":62,"depth":17,"text":65,"children":368},[369,370,371],{"id":69,"depth":11,"text":72},{"id":161,"depth":11,"text":164},{"id":262,"depth":11,"text":265},{"id":348,"depth":17,"text":351},"markdown","content:tutorials:chess-duckdb:run-pipeline.md","content","tutorials/chess-duckdb/run-pipeline.md","tutorials/chess-duckdb/run-pipeline","md",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"readingTime":11,"category":12,"tags":380,"difficulty":16,"module":5,"step":17,"subSteps":18,"learnMore":381,"stepGif":26,"author":384,"body":385,"_type":373,"_id":374,"_source":375,"_file":376,"_stem":377,"_extension":378},[14,15],[382,383],{"label":21,"url":22},{"label":24,"url":25},{"name":28,"role":29,"image":30},{"type":32,"children":386,"toc":642},[387,391,395,399,403,407,411,415,436,440,461,465,471,475,479,512,552,556,560,593,597,630,634,638],{"type":35,"tag":36,"props":388,"children":389},{"id":38},[390],{"type":41,"value":42},{"type":35,"tag":44,"props":392,"children":393},{},[394],{"type":41,"value":48},{"type":35,"tag":36,"props":396,"children":397},{"id":51},[398],{"type":41,"value":54},{"type":35,"tag":44,"props":400,"children":401},{},[402],{"type":41,"value":59},{"type":35,"tag":36,"props":404,"children":405},{"id":62},[406],{"type":41,"value":65},{"type":35,"tag":67,"props":408,"children":409},{"id":69},[410],{"type":41,"value":72},{"type":35,"tag":44,"props":412,"children":413},{},[414],{"type":41,"value":77},{"type":35,"tag":79,"props":416,"children":417},{"className":81,"code":82,"language":83,"meta":7,"style":7},[418],{"type":35,"tag":86,"props":419,"children":420},{"__ignoreMap":7},[421],{"type":35,"tag":90,"props":422,"children":423},{"class":92,"line":93},[424,428,432],{"type":35,"tag":90,"props":425,"children":426},{"style":97},[427],{"type":41,"value":100},{"type":35,"tag":90,"props":429,"children":430},{"style":103},[431],{"type":41,"value":106},{"type":35,"tag":90,"props":433,"children":434},{"style":103},[435],{"type":41,"value":111},{"type":35,"tag":44,"props":437,"children":438},{},[439],{"type":41,"value":116},{"type":35,"tag":118,"props":441,"children":442},{},[443,447,451],{"type":35,"tag":122,"props":444,"children":445},{},[446],{"type":41,"value":126},{"type":35,"tag":122,"props":448,"children":449},{},[450],{"type":41,"value":131},{"type":35,"tag":122,"props":452,"children":453},{},[454,455,460],{"type":41,"value":136},{"type":35,"tag":86,"props":456,"children":458},{"className":457},[],[459],{"type":41,"value":142},{"type":41,"value":144},{"type":35,"tag":44,"props":462,"children":463},{},[464],{"type":41,"value":149},{"type":35,"tag":44,"props":466,"children":467},{},[468],{"type":35,"tag":154,"props":469,"children":470},{"alt":156,"src":157},[],{"type":35,"tag":67,"props":472,"children":473},{"id":161},[474],{"type":41,"value":164},{"type":35,"tag":44,"props":476,"children":477},{},[478],{"type":41,"value":169},{"type":35,"tag":79,"props":480,"children":481},{"className":81,"code":172,"language":83,"meta":7,"style":7},[482],{"type":35,"tag":86,"props":483,"children":484},{"__ignoreMap":7},[485],{"type":35,"tag":90,"props":486,"children":487},{"class":92,"line":93},[488,492,496,500,504,508],{"type":35,"tag":90,"props":489,"children":490},{"style":97},[491],{"type":41,"value":100},{"type":35,"tag":90,"props":493,"children":494},{"style":103},[495],{"type":41,"value":188},{"type":35,"tag":90,"props":497,"children":498},{"style":191},[499],{"type":41,"value":194},{"type":35,"tag":90,"props":501,"children":502},{"style":103},[503],{"type":41,"value":199},{"type":35,"tag":90,"props":505,"children":506},{"style":191},[507],{"type":41,"value":204},{"type":35,"tag":90,"props":509,"children":510},{"style":103},[511],{"type":41,"value":209},{"type":35,"tag":44,"props":513,"children":514},{},[515,516,521,522,527,528,533,534,539,540,545,546,551],{"type":41,"value":214},{"type":35,"tag":86,"props":517,"children":519},{"className":518},[],[520],{"type":41,"value":220},{"type":41,"value":222},{"type":35,"tag":86,"props":523,"children":525},{"className":524},[],[526],{"type":41,"value":228},{"type":41,"value":222},{"type":35,"tag":86,"props":529,"children":531},{"className":530},[],[532],{"type":41,"value":235},{"type":41,"value":222},{"type":35,"tag":86,"props":535,"children":537},{"className":536},[],[538],{"type":41,"value":242},{"type":41,"value":222},{"type":35,"tag":86,"props":541,"children":543},{"className":542},[],[544],{"type":41,"value":249},{"type":41,"value":251},{"type":35,"tag":86,"props":547,"children":549},{"className":548},[],[550],{"type":41,"value":257},{"type":41,"value":259},{"type":35,"tag":67,"props":553,"children":554},{"id":262},[555],{"type":41,"value":265},{"type":35,"tag":44,"props":557,"children":558},{},[559],{"type":41,"value":270},{"type":35,"tag":79,"props":561,"children":562},{"className":81,"code":273,"language":83,"meta":7,"style":7},[563],{"type":35,"tag":86,"props":564,"children":565},{"__ignoreMap":7},[566],{"type":35,"tag":90,"props":567,"children":568},{"class":92,"line":93},[569,573,577,581,585,589],{"type":35,"tag":90,"props":570,"children":571},{"style":97},[572],{"type":41,"value":100},{"type":35,"tag":90,"props":574,"children":575},{"style":103},[576],{"type":41,"value":188},{"type":35,"tag":90,"props":578,"children":579},{"style":191},[580],{"type":41,"value":194},{"type":35,"tag":90,"props":582,"children":583},{"style":103},[584],{"type":41,"value":199},{"type":35,"tag":90,"props":586,"children":587},{"style":191},[588],{"type":41,"value":204},{"type":35,"tag":90,"props":590,"children":591},{"style":103},[592],{"type":41,"value":305},{"type":35,"tag":44,"props":594,"children":595},{},[596],{"type":41,"value":310},{"type":35,"tag":79,"props":598,"children":599},{"className":81,"code":313,"language":83,"meta":7,"style":7},[600],{"type":35,"tag":86,"props":601,"children":602},{"__ignoreMap":7},[603],{"type":35,"tag":90,"props":604,"children":605},{"class":92,"line":93},[606,610,614,618,622,626],{"type":35,"tag":90,"props":607,"children":608},{"style":97},[609],{"type":41,"value":100},{"type":35,"tag":90,"props":611,"children":612},{"style":103},[613],{"type":41,"value":188},{"type":35,"tag":90,"props":615,"children":616},{"style":191},[617],{"type":41,"value":194},{"type":35,"tag":90,"props":619,"children":620},{"style":103},[621],{"type":41,"value":199},{"type":35,"tag":90,"props":623,"children":624},{"style":191},[625],{"type":41,"value":204},{"type":35,"tag":90,"props":627,"children":628},{"style":103},[629],{"type":41,"value":345},{"type":35,"tag":36,"props":631,"children":632},{"id":348},[633],{"type":41,"value":351},{"type":35,"tag":44,"props":635,"children":636},{},[637],{"type":41,"value":356},{"type":35,"tag":358,"props":639,"children":640},{},[641],{"type":41,"value":362},{"title":7,"searchDepth":17,"depth":17,"links":643},[644,645,646,651],{"id":38,"depth":17,"text":42},{"id":51,"depth":17,"text":54},{"id":62,"depth":17,"text":65,"children":647},[648,649,650],{"id":69,"depth":11,"text":72},{"id":161,"depth":11,"text":164},{"id":262,"depth":11,"text":265},{"id":348,"depth":17,"text":351},[653,1189],{"_path":654,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":655,"description":656,"date":10,"readingTime":657,"category":12,"tags":658,"difficulty":16,"module":5,"step":93,"subSteps":18,"learnMore":659,"author":666,"body":667,"_type":373,"_id":1186,"_source":375,"_file":1187,"_stem":1188,"_extension":378},"/tutorials/chess-duckdb/initialize-project","Initialize & Configure","Scaffold a chess data project from a template and configure your DuckDB and Chess API connections.",5,[14,15],[660,663],{"label":661,"url":662},"Bruin project structure (docs)","https://getbruin.com/docs/bruin/core-concepts/project.html",{"label":664,"url":665},"DuckDB connection reference","https://getbruin.com/docs/bruin/platforms/duckdb.html",{"name":28,"role":29,"image":30},{"type":32,"children":668,"toc":1175},[669,673,678,682,687,691,697,705,710,734,739,749,754,760,773,988,1009,1015,1028,1039,1049,1058,1064,1076,1143,1162,1166,1171],{"type":35,"tag":36,"props":670,"children":671},{"id":38},[672],{"type":41,"value":42},{"type":35,"tag":44,"props":674,"children":675},{},[676],{"type":41,"value":677},"Scaffold a new Bruin project using the built-in chess template, then configure the environment with DuckDB and Chess API connections.",{"type":35,"tag":36,"props":679,"children":680},{"id":51},[681],{"type":41,"value":54},{"type":35,"tag":44,"props":683,"children":684},{},[685],{"type":41,"value":686},"The chess template gives you a working pipeline out of the box - no API keys or database setup required. It's the fastest way to see Bruin in action and understand how projects, pipelines, and assets fit together.",{"type":35,"tag":36,"props":688,"children":689},{"id":62},[690],{"type":41,"value":65},{"type":35,"tag":67,"props":692,"children":694},{"id":693},"_1-initialize-the-project",[695],{"type":41,"value":696},"1) Initialize the project",{"type":35,"tag":44,"props":698,"children":699},{},[700],{"type":35,"tag":154,"props":701,"children":704},{"alt":702,"src":703},"bruin init command","/img/learn/tutorials/init.gif",[],{"type":35,"tag":44,"props":706,"children":707},{},[708],{"type":41,"value":709},"Run the following command to create a new project from the chess template:",{"type":35,"tag":79,"props":711,"children":713},{"className":81,"code":712,"language":83,"meta":7,"style":7},"bruin init chess\n",[714],{"type":35,"tag":86,"props":715,"children":716},{"__ignoreMap":7},[717],{"type":35,"tag":90,"props":718,"children":719},{"class":92,"line":93},[720,724,729],{"type":35,"tag":90,"props":721,"children":722},{"style":97},[723],{"type":41,"value":100},{"type":35,"tag":90,"props":725,"children":726},{"style":103},[727],{"type":41,"value":728}," init",{"type":35,"tag":90,"props":730,"children":731},{"style":103},[732],{"type":41,"value":733}," chess\n",{"type":35,"tag":44,"props":735,"children":736},{},[737],{"type":41,"value":738},"This scaffolds a complete project with the following structure:",{"type":35,"tag":79,"props":740,"children":744},{"className":741,"code":743,"language":41},[742],"language-text","chess/\n├── assets/\n│   ├── chess_games.asset.yml\n│   ├── chess_profiles.asset.yml\n│   └── player_summary.sql\n├── .bruin.yml\n├── pipeline.yml\n├── .gitignore\n└── README.md\n",[745],{"type":35,"tag":86,"props":746,"children":747},{"__ignoreMap":7},[748],{"type":41,"value":743},{"type":35,"tag":44,"props":750,"children":751},{},[752],{"type":41,"value":753},"The template includes everything you need: ingestion assets for chess data, a SQL transformation, and configuration files.",{"type":35,"tag":67,"props":755,"children":757},{"id":756},"_2-configure-the-environment",[758],{"type":41,"value":759},"2) Configure the environment",{"type":35,"tag":44,"props":761,"children":762},{},[763,765,771],{"type":41,"value":764},"Open ",{"type":35,"tag":86,"props":766,"children":768},{"className":767},[],[769],{"type":41,"value":770},".bruin.yml",{"type":41,"value":772}," in your editor. This file defines your environments and connections. Configure it with DuckDB as your local warehouse and the Chess API as your data source:",{"type":35,"tag":79,"props":774,"children":778},{"className":775,"code":776,"language":777,"meta":7,"style":7},"language-yaml shiki shiki-themes github-dark","environments:\n  default:\n    connections:\n      duckdb:\n        - name: \"duckdb-default\"\n          path: \"chess.db\"\n      chess:\n        - name: \"chess-default\"\n          players:\n            - \"FabianoCaruana\"\n            - \"Hikaru\"\n            - \"MagnusCarlsen\"\n            - \"GarryKasparov\"\n            - \"Firouzja2003\"\n","yaml",[779],{"type":35,"tag":86,"props":780,"children":781},{"__ignoreMap":7},[782,797,809,821,834,857,875,888,909,922,936,949,962,975],{"type":35,"tag":90,"props":783,"children":784},{"class":92,"line":93},[785,791],{"type":35,"tag":90,"props":786,"children":788},{"style":787},"--shiki-default:#85E89D",[789],{"type":41,"value":790},"environments",{"type":35,"tag":90,"props":792,"children":794},{"style":793},"--shiki-default:#E1E4E8",[795],{"type":41,"value":796},":\n",{"type":35,"tag":90,"props":798,"children":799},{"class":92,"line":17},[800,805],{"type":35,"tag":90,"props":801,"children":802},{"style":787},[803],{"type":41,"value":804},"  default",{"type":35,"tag":90,"props":806,"children":807},{"style":793},[808],{"type":41,"value":796},{"type":35,"tag":90,"props":810,"children":811},{"class":92,"line":11},[812,817],{"type":35,"tag":90,"props":813,"children":814},{"style":787},[815],{"type":41,"value":816},"    connections",{"type":35,"tag":90,"props":818,"children":819},{"style":793},[820],{"type":41,"value":796},{"type":35,"tag":90,"props":822,"children":824},{"class":92,"line":823},4,[825,830],{"type":35,"tag":90,"props":826,"children":827},{"style":787},[828],{"type":41,"value":829},"      duckdb",{"type":35,"tag":90,"props":831,"children":832},{"style":793},[833],{"type":41,"value":796},{"type":35,"tag":90,"props":835,"children":836},{"class":92,"line":657},[837,842,847,852],{"type":35,"tag":90,"props":838,"children":839},{"style":793},[840],{"type":41,"value":841},"        - ",{"type":35,"tag":90,"props":843,"children":844},{"style":787},[845],{"type":41,"value":846},"name",{"type":35,"tag":90,"props":848,"children":849},{"style":793},[850],{"type":41,"value":851},": ",{"type":35,"tag":90,"props":853,"children":854},{"style":103},[855],{"type":41,"value":856},"\"duckdb-default\"\n",{"type":35,"tag":90,"props":858,"children":860},{"class":92,"line":859},6,[861,866,870],{"type":35,"tag":90,"props":862,"children":863},{"style":787},[864],{"type":41,"value":865},"          path",{"type":35,"tag":90,"props":867,"children":868},{"style":793},[869],{"type":41,"value":851},{"type":35,"tag":90,"props":871,"children":872},{"style":103},[873],{"type":41,"value":874},"\"chess.db\"\n",{"type":35,"tag":90,"props":876,"children":878},{"class":92,"line":877},7,[879,884],{"type":35,"tag":90,"props":880,"children":881},{"style":787},[882],{"type":41,"value":883},"      chess",{"type":35,"tag":90,"props":885,"children":886},{"style":793},[887],{"type":41,"value":796},{"type":35,"tag":90,"props":889,"children":891},{"class":92,"line":890},8,[892,896,900,904],{"type":35,"tag":90,"props":893,"children":894},{"style":793},[895],{"type":41,"value":841},{"type":35,"tag":90,"props":897,"children":898},{"style":787},[899],{"type":41,"value":846},{"type":35,"tag":90,"props":901,"children":902},{"style":793},[903],{"type":41,"value":851},{"type":35,"tag":90,"props":905,"children":906},{"style":103},[907],{"type":41,"value":908},"\"chess-default\"\n",{"type":35,"tag":90,"props":910,"children":912},{"class":92,"line":911},9,[913,918],{"type":35,"tag":90,"props":914,"children":915},{"style":787},[916],{"type":41,"value":917},"          players",{"type":35,"tag":90,"props":919,"children":920},{"style":793},[921],{"type":41,"value":796},{"type":35,"tag":90,"props":923,"children":925},{"class":92,"line":924},10,[926,931],{"type":35,"tag":90,"props":927,"children":928},{"style":793},[929],{"type":41,"value":930},"            - ",{"type":35,"tag":90,"props":932,"children":933},{"style":103},[934],{"type":41,"value":935},"\"FabianoCaruana\"\n",{"type":35,"tag":90,"props":937,"children":939},{"class":92,"line":938},11,[940,944],{"type":35,"tag":90,"props":941,"children":942},{"style":793},[943],{"type":41,"value":930},{"type":35,"tag":90,"props":945,"children":946},{"style":103},[947],{"type":41,"value":948},"\"Hikaru\"\n",{"type":35,"tag":90,"props":950,"children":952},{"class":92,"line":951},12,[953,957],{"type":35,"tag":90,"props":954,"children":955},{"style":793},[956],{"type":41,"value":930},{"type":35,"tag":90,"props":958,"children":959},{"style":103},[960],{"type":41,"value":961},"\"MagnusCarlsen\"\n",{"type":35,"tag":90,"props":963,"children":965},{"class":92,"line":964},13,[966,970],{"type":35,"tag":90,"props":967,"children":968},{"style":793},[969],{"type":41,"value":930},{"type":35,"tag":90,"props":971,"children":972},{"style":103},[973],{"type":41,"value":974},"\"GarryKasparov\"\n",{"type":35,"tag":90,"props":976,"children":978},{"class":92,"line":977},14,[979,983],{"type":35,"tag":90,"props":980,"children":981},{"style":793},[982],{"type":41,"value":930},{"type":35,"tag":90,"props":984,"children":985},{"style":103},[986],{"type":41,"value":987},"\"Firouzja2003\"\n",{"type":35,"tag":44,"props":989,"children":990},{},[991,993,999,1001,1007],{"type":41,"value":992},"The ",{"type":35,"tag":86,"props":994,"children":996},{"className":995},[],[997],{"type":41,"value":998},"duckdb-default",{"type":41,"value":1000}," connection creates a local DuckDB file. The ",{"type":35,"tag":86,"props":1002,"children":1004},{"className":1003},[],[1005],{"type":41,"value":1006},"chess-default",{"type":41,"value":1008}," connection specifies which chess players to track - feel free to add or change the usernames.",{"type":35,"tag":67,"props":1010,"children":1012},{"id":1011},"_3-review-the-assets",[1013],{"type":41,"value":1014},"3) Review the assets",{"type":35,"tag":44,"props":1016,"children":1017},{},[1018,1020,1026],{"type":41,"value":1019},"The template includes three pre-configured assets in the ",{"type":35,"tag":86,"props":1021,"children":1023},{"className":1022},[],[1024],{"type":41,"value":1025},"assets/",{"type":41,"value":1027}," folder:",{"type":35,"tag":44,"props":1029,"children":1030},{},[1031,1037],{"type":35,"tag":1032,"props":1033,"children":1034},"strong",{},[1035],{"type":41,"value":1036},"chess_games.asset.yml",{"type":41,"value":1038}," — An ingestr asset that fetches game history for each player from the Chess.com API.",{"type":35,"tag":44,"props":1040,"children":1041},{},[1042,1047],{"type":35,"tag":1032,"props":1043,"children":1044},{},[1045],{"type":41,"value":1046},"chess_profiles.asset.yml",{"type":41,"value":1048}," — An ingestr asset that fetches player profile information including ratings and account details.",{"type":35,"tag":44,"props":1050,"children":1051},{},[1052,1056],{"type":35,"tag":1032,"props":1053,"children":1054},{},[1055],{"type":41,"value":142},{"type":41,"value":1057}," — A SQL asset that joins games and profiles to produce a summary table. This asset depends on the two ingestr assets, so Bruin knows to run it after them.",{"type":35,"tag":67,"props":1059,"children":1061},{"id":1060},"_4-examine-the-pipeline-config",[1062],{"type":41,"value":1063},"4) Examine the pipeline config",{"type":35,"tag":44,"props":1065,"children":1066},{},[1067,1068,1074],{"type":41,"value":764},{"type":35,"tag":86,"props":1069,"children":1071},{"className":1070},[],[1072],{"type":41,"value":1073},"pipeline.yml",{"type":41,"value":1075}," to see how the pipeline is configured:",{"type":35,"tag":79,"props":1077,"children":1079},{"className":775,"code":1078,"language":777,"meta":7,"style":7},"name: chess\ndefault_connections:\n  duckdb: \"duckdb-default\"\n  chess: \"chess-default\"\n",[1080],{"type":35,"tag":86,"props":1081,"children":1082},{"__ignoreMap":7},[1083,1099,1111,1127],{"type":35,"tag":90,"props":1084,"children":1085},{"class":92,"line":93},[1086,1090,1094],{"type":35,"tag":90,"props":1087,"children":1088},{"style":787},[1089],{"type":41,"value":846},{"type":35,"tag":90,"props":1091,"children":1092},{"style":793},[1093],{"type":41,"value":851},{"type":35,"tag":90,"props":1095,"children":1096},{"style":103},[1097],{"type":41,"value":1098},"chess\n",{"type":35,"tag":90,"props":1100,"children":1101},{"class":92,"line":17},[1102,1107],{"type":35,"tag":90,"props":1103,"children":1104},{"style":787},[1105],{"type":41,"value":1106},"default_connections",{"type":35,"tag":90,"props":1108,"children":1109},{"style":793},[1110],{"type":41,"value":796},{"type":35,"tag":90,"props":1112,"children":1113},{"class":92,"line":11},[1114,1119,1123],{"type":35,"tag":90,"props":1115,"children":1116},{"style":787},[1117],{"type":41,"value":1118},"  duckdb",{"type":35,"tag":90,"props":1120,"children":1121},{"style":793},[1122],{"type":41,"value":851},{"type":35,"tag":90,"props":1124,"children":1125},{"style":103},[1126],{"type":41,"value":856},{"type":35,"tag":90,"props":1128,"children":1129},{"class":92,"line":823},[1130,1135,1139],{"type":35,"tag":90,"props":1131,"children":1132},{"style":787},[1133],{"type":41,"value":1134},"  chess",{"type":35,"tag":90,"props":1136,"children":1137},{"style":793},[1138],{"type":41,"value":851},{"type":35,"tag":90,"props":1140,"children":1141},{"style":103},[1142],{"type":41,"value":908},{"type":35,"tag":44,"props":1144,"children":1145},{},[1146,1148,1153,1155,1160],{"type":41,"value":1147},"This links the pipeline to the connections you defined in ",{"type":35,"tag":86,"props":1149,"children":1151},{"className":1150},[],[1152],{"type":41,"value":770},{"type":41,"value":1154},". The ",{"type":35,"tag":86,"props":1156,"children":1158},{"className":1157},[],[1159],{"type":41,"value":1106},{"type":41,"value":1161}," tell Bruin which connection to use for each asset type.",{"type":35,"tag":36,"props":1163,"children":1164},{"id":348},[1165],{"type":41,"value":351},{"type":35,"tag":44,"props":1167,"children":1168},{},[1169],{"type":41,"value":1170},"You now have a fully configured chess data project with DuckDB as the destination and the Chess.com API as the source. The pipeline is ready to run - next, you'll execute it and query the results.",{"type":35,"tag":358,"props":1172,"children":1173},{},[1174],{"type":41,"value":362},{"title":7,"searchDepth":17,"depth":17,"links":1176},[1177,1178,1179,1185],{"id":38,"depth":17,"text":42},{"id":51,"depth":17,"text":54},{"id":62,"depth":17,"text":65,"children":1180},[1181,1182,1183,1184],{"id":693,"depth":11,"text":696},{"id":756,"depth":11,"text":759},{"id":1011,"depth":11,"text":1014},{"id":1060,"depth":11,"text":1063},{"id":348,"depth":17,"text":351},"content:tutorials:chess-duckdb:initialize-project.md","tutorials/chess-duckdb/initialize-project.md","tutorials/chess-duckdb/initialize-project",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"readingTime":11,"category":12,"tags":1190,"difficulty":16,"module":5,"step":17,"subSteps":18,"learnMore":1191,"stepGif":26,"author":1194,"body":1195,"_type":373,"_id":374,"_source":375,"_file":376,"_stem":377,"_extension":378},[14,15],[1192,1193],{"label":21,"url":22},{"label":24,"url":25},{"name":28,"role":29,"image":30},{"type":32,"children":1196,"toc":1452},[1197,1201,1205,1209,1213,1217,1221,1225,1246,1250,1271,1275,1281,1285,1289,1322,1362,1366,1370,1403,1407,1440,1444,1448],{"type":35,"tag":36,"props":1198,"children":1199},{"id":38},[1200],{"type":41,"value":42},{"type":35,"tag":44,"props":1202,"children":1203},{},[1204],{"type":41,"value":48},{"type":35,"tag":36,"props":1206,"children":1207},{"id":51},[1208],{"type":41,"value":54},{"type":35,"tag":44,"props":1210,"children":1211},{},[1212],{"type":41,"value":59},{"type":35,"tag":36,"props":1214,"children":1215},{"id":62},[1216],{"type":41,"value":65},{"type":35,"tag":67,"props":1218,"children":1219},{"id":69},[1220],{"type":41,"value":72},{"type":35,"tag":44,"props":1222,"children":1223},{},[1224],{"type":41,"value":77},{"type":35,"tag":79,"props":1226,"children":1227},{"className":81,"code":82,"language":83,"meta":7,"style":7},[1228],{"type":35,"tag":86,"props":1229,"children":1230},{"__ignoreMap":7},[1231],{"type":35,"tag":90,"props":1232,"children":1233},{"class":92,"line":93},[1234,1238,1242],{"type":35,"tag":90,"props":1235,"children":1236},{"style":97},[1237],{"type":41,"value":100},{"type":35,"tag":90,"props":1239,"children":1240},{"style":103},[1241],{"type":41,"value":106},{"type":35,"tag":90,"props":1243,"children":1244},{"style":103},[1245],{"type":41,"value":111},{"type":35,"tag":44,"props":1247,"children":1248},{},[1249],{"type":41,"value":116},{"type":35,"tag":118,"props":1251,"children":1252},{},[1253,1257,1261],{"type":35,"tag":122,"props":1254,"children":1255},{},[1256],{"type":41,"value":126},{"type":35,"tag":122,"props":1258,"children":1259},{},[1260],{"type":41,"value":131},{"type":35,"tag":122,"props":1262,"children":1263},{},[1264,1265,1270],{"type":41,"value":136},{"type":35,"tag":86,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":41,"value":142},{"type":41,"value":144},{"type":35,"tag":44,"props":1272,"children":1273},{},[1274],{"type":41,"value":149},{"type":35,"tag":44,"props":1276,"children":1277},{},[1278],{"type":35,"tag":154,"props":1279,"children":1280},{"alt":156,"src":157},[],{"type":35,"tag":67,"props":1282,"children":1283},{"id":161},[1284],{"type":41,"value":164},{"type":35,"tag":44,"props":1286,"children":1287},{},[1288],{"type":41,"value":169},{"type":35,"tag":79,"props":1290,"children":1291},{"className":81,"code":172,"language":83,"meta":7,"style":7},[1292],{"type":35,"tag":86,"props":1293,"children":1294},{"__ignoreMap":7},[1295],{"type":35,"tag":90,"props":1296,"children":1297},{"class":92,"line":93},[1298,1302,1306,1310,1314,1318],{"type":35,"tag":90,"props":1299,"children":1300},{"style":97},[1301],{"type":41,"value":100},{"type":35,"tag":90,"props":1303,"children":1304},{"style":103},[1305],{"type":41,"value":188},{"type":35,"tag":90,"props":1307,"children":1308},{"style":191},[1309],{"type":41,"value":194},{"type":35,"tag":90,"props":1311,"children":1312},{"style":103},[1313],{"type":41,"value":199},{"type":35,"tag":90,"props":1315,"children":1316},{"style":191},[1317],{"type":41,"value":204},{"type":35,"tag":90,"props":1319,"children":1320},{"style":103},[1321],{"type":41,"value":209},{"type":35,"tag":44,"props":1323,"children":1324},{},[1325,1326,1331,1332,1337,1338,1343,1344,1349,1350,1355,1356,1361],{"type":41,"value":214},{"type":35,"tag":86,"props":1327,"children":1329},{"className":1328},[],[1330],{"type":41,"value":220},{"type":41,"value":222},{"type":35,"tag":86,"props":1333,"children":1335},{"className":1334},[],[1336],{"type":41,"value":228},{"type":41,"value":222},{"type":35,"tag":86,"props":1339,"children":1341},{"className":1340},[],[1342],{"type":41,"value":235},{"type":41,"value":222},{"type":35,"tag":86,"props":1345,"children":1347},{"className":1346},[],[1348],{"type":41,"value":242},{"type":41,"value":222},{"type":35,"tag":86,"props":1351,"children":1353},{"className":1352},[],[1354],{"type":41,"value":249},{"type":41,"value":251},{"type":35,"tag":86,"props":1357,"children":1359},{"className":1358},[],[1360],{"type":41,"value":257},{"type":41,"value":259},{"type":35,"tag":67,"props":1363,"children":1364},{"id":262},[1365],{"type":41,"value":265},{"type":35,"tag":44,"props":1367,"children":1368},{},[1369],{"type":41,"value":270},{"type":35,"tag":79,"props":1371,"children":1372},{"className":81,"code":273,"language":83,"meta":7,"style":7},[1373],{"type":35,"tag":86,"props":1374,"children":1375},{"__ignoreMap":7},[1376],{"type":35,"tag":90,"props":1377,"children":1378},{"class":92,"line":93},[1379,1383,1387,1391,1395,1399],{"type":35,"tag":90,"props":1380,"children":1381},{"style":97},[1382],{"type":41,"value":100},{"type":35,"tag":90,"props":1384,"children":1385},{"style":103},[1386],{"type":41,"value":188},{"type":35,"tag":90,"props":1388,"children":1389},{"style":191},[1390],{"type":41,"value":194},{"type":35,"tag":90,"props":1392,"children":1393},{"style":103},[1394],{"type":41,"value":199},{"type":35,"tag":90,"props":1396,"children":1397},{"style":191},[1398],{"type":41,"value":204},{"type":35,"tag":90,"props":1400,"children":1401},{"style":103},[1402],{"type":41,"value":305},{"type":35,"tag":44,"props":1404,"children":1405},{},[1406],{"type":41,"value":310},{"type":35,"tag":79,"props":1408,"children":1409},{"className":81,"code":313,"language":83,"meta":7,"style":7},[1410],{"type":35,"tag":86,"props":1411,"children":1412},{"__ignoreMap":7},[1413],{"type":35,"tag":90,"props":1414,"children":1415},{"class":92,"line":93},[1416,1420,1424,1428,1432,1436],{"type":35,"tag":90,"props":1417,"children":1418},{"style":97},[1419],{"type":41,"value":100},{"type":35,"tag":90,"props":1421,"children":1422},{"style":103},[1423],{"type":41,"value":188},{"type":35,"tag":90,"props":1425,"children":1426},{"style":191},[1427],{"type":41,"value":194},{"type":35,"tag":90,"props":1429,"children":1430},{"style":103},[1431],{"type":41,"value":199},{"type":35,"tag":90,"props":1433,"children":1434},{"style":191},[1435],{"type":41,"value":204},{"type":35,"tag":90,"props":1437,"children":1438},{"style":103},[1439],{"type":41,"value":345},{"type":35,"tag":36,"props":1441,"children":1442},{"id":348},[1443],{"type":41,"value":351},{"type":35,"tag":44,"props":1445,"children":1446},{},[1447],{"type":41,"value":356},{"type":35,"tag":358,"props":1449,"children":1450},{},[1451],{"type":41,"value":362},{"title":7,"searchDepth":17,"depth":17,"links":1453},[1454,1455,1456,1461],{"id":38,"depth":17,"text":42},{"id":51,"depth":17,"text":54},{"id":62,"depth":17,"text":65,"children":1457},[1458,1459,1460],{"id":69,"depth":11,"text":72},{"id":161,"depth":11,"text":164},{"id":262,"depth":11,"text":265},{"id":348,"depth":17,"text":351},1776427878543]