<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn" -->

---
title: Polars in Aggregate: Polars Cloud, Streaming engine, and...
description: Polars Cloud has officially launched, offering a unified API for processing data at any scale with automatic infrastructure management. The release recap also...
canonical: https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Polars in Aggregate: Polars Cloud, Streaming engine, and New Data Types | daily.dev
og:description: Polars Cloud has officially launched, offering a unified API for processing data at any scale with automatic infrastructure management. The release recap also...
og:url: https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn
og:image: https://api.daily.dev/og/posts/BLOG18Kxn.png
og:image:alt: Polars in Aggregate: Polars Cloud, Streaming engine, and New Data Types
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Polars in Aggregate: Polars Cloud, Streaming engine, and New Data Types

**[Polars Blog](https://daily.dev/sources/polars)** · 10 min read · 0 upvotes · 0 comments

## Summary

Polars Cloud has officially launched, offering a unified API for processing data at any scale with automatic infrastructure management. The release recap also covers a next-generation streaming engine built on morsel-driven parallelism (now recommended for most queries and soon to become default), an overhaul of the Categorical type replacing the global StringCache with scoped Categories objects, stabilization of the Decimal type with a fixed-scale design, introduction of the Int128 type, a new lf.collect_batches() generator method, Common Subplan Elimination in collect_all(), and a new Polars Runtimes system that deterministically selects CPU-optimized builds (polars-runtime-32/64/compat) to replace the old separate PyPI packages.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://pola.rs/posts/polars-in-aggregate-dec25>

## Questions this post answers

### How do I run a Polars query using the new streaming engine?

Use lf.sink_*() methods which stream results directly to disk and run on the streaming engine by default, set pl.Config.set_engine_affinity("streaming") at the start of your code to run everything on it, or call lf.collect(engine="streaming") explicitly. Unsupported query parts silently fall back to the in-memory engine, and the streaming engine is now the recommended default for most workloads.

_daily.dev helps engineers track engine changes like this before they migrate production Polars pipelines._

### How does the Decimal type in Polars handle scale during multiplication, and why doesn't it match traditional SQL behavior?

Polars Decimal uses a fixed-scale design instead of the traditional SQL approach where scale expands during operations (scale_1 + scale_2). Since Decimal uses 128 bits with a maximum precision of 38 digits, multiplying two columns with scale 20 under the SQL approach would produce scale 40 and overflow; the fixed-scale design avoids this and keeps results like currency at 2 decimal places automatically.

_Developers choosing numeric types for financial data can follow decimal handling changes like this on daily.dev._

### What is the Int128 type in Polars and how does its range compare to Int64?

Int128 is a new integer type in Polars that doubles the memory footprint of Int64 but supports a range roughly 18 quintillion times larger, spanning from -1.7e+38 to 1.7e+38 (2^127). It complements the newly stabilized Decimal type for cases requiring massive integer ranges beyond what Int64 can represent.

_daily.dev keeps developers picking data types for large-scale pipelines current on library changes like this._

## Similar posts on daily.dev

- [Decathlon Switches to Polars to Optimize Data Pipelines and Infrastructure Costs](https://daily.dev/posts/decathlon-switches-to-polars-to-optimize-data-pipelines-and-infrastructure-costs-5gcd7b1tn) · InfoQ · 70 upvotes · 0 comments
- [A new streaming backend for the Polars GPU engine](https://daily.dev/posts/a-new-streaming-backend-for-the-polars-gpu-engine-m46jtgep2) · Polars Blog · 0 upvotes · 0 comments
- [Announcing Polars 1.44](https://daily.dev/posts/announcing-polars-1-44-nyx9iebfn) · Polars Blog · 1 upvotes · 0 comments

---

Tags: [#python](https://daily.dev/tags/python), [#data-engineering](https://daily.dev/tags/data-engineering), [#polars](https://daily.dev/tags/polars)

[View this post on daily.dev](https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Polars in Aggregate: Polars Cloud, Streaming engine, and New Data Types","url":"https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn"},"datePublished":"2026-08-16T08:53:15.050Z","dateModified":"2026-08-16T08:54:53.903Z","description":"Polars Cloud has officially launched, offering a unified API for processing data at any scale with automatic infrastructure management. The release recap also...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5434e7bec80a8efdf8c46b2f6f76f432?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5434e7bec80a8efdf8c46b2f6f76f432?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Polars Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Polars Blog","logo":"https://media.daily.dev/image/upload/s--xo60W3UW--/c_limit,w_256/f_auto,q_auto/v1786870390/logos/polars?_a=BAMAMicg0","url":"https://daily.dev/sources/polars"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"python,data-engineering,polars","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Polars Blog","item":"https://daily.dev/sources/polars"},{"@type":"ListItem","position":3,"name":"Polars in Aggregate: Polars Cloud, Streaming engine, and New Data Types"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/polars-in-aggregate-polars-cloud-streaming-engine-and-new-data-types-blog18kxn#faq","mainEntity":[{"@type":"Question","name":"How do I run a Polars query using the new streaming engine?","acceptedAnswer":{"@type":"Answer","text":"Use lf.sink_*() methods which stream results directly to disk and run on the streaming engine by default, set pl.Config.set_engine_affinity(\"streaming\") at the start of your code to run everything on it, or call lf.collect(engine=\"streaming\") explicitly. Unsupported query parts silently fall back to the in-memory engine, and the streaming engine is now the recommended default for most workloads. daily.dev helps engineers track engine changes like this before they migrate production Polars pipelines."}},{"@type":"Question","name":"How does the Decimal type in Polars handle scale during multiplication, and why doesn't it match traditional SQL behavior?","acceptedAnswer":{"@type":"Answer","text":"Polars Decimal uses a fixed-scale design instead of the traditional SQL approach where scale expands during operations (scale_1 + scale_2). Since Decimal uses 128 bits with a maximum precision of 38 digits, multiplying two columns with scale 20 under the SQL approach would produce scale 40 and overflow; the fixed-scale design avoids this and keeps results like currency at 2 decimal places automatically. Developers choosing numeric types for financial data can follow decimal handling changes like this on daily.dev."}},{"@type":"Question","name":"What is the Int128 type in Polars and how does its range compare to Int64?","acceptedAnswer":{"@type":"Answer","text":"Int128 is a new integer type in Polars that doubles the memory footprint of Int64 but supports a range roughly 18 quintillion times larger, spanning from -1.7e+38 to 1.7e+38 (2^127). It complements the newly stabilized Decimal type for cases requiring massive integer ranges beyond what Int64 can represent. daily.dev keeps developers picking data types for large-scale pipelines current on library changes like this."}}]}
```

