{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["# SQL数据库集成\n", "\n", "`featuretools_sql`是一个附加库,支持从关系数据库自动创建`EntitySet`。目前,`featuretools_sql`与以下系统兼容:\n", "\n", "- `MySQL`\n", "- `PostgreSQL`\n", "- `Snowflake`\n", "\n", "`featuretools_sql`库提供的`DBConnector`对象用于连接到数据库管理系统。\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### 安装featuretools_sql\n", "使用pip安装\n", "```python\n", "-m pip install \"featuretools[sql]\"\n", "```\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### 连接到您的数据库实例\n", "根据您选择的数据库管理系统(DBMS),您可能需要向 `DBConnector` 对象提供不同的信息片段。如果您想连接到一个 `MySQL` 实例,您必须将字符串 `\"mysql\"` 传递给 `system_name` 参数。如果您想连接到一个 `PostgreSQL` 实例,您必须将字符串 `\"postgresql\"` 传递给 `system_name` 参数。如果您想连接到一个 `Snowflake` 实例,您必须将字符串 `\"snowflake\"` 传递给 `system_name` 参数。以下是连接到 `PostgreSQL` 数据库的对象构造函数的示例调用:\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["```python\n", "从featuretools_sql.connector中导入DBConnector\n", "\n", "connector_object = DBConnector(\n", " system_name=\"postgresql\",\n", " user=\"postgres\",\n", " host=\"localhost\",\n", " port=\"5432\",\n", " database=\"postgres\",\n", " schema=\"public\",\n", ")\n", "```\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["请注意,选择关系型数据库管理系统会影响所需的参数 -- 例如,如果您要连接到一个`MySQL`实例,就不需要`schema`参数。\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### 转换为实体集\n", "您可以调用`get_entityset`方法来指示`DBConnector`对象构建一个EntitySet。该方法将循环遍历数据库中的所有表,并将它们复制到数据框中。然后,它将填充关系数据结构。最后,它将这两个参数传递到Featuretools中的EntitySet构造函数中,并返回该对象。\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["```python\n", "es = connector_object.get_entityset()```可选地,如果您只想包含数据库中的部分表,可以将表名传递给`select_only`参数。```python\n", "es = connector_object.get_entityset(select_only=[\"Products\", \"Transactions\"])```\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### 检查EntitySet的成员数据\n", "您可以检查`DBConnector`对象的成员数据,以确保它正确导入了数据。要访问它导入的数据框,可以访问`.dataframes`属性。要访问关系数据结构,请访问`.relationships`属性。如果您想将EntitySet可视化为图形,可以调用`es.plot()`。\n"]}, {"cell_type": "markdown", "metadata": {}, "source": ["### 调用DFSEntitySet对象已准备好传递到Featuretools的`DFS`算法中!在[这里](https://featuretools.alteryx.com/en/stable/getting_started/afe.html#running-dfs)阅读有关`DFS`的更多信息。\n"]}], "metadata": {"kernelspec": {"display_name": "Python 3.8.12 64-bit ('venv_x86')", "language": "python", "name": "python3"}, "language_info": {"codemirror_mode": {"name": "ipython", "version": 3}, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.2"}, "vscode": {"interpreter": {"hash": "3f6b062a214ec48d1657976024d6bc68979519d14a33afb6ad033fc2e4189514"}}}, "nbformat": 4, "nbformat_minor": 2}