python - SAS 用户需要帮助!如何在单个 SQL 语句中连接来自不同数据库源的 R 或 Python 表?
问题描述
[善良——我的第一篇文章] 在 SAS 中,您可以构建指向不同数据源的库,如 Oracle 或 SQL Server(或文件!)。因此,例如,我们可能有;
proc sql;
create table TABLE1 as
select a.student_id, a.class_standing, b.ethnicity
from STUDENT.enrollment as a left join IIR.person as b on a.id=.b.id
quit;
“STUDENT”是 SQL Server 数据库,“IIR”是 Oracle 数据库。SAS 库设置允许我们在同一个查询中混合不同的源。
你如何在 R 或 Python 中做到这一点?我可以通过 R 和 Python 连接我们的数据,但我正在寻找这种集成。谢谢!
解决方案
在 R 中,您可以使用DBI
连接到每个 SQL 数据库,然后使用dplyr
with联合对它们进行操作dbplyr
。关键是用于tbl()
引用来自给定远程连接的表或查询。
我显然无法对此进行测试,但总体思路应该可行。查看https://db.rstudio.com/了解更多详细信息/有关连接到特定数据源的帮助。SQL Server 有一个部分,Oracle 有另一个部分。
library(dplyr)
library(dbplyr)
library(DBI)
conSTUDENT <- dbConnect([YOUR CONNECTION PARAMATERS])
conIIR <- dbConnect([YOUR CONNECTION PARAMATERS])
TABLE1 <- tbl(conSTUDENT, "enrollment") %>%
select(student_id, class_standing, ethnicity) %>%
left_join(tbl(conIIR, "person"), by = c("a.id" = ".b.id")) %>%
# you may or may not want collect() depending on what you are doing
# this triggers the data pull from the server
collect()
dbDisconnect(conSTUDENT)
dbDisconnect(conIIR)