डेटाबेस के साथ काम

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Liam Brannigan

Data Scientist & Polars Contributor

Polars से डेटाबेस क्वेरी करना

संकल्पनात्मक डायग्राम, जिसमें Polars एक SQL क्वेरी और uri डेटाबेस को भेज रहा है.

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Polars से डेटाबेस क्वेरी करना

संकल्पनात्मक डायग्राम, जिसमें Polars एक SQL क्वेरी डेटाबेस को भेजता है और डेटाबेस इंजन से रिजल्ट टेबल पाता है.

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

वे डेटाबेस जिन्हें Polars क्वेरी कर सकता है

वे डेटाबेस जिनके साथ Polars काम कर सकता है

  • Embedded → लोकल रन, कोई सर्वर नहीं
  • DuckDBanalytical डेटाबेस
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Building permits टेबल

SELECT *
FROM building_permits
LIMIT 5
shape: (5, 5)
| issue_date | permit_type | review_type | street_name  | work_description             |
| ---        | ---         | ---         | ---          | ---                          |
| date       | str         | str         | str          | str                          |
|------------|-------------|-------------|--------------|------------------------------|
| 2026-04-30 | Signs       | SIGN PERMIT | CLARK ST     | Wall sign install            |
| 2026-04-28 | Renovation  | SELF CERT   | OAKLEY AVE   | Add dormer to 8-unit roof    |
| 2026-03-21 | Easy Permit | EASY PERMIT | SEMINARY AVE | Parapet masonry repair       |
| 2026-03-11 | Easy Permit | EASY PERMIT | RHODES AVE   | Rebuild south chimney side   |
| 2026-03-03 | Easy Permit | EASY PERMIT | GIDDINGS ST  | Porch lintel + tuckpointing  |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

कनेक्शन URI

import polars as pl

uri = "postgresql://analyst:[email protected]:5432/buildings"
  • postgresql:// प्रोटोकॉल
  • analyst:secret यूज़रनेम और पासवर्ड
  • data.chicago.org:5432 होस्ट और पोर्ट
  • buildings डेटाबेस नाम
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

डेटाबेस को क्वेरी करना

query = """
    SELECT issue_date, permit_type
    FROM building_permits
    WHERE issue_date >= DATE '2026-01-01'
"""







Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

डेटाबेस को क्वेरी करना

query = """
    SELECT issue_date, permit_type
    FROM building_permits
    WHERE issue_date >= DATE '2026-01-01'
"""

permit_counts = (
    pl.read_database_uri(query=query, uri=uri)



)
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

डेटाबेस को क्वेरी करना

query = """
    SELECT issue_date, permit_type
    FROM building_permits
    WHERE issue_date >= DATE '2026-01-01'
"""

permit_counts = (
    pl.read_database_uri(query=query, uri=uri)
    .group_by("permit_type")
    .len()
    .sort("len", descending=True)
)
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

समूहित permit की गिनती

permit_counts
shape: (3, 2)
| permit_type                     | len |
| ---                             | --- |
| str                             | u32 |
|---------------------------------|-----|
| Easy Permit                     | 58  |
| New Construction                | 14  |
| Renovation                      | 11  |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

अपना इंजन चुनें

pl.read_database_uri(
    query=query,
    uri=uri,
    engine="connectorx",
)
  • अधिक डेटाबेस सपोर्टेड
pl.read_database_uri(
    query=query,
    uri=uri,
    engine="adbc",
)
  • सपोर्टेड डेटाबेस पर तेज़
1 https://arrow.apache.org/adbc/current/driver/status.html
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

डेटाबेस में वापस लिखना

permit_counts.write_database(



)
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

डेटाबेस में वापस लिखना

permit_counts.write_database(
    table_name="permit_type_summary",
    connection=uri,

)
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

डेटाबेस में वापस लिखना

permit_counts.write_database(
    table_name="permit_type_summary",
    connection=uri,
    if_table_exists="replace",
)
  • append
  • fail
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

DuckDB इंटिग्रेशन

import duckdb

db = duckdb.connect("permits.duckdb")


$$

  • DuckDB → Polars आउटपुट built-in
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

DuckDB इंटिग्रेशन

import duckdb

db = duckdb.connect("permits.duckdb")

result = db.sql("SELECT * FROM permit_type_summary").pl()
shape: (3, 2)
| permit_type                     | len |
| ---                             | --- |
| str                             | u32 |
|---------------------------------|-----|
| Easy Permit                     | 58  |
| New Construction                | 14  |
| Renovation                      | 11  |
Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

अभ्यास करते हैं!

Polars के साथ Data Pipelines का स्केलिंग और ऑप्टिमाइज़ेशन

Preparing Video For Download...