Import SAS files to SQL databases
Project description
sas2db
Imports SAS files to SQL databases. Supports both *.sas7bdat
and XPORT (*.xpt
) files.
Installation
Usage
SQLite3
sas2db
supports SQLite3 with no additional dependencies or setup, so we'll start with that. To import from SAS to SQLite3:
-
Run the conversion.
sas2db path/to/src.sas7bdat
-
A
src.db
(matching your input file name) will be created. -
Run SQL! Example:
$ sqlite3 src.db sqlite> .tables mydata sqlite> SELECT COUNT(*) FROM mydata; 200
For more options:
sas2db -h
Other databases
Aside from SQLite3, sas2db
supports other databases like PostgreSQL and MySQL. This support comes from SQLAlchemy under the hood, so see their list of supported "dialects".
To use another database:
- Ensure that the destination database is installed, running, created, and accessible from wherever you will be doing the import.
- Install the corresponding driver.
- On the Dialects page, click your preferred database, then under "DBAPI Support", click one of the options.
- The first DBAPI option is probably fine, though you may have to try multiple.
- Run
sas2db
, passing the database URL to the--db
argument.
Example for PostgreSQL:
# create the database
createdb -U postgres sas_import
# install driver
pip3 install psycopg2
# run the import
sas2db --db postgresql+psycopg2://postgres@localhost:5432/sas_import path/to/src.sas7bdat
Development
-
Install Pipenv.
-
Clone/download the repository.
-
From the project directory, run
pipenv install pipenv shell
-
Run PostgreSQL. Example in Docker:
docker run --rm -it -p 5432:5432 --name pg postgres
-
Create
sas2db
database in PostgreSQL for testing. Example in Docker:docker exec -it pg createdb -U postgres sas2db
-
Run tests:
python -m unittest
To use the script:
python3 sas2db/run.py path/to/src.sas7bdat
data.gov has data sets you can test with. Information about data types:
- Documentation
- SAS to Python type parsing
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.