利用Google Colab运行Postgres:综合指南
#编程 #教程 #python #postgres

Google COLAB是一个强大的基于云的平台,为运行Python代码,执行数据分析和执行机器学习任务提供了方便的环境。尽管COLAB为流行数据操纵库(例如Pandas和Numpy)提供内置支持,但连接到PostgreSQL数据库需要其他设置。在本指南中,我们将探讨如何与Postgres一起使用Google Colab,使您能够利用Colab笔记本中的SQL数据库操作的功能。

先决条件

在我们深入研究过程之前,请确保您有以下先决条件:

  1. 一个Google帐户:您需要一个Google帐户才能访问Google Colab。
  2. 一个PostgreSQL数据库:确保您有一个具有必要凭据的PostgreSQL数据库实例。

设置Google Colab

  1. 打开您的网络浏览器并导航到Google Colab

  2. 如果您尚未使用Google帐户登录。

  3. 单击“新笔记本”以创建新的COLAB笔记本。

安装所需的库

在做任何事情之前,我们需要检查我们想要的Postgres版本是否已安装在Colab上,然后我们可以继续进行此次演练,我们将使用Postgres 15

!sudo apt update
!sudo apt install dirmngr ca-certificates software-properties-common gnupg gnupg2 apt-transport-https curl -y
!curl -fSsL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql.gpg > /dev/null
!echo 'deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt/ jammy-pgdg main' | sudo tee /etc/apt/sources.list.d/pgdg.list
!sudo apt update
!sudo apt install postgresql-client-15 postgresql-15 -y
!sudo service postgresql start

以下步骤应以类似于此

的A屏幕结束

Successful installation

一旦Postgres到位,我们应该使用适当的权限配置用户,以便我们可以轻松访问我们的数据库。让我们创建以下用户:

# Setup a password `postgres` for username `postgres`
!sudo -u postgres psql -U postgres -c "CREATE ROLE root WITH SUPERUSER;"
!sudo -u postgres psql -U postgres -c "ALTER ROLE root WITH LOGIN;"
!sudo -u postgres psql -U postgres -c "CREATE ROLE postgres WITH PASSWORD 'postgres';"

让我们分解片段的每一行:

  1. !sudo -u postgres psql -U postgres -c "CREATE ROLE root WITH SUPERUSER;":此行​​执行一个PostgreSQL命令,以创建具有Superuser特权的名为“ root”的新角色(用户)。超级用户特权提供了广泛的权限和对数据库系统的控制权。通过创建这个角色,摘要旨在为管理目的建立强大的用户。
  2. !sudo -u postgres psql -U postgres -c "ALTER ROLE root WITH LOGIN;":此行执行一个PostgreSQL命令,以允许“ root”角色登录。带有登录子句授予角色身份验证和访问数据库系统的角色。
  3. !sudo -u postgres psql -U postgres -c "CREATE ROLE postgres WITH PASSWORD 'postgres';":此行创建了一个新角色,名为“ Postgres”,并使用密码“ Postgres”。该角色是用默认特权创建的,与超级用户角色相比,通常受到限制。此设置允许通过为“ Postgres”角色的密码设置密码进行更“安全”的配置。

根据我的经验,从一开始就将rootLOGIN设置为通常出于某种原因失败。 postgres用户也会发生这种情况。如果您遇到的话,只需运行:

!sudo -u postgres psql -c "ALTER USER postgres PASSWORD 'postgres'"

现在已经不复存在了,让我们看看我们如何使用Postgres。

COLAB似乎很烦人的问题之一是,如果您运行某些作业的单元格,它将阻止整个笔记本电脑执行任何单元。幸运的是,在所有情况下我们都没有被困。有一个名为colabxterm的ipython扩展,可用于从笔记本中的单元格中提供类似终端的接口。我们可以利用它来获得优势。要安装它,我们只做以下

!pip install colab-xterm
load_ext colabxterm

完成此操作后,您可以运行

%xterm

产生控制台

Console spawned

我们可以使用它连接到PSQL并运行我们的查询!

psql run

要连接到COLAB的PostgreSQL数据库,我们需要安装psycopg2库,该库允许Python与PostgreSQL数据库进行交互。此外,我们将安装sqlalchemy库,该库提供了用于使用数据库的高级接口。

要安装所需的库,请在Colab单元格中添加以下代码段:

!pip install psycopg2-binary sqlalchemy

导入必要的模块

在Colab笔记本的第一个单元格中,导入所需的模块:

import psycopg2
from sqlalchemy import create_engine

连接到PostgreSQL数据库

要建立与PostgreSQL数据库的连接,您需要提供必要的连接详细信息,例如主机,端口,数据库名称,用户名和密码。

使用以下代码段作为示例,使用psycopg2
建立连接

try:
    connection = psycopg2.connect(
        host="your_host",
        port="your_port",
        database="your_database",
        user="your_username",
        password="your_password"
    )
    cursor = connection.cursor()
    print("Connection established successfully!")
except Exception as e:
    print("Error connecting to the database:", e)

用您的实际数据库连接详细信息,替换占位符(your_hostyour_portyour_portyour_databaseyour_usernameyour_password)。

另外,您可以使用sqlalchemy库来创建引擎并连接到数据库:

try:
    engine = create_engine('postgresql://your_username:your_password@your_host:your_port/your_database')
    connection = engine.connect()
    print("Connection established successfully!")
except Exception as e:
    print("Error connecting to the database:", e)

用您的实际数据库连接详细信息,替换占位符(your_hostyour_portyour_portyour_databaseyour_usernameyour_password)。

执行SQL查询

建立连接后,您可以执行SQL查询并使用cursor对象(如果使用psycopg2)或引擎的execute方法(如果使用sqlalchemy)。

这是一个示例,可以执行简单的SELECT查询并使用psycopg2
获取结果

try:
    cursor.execute("SELECT * FROM your_table;")
    results = cursor.fetchall()

    for row in results:
        print(row)
except Exception as e:
    print("Error executing the query:", e)

用您要从数据库查询的表名称替换your_table

对于sqlalchemy,您可以使用engine对象的execute方法执行查询:

try:
    result = connection.execute("SELECT * FROM your_table")
    for row in result:
        print(row)
except Exception as e:
    print("Error executing the query:", e)

用您要从数据库查询的表名称替换your_table

关闭连接

完成查询后,请记住关闭与数据库的连接以发布任何资源。

使用以下代码在使用psycopg2时关闭连接:

if connection:
    cursor.close()
    connection.close()
    print("Connection closed successfully!")

对于sqlalchemy,关闭连接如下:

if connection:
    connection.close()
    print("Connection closed successfully!")

这就是这样:

SQLAlchemyDemo

结论

在本指南中,我们探索了如何使用PostgreSQL数据库使用Google Colab。通过遵循此处概述的步骤,您可以建立与数据库的连接,执行SQL查询,并在COLAB笔记本中检索结果。这种集成使您能够利用COLAB数据分析功能和Postgres提供的SQL操作的功能,从而使您能够提高高级数据操作并获得宝贵的见解。

将Google Colab与Postgres一起使用的关键优势之一是能够将COLAB的数据分析功能与SQL查询的功能无缝相结合。使用Colab,您可以访问多种Python库进行数据操作和可视化。通过连接到Postgres数据库,您可以利用SQL语言直接从数据库中检索和操纵数据。

例如,您可以使用SQL查询来执行集合,过滤和加入存储在Postgres数据库中的大型数据集上的操作。这些操作可以在数据库服务器上有效执行,从而减少数据传输开销并提高性能。拥有所需的数据子集后,您可以使用COLAB的数据分析库,例如Pandas和Matplotlib,以进一步探索和可视化数据。

将Google Colab与Postgres整合在一起,为数据分析和探索的可能性开辟了世界。通过结合Colab的Python库和Postgres的SQL功能的优势,您可以有效地使用大型数据集,执行高级数据操作并获得宝贵的见解。因此,请尝试使用Google Colab和Postgres解锁数据分析工作流的全部潜力!

gl,hf!