SQL 数据库集成#
featuretools_sql
是一个附加库,支持从关系数据库自动创建 EntitySet
。
当前,featuretools_sql
兼容以下系统
MySQL
PostgreSQL
Snowflake
featuretools_sql
库公开的 DBConnector
对象提供了连接到 DBMS 的接口。
安装 featuretools_sql#
使用 pip 安装
python -m pip install "featuretools[sql]"
连接到数据库实例#
根据您选择的 DBMS,您可能需要为 DBConnector
对象提供不同的信息。
如果要连接到 MySQL
实例,必须将字符串 "mysql"
传递给 system_name
参数。
如果要连接到 PostgreSQL
实例,必须将字符串 "postgresql"
传递给 system_name
参数。
如果要连接到 Snowflake
实例,必须将字符串 "snowflake"
传递给 system_name
参数。
这里是一个连接到 PostgreSQL
数据库的对象构造函数的示例调用
from featuretools_sql.connector import DBConnector
connector_object = DBConnector(
system_name="postgresql",
user="postgres",
host="localhost",
port="5432",
database="postgres",
schema="public",
)
请注意,RDBMS 的选择确实会影响所需的参数——例如,如果要连接到 MySQL
实例,则不需要 schema
参数。
转换为 EntitySet#
您可以调用 get_entityset
方法,指示 DBConnector
对象构建 EntitySet。
此方法将遍历数据库中的所有表,并将其复制到数据框 (dataframes) 中。然后它将填充关系数据结构。最后,它将这两个参数传递给 Featuretools 中的 EntitySet 构造函数,并返回该对象。
es = connector_object.get_entityset()
(可选)如果您只想包含数据库中的部分表,可以将表名传递给 select_only
参数。
es = connector_object.get_entityset(select_only=["Products", "Transactions"])
检查 EntitySet 的成员数据#
您可以检查 DBConnector
对象的成员数据,以确保它正确导入了数据。
要访问它导入的数据框 (dataframes),请访问 .dataframes
属性。要访问关系数据结构,请访问 .relationships
属性。
如果您想将 EntitySet 可视化为图,可以调用 es.plot()
。
调用 DFS#
EntitySet 对象已准备好传递给 Featuretools 的 DFS
算法!在此处阅读有关 DFS
的更多信息。here。