我想导入一个sas 7 dat格式的SAS表到postgresql。或者我需要把表转换成csv然后导入吗?谢谢!
zlhcx6iw1#
如果您的组织中已经有SAS和Postgres,那么您可能有到Postgres的SAS/Access接口。您可以使用proc setinit;运行;来检查您是否有SAS/Access接口到Postgres。如果您有SAS/ACCESS,那么您可以使用libname方法,如下例所示。/* 为postgres定义库名称 */
libname A1 postgres server=mysrv1 port=5432 user=myusr1 password='mypwd1' database=mydb1;
{1}/{2}定义SAS表的库名称{3}/{4}
libname mydata '/folders/myfolders/';
/* 然后使用datastep或SQL创建您的postgress表 */
data A1.yourtable; set mydata.yourtable; run;
如果你没有SAS/ACCESS到postgres那么你可能要做2个步骤.(但检查你是否有任何ETL工具可在您的公司)首先你必须使用proc导出到CSV.见下面的链接Efficiently convert a SAS dataset into a CSV然后将csv数据移动到postgresHow to import CSV file data into a PostgreSQL table?
9o685dep2#
我找到了另一个解决方案,它需要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')
ctehm74n3#
另一个选项可能是将SAS文件导入R,然后使用dbWrite将数据从R写入SQL数据库。就我个人而言,我发现将R中的数据放入SQL数据库比将文本文件中的数据放入SQL数据库要容易。请参阅https://www.statology.org/import-sas-into-r/https://dbi.r-dbi.org/reference/dbwritetable
3条答案
按热度按时间zlhcx6iw1#
如果您的组织中已经有SAS和Postgres,那么您可能有到Postgres的SAS/Access接口。您可以使用proc setinit;运行;来检查您是否有SAS/Access接口到Postgres。如果您有SAS/ACCESS,那么您可以使用libname方法,如下例所示。
/* 为postgres定义库名称 */
{1}/{2}定义SAS表的库名称{3}/{4}
/* 然后使用datastep或SQL创建您的postgress表 */
如果你没有SAS/ACCESS到postgres那么你可能要做2个步骤.(但检查你是否有任何ETL工具可在您的公司)
首先你必须使用proc导出到CSV.见下面的链接
Efficiently convert a SAS dataset into a CSV
然后将csv数据移动到postgres
How to import CSV file data into a PostgreSQL table?
9o685dep2#
我找到了另一个解决方案,它需要Python将sas7bdat文件导入Postgres。
ctehm74n3#
另一个选项可能是将SAS文件导入R,然后使用dbWrite将数据从R写入SQL数据库。
就我个人而言,我发现将R中的数据放入SQL数据库比将文本文件中的数据放入SQL数据库要容易。
请参阅https://www.statology.org/import-sas-into-r/
https://dbi.r-dbi.org/reference/dbwritetable