Bản sao Python từ postgres

Trong bài viết này, chúng ta sẽ thảo luận về hai cách khác nhau để tạo cơ sở dữ liệu PostgresQL bằng tệp csv. PostgreSQL là một loại lưu trữ dữ liệu được gọi là cơ sở dữ liệu quan hệ. Đây là một trong những cơ sở dữ liệu quan hệ mã nguồn mở lớn nhất. Cơ sở dữ liệu quan hệ thường được sử dụng làm nơi lưu trữ dữ liệu cho nội dung web, doanh nghiệp lớn và các nền tảng dữ liệu khác

Bây giờ, trước khi tiếp tục, hãy đảm bảo rằng bạn đã cài đặt các công cụ cần thiết trên hệ thống của mình, bạn nên cài đặt phiên bản cục bộ của máy chủ Postgres trên máy tính của mình hoặc quyền truy cập vào máy chủ Postgres từ xa. [liên kết đến trang wiki hướng dẫn cài đặt Postgres]

Các tài nguyên chúng tôi đang sử dụng ở đây là hai thư viện Python pandas và psycopg2 và bộ công cụ SQL nguồn mở SQLAlchemy cho ngôn ngữ lập trình Python. Bây giờ, chúng ta sẽ xem qua một ví dụ về tạo cơ sở dữ liệu và bảng từ đầu, sau đó tải tập dữ liệu vào máy chủ Postgres đang chạy cục bộ. Trước tiên, chúng ta hãy bắt đầu với việc cài đặt thư viện psycopg2

Sử dụng psycopg2

pip install psycopg2

Kết nối với máy chủ Postgres

import psycopg2 as ps
import pandas as pd

conn = ps.connect[host='name_of_host_server',
                user='your_username',
                password ='XXXX',
                port=5432]

Hãy để chúng tôi mô tả các tham số này mà chúng tôi đã chuyển vào psycopg2. phương thức kết nối []. Cần chỉ định máy chủ mô tả nơi máy chủ Postgres của bạn đang chạy, thông thường tên 'localhost' được coi là thông lệ tiêu chuẩn. Sau đó, chúng tôi cần chuyển số cổng theo mặc định là 5432 cho máy chủ Postgres và tên người dùng. Nhưng, bạn có thấy rằng tôi chưa chuyển tham số 'cơ sở dữ liệu' không, tại sao? . Hiện tại tôi vừa tạo một phiên bản của máy chủ. Trong các dòng mã tiếp theo, chúng ta sẽ tạo một cơ sở dữ liệu

cur = conn.cursor[]

cur.execute["CREATE DATABASE postgres"]

conn.get_dsn_parameters[]
conn.close[]

Vì vậy, với phương thức connect[], chúng tôi đã tạo một đối tượng kết nối ở đây bằng cách sử dụng đối tượng con trỏ mà chúng tôi phải sử dụng để thực thi các lệnh của mình. Cuối cùng, chúng tôi đã đóng kết nối

Bây giờ, chúng ta sẽ tạo bảng

conn = ps.connect[host='name_of_host_server',
                database = 'postgres'
                user='your_username',
                password ='XXXX',
                port=5432]




cur = conn.cursor[]

cur.execute["""CREATE TABLE class[
    roll integer PRIMARY KEY,
    first_name text,
    surname text,
    address text
]
"""]
        
conn.commit[]

Nếu bạn đã quen thuộc với khái niệm giao dịch sql thì bạn sẽ biết rằng cuối cùng phương thức commit[] phải được chạy để tạo bảng của chúng ta. [Cho đến thời điểm này, bạn có thể đã gặp phải một số trục trặc nhưng đừng lo lắng, hãy đề cập đến chúng trong các nhận xét, chúng tôi sẽ giải quyết vấn đề đó. ] [Gợi ý rollback[] và set_isolation_level[] ]

Đang tải tệp csv. Ở đây, chúng tôi sử dụng phương thức copy_from[] giống như phương thức execute[] cũng được gắn vào đối tượng Con trỏ. Tuy nhiên, nó khác với phương thức execute[] do các tham số của nó, ở đây chúng tôi đã chuyển 'f' một đối tượng tệp làm đối số cùng với tên bảng mà chúng tôi muốn tải tệp csv lên và "sep" là dấu phân cách được chỉ định của . Cuối cùng, chúng tôi cam kết toàn bộ khối giao dịch và tải lớp thành công. csv vào bảng của chúng tôi

cur = conn.cursor[]

with open['class.csv', 'r'] as f:
     
# Skip the header row.
    next[f]
    cur.copy_from[f, 'users', sep=',']

conn.commit[]

phương pháp thứ hai. Sử dụng SQLAlchemy

Phương pháp tải tệp csv lên máy chủ Postgres này rất đơn giản và độc đáo, bộ công cụ sqlalchemy đảm nhận nhiều thứ trong phần phụ trợ. Về cơ bản, nó sử dụng URL cơ sở dữ liệu tuân theo giao thức RFC-1738 để tạo đối tượng công cụ. Cú pháp của url là như thế này

dialect+driver://username:password@host:port/database

Trong đó tên phương ngữ bao gồm phương ngữ SQLAlchemy như sqlite, mysql, postgresql, oracle, v.v. và tên trình điều khiển là tên của DBAPI python được sử dụng để kết nối với cơ sở dữ liệu như psycopg2, pymysql, pg8000, cx_oracle, v.v.

Bây giờ, chúng ta sẽ khởi tạo một đối tượng engine bằng đoạn mã sau

from sqlalchemy import create_engine
#dialect+driver://username:password@host:port/database

engine=create_engine["postgresql+psycopg2://postgres:xxxx@localhost:5432/postgres"]

Trường hợp thư từ theo thứ tự này

"Phương ngữ+DBAPI_Python. //tên tài khoản. your_password@name_of_host_server. port_number/databasename"

Khi đối tượng động cơ được tạo, chúng ta chỉ cần sử dụng phương thức pandas to_sql[] để tải trực tiếp tệp csv của mình vào bảng. Các đối số mà chúng tôi đã truyền là tên bảng, đối tượng công cụ và đối số khóa if_exists mà chúng tôi đã cung cấp tham số "thay thế" ở đây nhưng bạn cũng có thể chuyển "chắp thêm" nếu bạn muốn bổ sung vào bảng hiện có trong cơ sở dữ liệu. Cuối cùng động cơ được đóng lại bằng động cơ. phương thức vứt bỏ []. Và lớp học của bạn. csv đã được tải lên thành công

import pandas as pd

df = pd.read_csv['class.csv']

try:
    df.to_sql['class', engine, if_exists= 'replace', index= False]

except:
    print["Sorry, some error has occurred!"]

finally:
    engine.dispose[]

Vì vậy, theo hai cách dễ dàng này, bạn có thể điền trực tiếp máy chủ PostgreSQL của mình từ tệp csv. Tôi hy vọng bạn có thể tìm thấy bài viết này thú vị và hữu ích. Cảm ơn bạn

Làm cách nào để nhập dữ liệu từ PostgreSQL sang Python?

Bạn có thể tìm nạp dữ liệu từ PostgreSQL bằng cách sử dụng phương thức fetch[] do psycopg2 cung cấp . Lớp Cursor cung cấp ba phương thức là fetchall[], fetchmany[] và, fetchone[] Trong đó, Phương thức fetchall[] truy xuất tất cả các hàng trong tập kết quả của một truy vấn và trả về chúng dưới dạng danh sách các bộ dữ liệu.

Làm cách nào để sao chép dữ liệu từ CSV sang PostgreSQL bằng Python?

Đầu tiên, chúng tôi nhập gói psycopg2 và thiết lập kết nối tới cơ sở dữ liệu PostgreSQL bằng pyscopg2. phương thức connect[] . trước khi nhập tệp CSV, chúng tôi cần tạo bảng. Trong ví dụ bên dưới, chúng tôi đã tạo một bảng bằng cách thực hiện lệnh SQL “tạo bảng” bằng cách sử dụng con trỏ.

Copy_expert là gì?

copy_expert[sql, file, size=8192] Gửi câu lệnh SAO CHÉP do người dùng soạn . Phương pháp này rất hữu ích để xử lý tất cả các tham số mà PostgreSQL cung cấp [xem tài liệu về lệnh COPY]. Thông số. sql – câu lệnh COPY để thực thi.

Làm cách nào để đọc dữ liệu từ tệp trong PostgreSQL?

Bạn cũng có thể sử dụng lệnh COPY FROM để tải dữ liệu từ tệp vào bảng . Tệp được đề cập trong lệnh COPY phải được người dùng Postgres truy cập và phải được chỉ định từ phối cảnh của máy chủ Postgres. Lệnh cũng có thể sử dụng truy vấn CHỌN để tải dữ liệu vào bảng.

Chủ Đề