【问题标题】:anybody has a sample code to import a SAS table into postgresql任何人都有将 SAS 表导入 postgresql 的示例代码
【发布时间】:2018-04-15 19:52:51
【问题描述】:

我希望将 SAS 表 sas7dat 格式导入 postgresql。还是我需要将表格转换为 csv 然后导入? 谢谢!

【问题讨论】:

  • 如果您拥有“SAS/ACCESS Interface to PostgreSQL”产品许可,您可以使用Proc COPY。我不知道可以本地读取 SAS 数据集的 PostgreSQL 例程。
  • 谢谢!!我想我必须走很长的路。 :P

标签: postgresql sas


【解决方案1】:

如果您的组织中已经拥有 SAS 和 Postgres,那么您可能拥有到 Postgres 的 SAS/Access 接口。你可以使用 proc setinit;run;检查您是否具有 Postgres 的 SAS/Access 接口。如果您有 SAS/ACCESS,那么您可以使用 libname 方法,如下例所示。

/* 为 postgres 定义 libname*/

libname A1 postgres server=mysrv1 port=5432 user=myusr1 password='mypwd1' database=mydb1;

/* 定义 SAS 表的库名*/

 libname mydata '/folders/myfolders/';

/* 然后使用 datastep 或 SQL 来创建你的 postgress 表*/

 data A1.yourtable;
  set mydata.yourtable;
  run;

如果您没有 SAS/ACCESS 到 postgres,那么您可能需要分两步完成。(但请检查您的公司是否有任何可用的 etl 工具)

首先您必须使用 proc 导出到 CSV。请看下面的链接

Efficiently convert a SAS dataset into a CSV
然后将 csv 数据移动到 postgres
How to import CSV file data into a PostgreSQL table?

【讨论】:

  • 非常感谢!但遗憾的是,我的公司或我的 sas 服务器没有 sas/postgres 访问接口。
  • 贵公司有没有etl工具
【解决方案2】:

我找到了另一个解决方案,它需要 Python 将 sas7bdat 文件导入 Postgres。

import pandas as pd
from sqlalchemy import create_engine

engine = create_engine("postgresql://user:password@localhost:5432/databasename", echo=False)
df = pd.read_sas('sas7bdat file location')
df.to_sql('tablename', con=engine, if_exists='replace')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多