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