astro-sdk
Astro SDK allows rapid and clean development of {Extract, Load, Transform} workflows using Python and SQL, powered by Apache Airflow.
File Explorer
Download Latest Version (.zip)- bug_report.md
- config.yml
- feature_request.md
- ci-astro-deploy.yml
- ci-benchmark.yaml
- ci-python-sdk.yaml
- ci-rc-test.yaml
- mlc_config.json
- reuse-wf-deploy-to-astro-cloud.yaml
- reuse-wf-trigger-dag.yaml
- runtime-image-update.yaml
- ci-test-connections.yaml
- dependabot.yml
- PULL_REQUEST_TEMPLATE.md
- example-dag.png
- example-with-async-task.png
- example-with-downstream-cleanup.png
- AEP-2-table-cleanup.md
- AEP-3-dag-generator.md
- AEP-4-astro-cli-integration-with-sql-cli.md
- AEP-template.md
- index.rst
- README.md
- get_latest_runtime_image_tag.py
- replace_dependencies.py
- requirements.txt
- trigger_dag.py
- replace_dependencies.py
- requirements.txt
- pre_commit_context_typing_compat.py
- pre_commit_readme_sync.py
- docker-compose.yaml
- Dockerfile
- local_flask_lineage_server.py
- get_file_list.rst
- check_column.rst
- check_table.rst
- append.rst
- cleanup.rst
- dataframe.rst
- drop_table.rst
- export.rst
- get_value_list.rst
- load_file.rst
- merge.rst
- raw_sql.rst
- transform.rst
- transform_file.rst
- CONTRIBUTING.md
- DEVELOPMENT.md
- RELEASE.md
- GETTING_STARTED.md
- SECURITY.md
- openlineage_1.png
- openlineage_2.png
- openlineage_facets.png
- concepts.rst
- databricks.rst
- openlineage.rst
- operators.rst
- xcom_backend.rst
- airflow-webserver-connection.png
- dag-dependencies-on-datasets.png
- defaultPath.png
- nativePath.png
- select-dag-grid-view.png
- snowflake-classic-console.png
- task-logs.png
- trigger-dag.png
- unpause-dag.png
- aep
- CHANGELOG.md
- conf.py
- configurations.rst
- index.rst
- make.bat
- Makefile
- supported_databases.rst
- supported_file.rst
- homes.csv
- homes2.csv
- agg_homes.sql
- clean_homes.sql
- combine_homes.sql
- transform.sql
- __init__.py
- calculate_popular_movies.py
- calculate_popular_movies_by_genre.py
- calculate_top_2_movies_using_dataframe.py
- example_amazon_s3_postgres.py
- example_amazon_s3_postgres_load_and_save.py
- example_amazon_s3_snowflake_transform.py
- example_append.py
- example_bigquery_dynamic_map_task.py
- example_check_column.py
- example_check_table.py
- example_dataframe_api.py
- example_datasets.py
- example_duckdb.py
- example_duckdb_load_transform_dataframe_and_save.py
- example_dynamic_task_template.py
- example_google_bigquery_gcs_load_and_save.py
- example_load_file.py
- example_merge.py
- example_mssql_transform.py
- example_snowflake_partial_table_with_append.py
- example_sqlite_load_transform.py
- example_transform.py
- example_transform_file.py
- container.mk
- local.mk
- __init__.py
- datasets.py
- __init__.py
- astro_custom_backend.py
- serializer.py
- __init__.py
- redshift.py
- autoloader.py.jinja2
- copy_into.py.jinja2
- load_file_to_delta.py.jinja2
- load_secrets.py.jinja2
- __init__.py
- load_file_job.py
- load_file_python_code_generator.py
- __init__.py
- api_utils.py
- delta.py
- load_options.py
- __init__.py
- bigquery.py
- __init__.py
- base.py
- duckdb.py
- mssql.py
- mysql.py
- postgres.py
- snowflake.py
- sqlite.py
- __init__.py
- load_options.py
- pandas.py
- __init__.py
- s3.py
- __init__.py
- wasb.py
- __init__.py
- gcs.py
- gdrive.py
- __init__.py
- base.py
- ftp.py
- http.py
- local.py
- sftp.py
- __init__.py
- files.py
- __init__.py
- base.py
- csv.py
- excel.py
- json.py
- ndjson.py
- parquet.py
- xls.py
- xlsx.py
- __init__.py
- base.py
- __init__.py
- facets.py
- check_column.py
- check_table.py
- __init__.py
- append.py
- base_decorator.py
- base_operator.py
- cleanup.py
- dataframe.py
- drop.py
- export_file.py
- export_table_to_file.py
- export_to_file.py
- load_file.py
- merge.py
- raw_sql.py
- transform.py
- upstream_task_mixin.py
- __init__.py
- table.py
- __init__.py
- functools.py
- typing.py
- __init__.py
- dataframe.py
- load.py
- path.py
- table.py
- __init__.py
- constants.py
- exceptions.py
- options.py
- query_modifier.py
- settings.py
- table.py
- __init__.py
- test_datasets.py
- benchmark_gcs_to_big_query.py
- evaluate_load_file.py
- job.yaml
- namespace.yaml
- nfs-server-gke.yaml
- nfs-server-service.yaml
- persistent-volume-claims.yaml
- persistent-volume.yaml
- postgres.yaml
- postgres_svc.yaml
- backend.tf
- main.tf
- vars.tf
- versions.tf
- __init__.py
- analyse.py
- config-ci.json
- config-sample.json
- config-weekly.json
- config.json
- datasets.md
- debug.yaml
- Dockerfile
- download_datasets.sh
- Makefile
- README.md
- results.md
- run.py
- run.sh
- settings.py
- synthetic_csv_generator.py
- synthetic_ndjson_generator.py
- synthetic_parquet_generator.py
- wait_for_completion.sh
- __init__.py
- test_serializer.py
- sample.csv
- example.csv
- column_name_mixed_case.json
- covid_overview.csv
- data_validation.csv
- delimiter_dollar.csv
- github_multi_level_nested.ndjson
- github_single_level_nested.ndjson
- homes.csv
- homes2.csv
- homes3.csv
- homes_append.csv
- homes_main.csv
- homes_merge_1.csv
- homes_merge_2.csv
- homes_pattern_1.csv
- homes_pattern_2.csv
- homes_upper.csv
- homes_uppercase.csv
- imdb.csv
- imdb_v2.csv
- order_check_nrows.ndjson
- sample.csv
- sample.json
- sample.ndjson
- sample.parquet
- sample.xlsx
- sample_part2.csv
- sample_part2_without_unicode.csv
- sample_without_unicode.csv
- sample_without_unicode.json
- sample_without_unicode.ndjson
- sample_without_unicode.parquet
- __init__.py
- test_base_database.py
- test_bigquery.py
- test_duckdb.py
- test_mssql.py
- test_mysql.py
- test_redshift.py
- test_snowflake.py
- test_sqlite.py
- __init__.py
- foo.txt
- test_load_file_job.py
- test_load_python_code_generator.py
- __init__.py
- test_databricks_api_util.py
- __init__.py
- test_pandas.py
- __init__.py
- test_ftp.py
- test_gcs.py
- test_google_drive.py
- test_http.py
- test_local.py
- test_location_base.py
- test_s3.py
- test_sftp.py
- test_wasb.py
- __init__.py
- test_files.py
- __init__.py
- test_base.py
- test_csv.py
- test_excel.py
- test_json.py
- test_ndjson.py
- test_parquet.py
- test_type_base.py
- __init__.py
- test_file.py
- __init__.py
- test_check_column.py
- __init__.py
- test_append.py
- test_base_decorator.py
- test_cleanup.py
- test_dataframe.py
- test_export_file.py
- test_load_file.py
- test_merge.py
- test_run_raw_sql.py
- test_transform.py
- utils.py
- __init__.py
- test_table.py
- __init__.py
- airflow.py
- test_dataframe.py
- test_path.py
- test_table.py
- __init__.py
- modified_constraint_file.txt
- test_constants.py
- test_options.py
- test_settings.py
- astronomer_migration_dag.py
- deploy.sh
- Dockerfile
- Dockerfile.single_worker
- example_snowflake_cleanup.py
- master_dag.py
- master_dag_single_worker.py
- __init__.py
- test_databricks_api_util.py
- test_delta.py
- test_load.py
- __init__.py
- test_all_databases.py
- test_base_database.py
- test_bigquery.py
- test_mssql.py
- test_mysql.py
- test_postgres.py
- test_redshift.py
- test_snowflake.py
- test_sqlite.py
- __init__.py
- test_extractor.py
- __init__.py
- test_ftp.py
- test_gcs.py
- test_google_drive.py
- test_http.py
- test_s3.py
- test_sftp.py
- test_wasb.py
- __init__.py
- __init__.py
- __init__.py
- test_file.py
- __init__.py
- test_check_column.py
- test_check_table.py
- __init__.py
- test.sql
- test_mssql.sql
- test_mysql.sql
- test_postgres_transform.py
- test_transform.py
- __init__.py
- test.sql
- test_append.py
- test_cleanup.py
- test_dataframe.py
- test_drop_table.py
- test_export_file.py
- test_load_file.py
- test_merge.py
- test_raw_sql.py
- test_snowflake_merge_func.py
- test_upstream_tasks.py
- utils.py
- __init__.py
- test_table.py
- __init__.py
- test_table.py
- __init__.py
- conftest.py
- data
- integration_test_dag.py
- test_example_dags.py
- .dockerignore
- .env-template
- .test_durations
- CODE_OF_CONDUCT.md
- conftest.py
- LICENSE
- Makefile
- noxfile.py
- pyproject.toml
- README.md
- Tiltfile
- Dockerfile
- init-db.sh
- sample.csv
- example.csv
- covid_overview.csv
- github_multi_level_nested.ndjson
- github_single_level_nested.ndjson
- homes.csv
- homes2.csv
- homes3.csv
- homes_append.csv
- homes_main.csv
- homes_merge_1.csv
- homes_merge_2.csv
- homes_pattern_1.csv
- homes_pattern_2.csv
- homes_upper.csv
- imdb.csv
- imdb_v2.csv
- sample.csv
- sample.json
- sample.ndjson
- sample.parquet
- sample_part2.csv
- .deepsource.toml
- .dockerignore
- .gitignore
- .pre-commit-config.yaml
- .readthedocs.yaml
- CODE_OF_CONDUCT.md
- codecov.yml
- CODEOWNERS
- LICENSE
- README.md
- ruff.toml
π Installation Guide
git clone https://github.com/astronomer/astro-sdk
Downloads the entire project code from GitHub to your computer.
cd astro-sdk
Moves into the project folder you just downloaded.
2. Official Install Script
Easy Recommended- Python 3 Python is required to use pip.
pip install astro-sdk-python
Installs the package published on PyPI directly β no need to clone the source.
pip install astro-sdk-python[amazon,google,snowflake,postgres]
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
3. Docker
Easy- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker compose -f python-sdk/dev/docker-compose.yaml up -d --build
Runs the command against the services defined in the compose file.
4. Python
Easypip install astro-sdk-python
Installs the package published on PyPI directly β no need to clone the source.
pip install astro-sdk-python[amazon,google,snowflake,postgres]
Installs the package published on PyPI directly β no need to clone the source.
Pulled directly from this repo's README.
5. Make
Medium- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
cd python-sdk
This project's files live in a subfolder, so move into it first.
make
Compiles the code based on the generated build configuration to produce an executable.
