Skip to main content

DashIngest — Databricks Library

CI PyPI License

Part of the Dashlibs suite — Databricks libraries built for business users.

ADF-style data ingestion: pick a source kind, fill a few plain fields — no hand-written abfss:// URIs or JDBC connection strings — and run.

Installation

%pip install dash-ingest

Quick Start

import dashingest
dashingest.launch()   # Opens interactive UI in your Databricks notebook

Or drive it directly from code:

from dashingest import ADLSSource, IngestTarget, run_ingestion

source = ADLSSource(storage_account="myacct", container="raw", path="sales/2024.csv")
target = IngestTarget(table="main.bronze.sales", write_mode="merge", merge_keys=["order_id"])
result = run_ingestion(source, target)
result.display()

Sources

Kind What you provide
Databricks Volume catalog, schema, volume, path
ADLS Gen2 storage account, container, path
Amazon S3 bucket, path
DBFS path
Database (JDBC) engine (postgres/mysql/sqlserver/oracle/snowflake), host, database, table or query
REST API URL, optional JSON path to the records

File format (csv/json/parquet/excel/avro/orc/text) is inferred from the path's extension if not set explicitly — most ingestions need zero format options.

File format readers

Each format has its own options dataclass with real per-format defaults — not a generic options dict. Excel gets the most coverage, since vanilla Spark has no native Excel reader and a raw file path alone doesn't tell it which sheet to read, where the header starts, or whether the workbook is password-protected:

from dashingest import ExcelReaderOptions, VolumeSource

source = VolumeSource(
    catalog="main", schema_name="bronze", volume="landing",
    path="regional_sales.xlsx",
    reader_options=ExcelReaderOptions(
        sheet_name="Q1 Actuals",
        header_row=2,              # skips two title/banner rows above the header
        workbook_password="secret",  # optional
    ),
)

Set sheet_names=["Jan", "Feb", "Mar"] instead of sheet_name to read and stack several same-shaped sheets into one DataFrame — the common "one tab per month" spreadsheet layout.

CsvReaderOptions (delimiter, quote/escape chars, encoding, null markers, date/timestamp formats, parse mode), JsonReaderOptions, ParquetReaderOptions/OrcReaderOptions (schema merging), and TextReaderOptions are also available — pass any of them via reader_options= on a source.

Write modes

append · overwrite · merge (upsert into Delta by merge_keys, with schema evolution where the runtime supports it).

Test Connection & Preview

Both the UI and the API let you check a source before committing to a full run — the same pattern ADF's linked-service "Test Connection" and dataset "Data preview" use:

from dashingest import test_connection, preview

test_connection(source).display()   # reachability/credentials check, no data read
preview(source, limit=10)            # pandas DataFrame of the first N rows

test_connection runs a lightweight check per source kind: SELECT 1 for databases, an HTTP request for REST APIs, a filesystem existence check for Volumes/ADLS/S3/DBFS (no dbutils needed — it uses Spark's Hadoop filesystem API directly, so it works the same way across all of them).

Advanced database & REST options

DatabaseSource supports SSL, JDBC fetch size, parallel reads (split a large table by partition_column across num_partitions), and a raw connection_properties escape hatch:

from dashingest import DatabaseSource

source = DatabaseSource(
    engine="postgresql", host="db.internal", database="analytics",
    table="events", user="svc", password="...",
    ssl=True, num_partitions=8, partition_column="id",
    lower_bound=0, upper_bound=10_000_000,
)

RestApiSource supports auth (bearer / api_key / basic) and pagination (page_param or cursor-based, up to max_pages):

from dashingest import RestApiSource

source = RestApiSource(
    url="https://api.example.com/records",
    auth_type="bearer", bearer_token="...",
    pagination="cursor", cursor_json_path="meta.next_cursor", max_pages=50,
)

Part of Dashlibs

Library Purpose
dash-dq Data Quality
dash-synthetic Synthetic Data Generation
dash-ml ML Lifecycle Management
dash-ingest Data Ingestion
dash-gov Data Governance
dash-ontology Ontology & Lineage for AI

License

Apache 2.0

Metadata

Release files for dash-ingest 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dash-ingest 0.1.8
File Size Uploaded
dash_ingest-0.1.8.tar.gz 77.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dash-ingest 0.1.8
File Interpreter ABI Platform
dash_ingest-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 94.9 kB

Release files / dash_ingest-0.1.8.tar.gz

Download URL dash_ingest-0.1.8.tar.gz
Size 77.2 kB
Tags Source
SHA-256 checksum
How to use checksums
77f8aaf9e1d72ab04f31c803885bf22c9a1c85e3fdd706f6129b10a53e189655
BLAKE2b-256 checksum
How to use checksums
ed8a8759b34b3dbf87373d2a663f845ad8d047e34a1d0b5e69555ee2154cded1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release files / dash_ingest-0.1.8-py3-none-any.whl

Download URL dash_ingest-0.1.8-py3-none-any.whl
Size 17.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3252ab5d77613599e40bdfd4a9f24621cf775e3f585bb320d22b9c625be2a8b8
BLAKE2b-256 checksum
How to use checksums
9e3b0e501ee94d8f16098e07f34da240e585bdbf089535d8320785cf16baf740
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 21, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.11

2 release files

0.1.9

2 release files

This release

0.1.8 This release

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page