将SAS文件导入到SQL数据库

sas2db的Python项目详细描述


sas2dbPyPI version

SAS文件导入到sql数据库。同时支持*.sas7bdat和xport(*.xpt)文件。

安装

不需要SAS软件本身。

  1. 安装Python 3pip

  2. 安装软件包。

    pip3 install sas2db
    

用法

sqlite3

sas2db支持SQLite3,不需要额外的依赖项或设置,因此我们将从这个开始。要从SAS导入到sqlite3:

  1. 运行转换。

    sas2db path/to/src.sas7bdat
    
  2. 将创建一个src.db(匹配您的输入文件名)。

  3. 运行SQL!示例:

    $ sqlite3 src.db
    sqlite> .tables
    mydata
    sqlite> SELECT COUNT(*) FROM mydata;
    200
    

更多选项:

sas2db -h

其他数据库

除了sqlite3之外,sas2db还支持其他数据库,如postgresql和mysql。这种支持来自引擎盖下的SQLAlchemy,请参见their list of supported "dialects"

使用另一个数据库:

  1. 确保目标数据库已安装、运行、创建,并且可以从执行导入的任何位置访问。
  2. 安装相应的驱动程序。
    • Dialects页面上,单击首选数据库,然后在“dbapi支持”下,单击其中一个选项。
    • 第一个dbapi选项可能很好,不过您可能需要尝试多个。
  3. 运行sas2db,将database URL传递给--db参数。

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

开发

  1. 安装Pipenv

  2. 克隆/下载存储库。

  3. 从项目目录中,运行

    pipenv install --dev
    pipenv shell
    
  4. 运行postgresql。Docker中的示例:

    docker run --rm -it -p 5432:5432 --name pg postgres
    
  5. 在postgresql中创建sas2db数据库进行测试。Docker中的示例:

    docker exec -it pg createdb -U postgres sas2db
    
  6. 运行测试:

    python -m unittest
    

使用脚本:

python3 sas2db/run.py path/to/src.sas7bdat

data.gov has data sets you can test with.

更多信息

用于向/从SAS导入/导出数据的其他工具:

有关数据类型的信息:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓 studio安装的java Unity本机广告   java如何将映射转换为对象   java我试图使用rest控制器从h2数据库中检索记录,但它说没有数据集   反思为什么会抛出java。lang.InstanceException?   在opensuse中找不到Java/javac   java为Android上的谷歌地图添加了5900多个标记。如何有效地做   java如何在if语句中使用循环   java如何在JPA(Hibernate)中映射一对多关系和复合主键?   如何在Java中读取和写入外部进程?   Java线程。睡眠时间最短   java使用EclipseGradle插件如何离线托管和使用依赖项(库jar文件)   java为什么虚拟引用在排队时没有被清除?   java无法理解如何创建用于响铃报警的取消按钮   java解析不应通过注入容器错误发生   java Toast或ProgressDialog不显示   java在自定义对象上使用优先级队列的更好方法   java格式的。wmv文件。(或者任何视频文件都很好)   从页面调用另一个侦听器后,不会调用java JSF<f:ajax>侦听器   java注释ConfigApplicationContext不能多次刷新有什么原因吗?