Registry / data / amundsen-databuilder

amundsen-databuilder

JSON →
library7.5.1pypypi✓ verified 85d ago

Amundsen Databuilder is the data ingestion library for Amundsen, a data discovery and metadata platform. It provides Extractors, Transformers, and Loaders (ETL framework) to pull metadata from various sources (Snowflake, Hive, Postgres, etc.) and push it into a search index (Elasticsearch) and a graph database (Neo4j or Apache Gremlin). Current version is 7.5.1, compatible with Python >=3.8. Releases are frequent, roughly monthly.

pip install amundsen-databuilder
INSTALL
IMPORT
SIG · AMUNDSEN-DATABUILD
A
amundsen-databuilder
datapythonv7.5.1
Install
16.8s avg
Import
1301ms
Disk
227MB
Pass rate
8/ 10
Env Coverage8 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v7.5.1 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
glibc
py 3.10
✓ —
✓ 15.3s
py 3.11
✓ —
✓ 14.8s
py 3.12
✓ —
✓ 19.1s
py 3.13
✕ build_error
✕ build_error
py 3.9
✓ —
✓ 17.8s
227MB installed
● package 227MB
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

SnowflakeExtractor
from databuilder.extractor.snowflake_metadata_extractor import SnowflakeMetadataExtractor
from databuilder.extractor.snowflake_extractor import SnowflakeExtractor
Correct class name is SnowflakeMetadataExtractor, not SnowflakeExtractor. Common mistake: many users try to import SnowflakeExtractor which does not exist.
Neo4jCsvLoader
from databuilder.loader.file_system_neo4j_csv_loader import FsNeo4jCsvLoader
from databuilder.loader.neo4j_csv_loader import Neo4jCsvLoader
The correct class is FsNeo4jCsvLoader. The module is file_system_neo4j_csv_loader.
GenericExtractor
from databuilder.extractor.generic_extractor import GenericExtractor

Minimal job that extracts metadata from Snowflake and loads it into Neo4j via CSV. Ensure SNOWFLAKE_* and NEO4J_* environment variables are set.

import logging import os from databuilder.job.job import DefaultJob from databuilder.task.task import DefaultTask from databuilder.extractor.snowflake_metadata_extractor import SnowflakeMetadataExtractor from databuilder.loader.file_system_neo4j_csv_loader import FsNeo4jCsvLoader from databuilder.publisher.neo4j_csv_publisher import Neo4jCsvPublisher from databuilder.transformer.base_transformer import NoopTransformer logging.basicConfig(level=logging.INFO) # Configuration for Snowflake extractor extractor = SnowflakeMetadataExtractor() extractor.init( { SnowflakeMetadataExtractor.ACCOUNT_KEY: os.environ.get('SNOWFLAKE_ACCOUNT', ''), SnowflakeMetadataExtractor.DATABASE_KEY: os.environ.get('SNOWFLAKE_DATABASE', ''), SnowflakeMetadataExtractor.SCHEMA_KEY: os.environ.get('SNOWFLAKE_SCHEMA', ''), SnowflakeMetadataExtractor.USER_KEY: os.environ.get('SNOWFLAKE_USER', ''), SnowflakeMetadataExtractor.PASSWORD_KEY: os.environ.get('SNOWFLAKE_PASSWORD', ''), SnowflakeMetadataExtractor.WAREHOUSE_KEY: os.environ.get('SNOWFLAVE_WAREHOUSE', ''), } ) loader = FsNeo4jCsvLoader() loader.init({}) publisher = Neo4jCsvPublisher() publisher.init( { Neo4jCsvPublisher.NEO4J_END_POINT_KEY: os.environ.get('NEO4J_ENDPOINT', 'bolt://localhost:7687'), Neo4jCsvPublisher.NEO4J_USER: os.environ.get('NEO4J_USER', 'neo4j'), Neo4jCsvPublisher.NEO4J_PASSWORD: os.environ.get('NEO4J_PASSWORD', 'test'), Neo4jCsvPublisher.NEO4J_MAX_CONN_LIFE_TIME_SEC: 1000, Neo4jCsvPublisher.JOB_PUBLISHER_TASK: 'test', } ) task = DefaultTask( extractor=extractor, loader=loader, transformer=NoopTransformer(), ) job = DefaultJob( task=task, publisher=publisher, ) job.launch()
Debug
Known issues
breakingBreaking change in version 7.0.0: renamed many extractors and loaders. SnowflakeExtractor became SnowflakeMetadataExtractor. Also removed old deprecated modules like databuilder.extractor.hive_table_metadata_extractor.
fix
Update imports to new names. Check release notes for full list of renamed classes.
affects: >=7.0.0
breakingThe FsNeo4jCsvLoader now requires a file system directory; previously it wrote to temp. Must call init() with proper config or it may fail.
fix
Pass loader.init({'base_directory': '/tmp/amundsen'}) or similar.
affects: >=7.0.0
gotchaCommon mistake: using the wrong Neo4j CSV loader class name. Users often import 'Neo4jCsvLoader' or 'CsvLoader', but correct class is 'FsNeo4jCsvLoader'.
fix
Use 'from databuilder.loader.file_system_neo4j_csv_loader import FsNeo4jCsvLoader'.
affects: all
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'databuilder.extractor.snowflake_extractor'
Old import path; renamed in 7.0.0.
fix
Use 'from databuilder.extractor.snowflake_metadata_extractor import SnowflakeMetadataExtractor'.
TypeError: __init__() got an unexpected keyword argument 'neo4j_endpoint'
Neo4j publisher config keys changed; they no longer accept direct keyword args.
fix
Use publisher.init() with a dictionary of config keys, e.g., publisher.init({Neo4jCsvPublisher.NEO4J_END_POINT_KEY: 'bolt://...'}).
Upgrade
Version history
7.5.1latest on PyPI · released Aug 14, 2024
Audit
Dependencies

No dependency data recorded yet.

Agent activity
41 hits · last 30 days
node
34
Amazon
1
OpenAI (training)
1
Resources
amundsen-databuilder — pip install amundsen-databuilder · libregistry