Xem thảo luận Show
Cải thiện bài viết Lưu bài viết Xem thảo luận Cải thiện bài viết Lưu bài viết Đọc Bàn luận '''CREATE TABLE DETAILS(employee_id int NOT NULL, employee_name char(20), employee_email varchar(30), employee_salary float);''' Trong bài viết này, chúng ta sẽ thấy cách nhập các tệp CSV vào PostgreSQL bằng gói Python PsyCopg2. Đầu tiên, chúng tôi nhập gói psycopg2 và thiết lập kết nối với cơ sở dữ liệu PostgreSQL bằng phương thức pysCopg2.connect (). Trước khi nhập tệp CSV, chúng tôi cần tạo bảng. Trong ví dụ dưới đây, chúng tôi đã tạo một bảng bằng cách thực hiện lệnh Creing Created Bảng SQL bằng cách sử dụng phương thức con trỏ.execute (). Chế độ xem bảng trống: Mô tả bảng Sau khi tạo bảng, chúng tôi cần thực thi lệnh sao chép trên mẫu SQL. Trong lệnh sao chép, chúng ta cần chỉ định đường dẫn của tệp CSV. & NBSP; '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;''' Tệp CSV được sử dụng: Python3Tệp CSV được sử dụng Dưới đây là việc thực hiện: (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)8 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)9 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 1 2(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 4 5(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)0 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)1 3(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)2 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)4 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)6 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)7 (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)8 7(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 9 0(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 2 0(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 2 3(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 5 6(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 8 4(1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)3 6 3 4 5 6 7Output: (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0) Tôi chưa quen với Python và tôi đang cố gắng xuất Excel trực tiếp vào PostgreSQL mà không có tệp CSV. Tôi không biết nếu điều đó có thể. Tôi tiếp tục chạy vào lỗi 8. Ngày 30 tháng 9 năm 2017 Lưu trữ dữ liệu là một trong (nếu không) các phần không thể thiếu nhất của hệ thống dữ liệu. Bạn sẽ tìm thấy hàng trăm hướng dẫn SQL trực tuyến chi tiết cách viết các truy vấn phân tích SQL điên rồ, cách chạy các thuật toán học máy phức tạp trên petabyte dữ liệu đào tạo và cách xây dựng các mô hình thống kê trên hàng ngàn hàng trong cơ sở dữ liệu. Vấn đề duy nhất là: Không ai đề cập đến cách bạn nhận được dữ liệu được lưu trữ ngay từ đầu.the most integral parts of a data system. You
will find hundreds of SQL tutorials online detailing how to write insane SQL analysis queries, how to run complex machine learning algorithms on petabytes of training data, and how to build statistical models on thousands of rows in a database. The only problem is: no one mentions how you get the data stored in the first place. Cho dù bạn là nhà phân tích dữ liệu, nhà khoa học dữ liệu, kỹ sư dữ liệu hay thậm chí là nhà phát triển web, điều quan trọng là phải biết cách lưu trữ và truy cập dữ liệu của bạn. Trong bài đăng trên blog này, chúng tôi sẽ tập trung vào một loại lưu trữ dữ liệu được gọi là cơ sở dữ liệu quan hệ. Cơ sở dữ liệu quan hệ là bộ lưu trữ phổ biến nhất được sử dụng cho nội dung web, lưu trữ doanh nghiệp lớn và phù hợp nhất cho các nền tảng dữ liệu.relational database. Relational databases are the most common storage used for web content, large business storage, and, most relevant, for data platforms. Cụ thể, chúng tôi sẽ tập trung vào Postgres (hoặc PostgreSQL), một trong những cơ sở dữ liệu quan hệ nguồn mở lớn nhất. Chúng tôi thích Postgres do sự ổn định cao, dễ tiếp cận trong các nhà cung cấp đám mây (AWS, Google Cloud, v.v.) và thực tế nó là nguồn mở! Sử dụng thư viện Python, Trước khi chúng tôi bắt đầu, bạn nên đảm bảo rằng bạn đã cài đặt các công cụ cần thiết. Điều quan trọng nhất là có một phiên bản postgres cục bộ được cài đặt trên máy tính của bạn. Wiki Postgres có một trang cài đặt với các hướng dẫn trên các hệ điều hành phổ biến nhất. Tiếp theo, bạn nên đảm bảo rằng bạn đã cài đặt thư viện (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)1. Nếu không, bạn có thể chạy:
Trong các ví dụ mã của chúng tôi, chúng tôi sẽ sử dụng Python phiên bản 3.6 trên hệ điều hành Mac hoặc Linux. Nếu bạn đang chạy phiên bản 2.7 hoặc trên máy Windows, các lệnh vẫn tương tự nhau. Với tất cả mọi thứ được thiết lập, hãy để Lướt đi kết nối với máy chủ Postgres cục bộ của bạn! Postgres và mô hình máy chủ khách hàngNếu bạn đã từng sử dụng một công cụ SQL trong quá khứ, rất có thể bạn đã được giới thiệu cho SQLite, vì đây là một trong những động cơ cơ sở dữ liệu phổ biến nhất. Tất cả dữ liệu của bạn được lưu vào một tệp duy nhất, làm cho nó di động và dễ phát triển. Hơn nữa, SQLite chứa hầu hết các lệnh SQL được sử dụng với các động cơ lớn hơn, vì vậy nếu bạn biết sqlite thì bạn biết những điều cơ bản của mọi cơ sở dữ liệu SQL khác Tuy nhiên, có những nhược điểm khi sử dụng SQLite trong hệ thống sản xuất dữ liệu. Do trường hợp sử dụng đơn giản của nó, SQLite không được xây dựng cho nhiều kết nối. SQLite chỉ cho phép một quy trình ghi vào cơ sở dữ liệu, gây khó khăn cho việc chia sẻ với nhiều người và dịch vụ. Mặt khác, Postgres là một công cụ mạnh mẽ hơn nhiều, được triển khai như một máy chủ chứ không phải là một tệp. Là một máy chủ, Postgres chấp nhận các kết nối từ các máy khách có thể yêu cầu 1, 2 hoặc bất kỳ loại truy vấn SQL nào khác. Loại thiết kế này được gọi là mô hình máy khách-máy chủ, nơi khách hàng có thể tương tác với máy chủ.server rather than a single file. As a
server, Postgres accepts connections from clients who can request a 1, 2, or any other type of SQL query. This type of a design is called a client-server model, where clients can interact with the server.Mô hình này đã không xảy ra một cách tình cờ, nó thực sự là một mô hình rất phổ biến mà bạn đang sử dụng ngay bây giờ để kết nối với DQ-staging.t79ae38x-liquidwebsites.com/blog. Máy tính, máy tính xách tay của bạn hoặc bất kỳ thiết bị nào bạn đang sử dụng để đọc bài đăng này là 3 đang yêu cầu thông tin từ DQ-staging.t79ae38x-liquidwebsites.com 4. Bất cứ khi nào bạn đang truy cập một trang web, trình duyệt của bạn (máy khách) sẽ liên tục yêu cầu dữ liệu trang web từ máy chủ.Tuy nhiên, trong trường hợp Postgres, thay vì yêu cầu dữ liệu trang web, máy khách kết nối với dịch vụ Postgres sẽ sử dụng cơ sở dữ liệu = các yêu cầu cụ thể. Các loại yêu cầu này được thực hiện theo một giao thức được xác định, đây là một bộ quy tắc mà cả máy khách và máy chủ đều đồng ý. Bạn có thể nghĩ về một giao thức là ngôn ngữ mà cả máy khách và máy chủ sẽ sử dụng khi máy khách yêu cầu và máy chủ phản hồi với dữ liệu.protocol, which is a set of rules that both the client and server have agreed to. You can think of a protocol as the language that both the client and server will use when the client requests and the server responds with data. Sử dụng mô hình này, Postgres có thể xử lý nhiều kết nối với cơ sở dữ liệu, giải quyết thách thức kết nối nhiều người dùng với một cơ sở dữ liệu. Ngoài ra, với tư cách là một máy chủ, Postgres có thể triển khai các tính năng truy vấn nâng cao hơn với các biện pháp bảo mật. Tất cả những lý do này làm cho Postgres trở thành một lựa chọn tuyệt vời để phân tích dữ liệu. Kết nối với PostgresNếu chúng tôi muốn liên lạc với máy chủ Postgres, chúng tôi cần sử dụng một loại máy khách nói về giao thức cơ sở dữ liệu được mô tả trước đó. Chúng tôi sẽ sử dụng PSYCOPG2, một thư viện nguồn mở thực hiện giao thức Postgres. Bạn có thể nghĩ về psycopg2 tương tự như kết nối với cơ sở dữ liệu SQLite bằng SQLite3. Sử dụng ví dụ sau để kết nối với cơ sở dữ liệu Postgres bằng PsyCopg2
Hãy để mô tả ba tham số này mà chúng tôi đã chuyển sang phương pháp 5. Đầu tiên, cần phải chỉ định tên máy chủ 7 mô tả nơi máy chủ Postgres của bạn đang chạy. Bởi vì chúng tôi đang chạy một phiên bản Postgres cục bộ, chúng tôi sử dụng tên máy chủ mặc định 7.Sau đó, chúng ta cần truyền trong tên cơ sở dữ liệu 8 và người dùng (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)9. Do nhiều kết nối, Postgres sử dụng nhiều người dùng và cơ sở dữ liệu như một cách để cải thiện bảo mật và phân chia dữ liệu. Chúng tôi sử dụng 0 cho cả hai giá trị vì đây là các giá trị mặc định mà Postgres được cài đặt.Nếu không có các giá trị này trong (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)1, Postgres sẽ không biết nơi bạn muốn kết nối và sẽ thất bại. Hãy nhớ rằng, bất cứ lúc nào bạn muốn kết nối với máy chủ Postgres, cho dù trên web hoặc cục bộ, bạn sẽ phải vượt qua các tham số kết nối phù hợp. Bây giờ chúng tôi được kết nối, đã đến lúc tận dụng các tính năng của Postgres! Tương tác với cơ sở dữ liệuTrong ví dụ trước, chúng tôi đã mở kết nối với Postgres bằng cách sử dụng phương thức 2 của mô -đun (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)1. Phương thức 2 có một chuỗi các tham số mà thư viện sử dụng để kết nối với máy chủ Postgres. Giá trị trả về của phương thức 2 là một đối tượng kết nối.Đối tượng kết nối tạo một phiên khách với máy chủ cơ sở dữ liệu khởi tạo một máy khách liên tục nói chuyện. Để phát hành các lệnh chống lại cơ sở dữ liệu, bạn cũng sẽ cần tạo một đối tượng khác được gọi là đối tượng con trỏ. 6 được tạo bởi đối tượng 7 và sử dụng đối tượng 6, chúng tôi sẽ có thể thực thi các lệnh của mình.session with the database server that instantiates a persistant client to speak with. To issue commands against the database, you will also need to
create another object called the Cursor object. 6 is created by the 7 object and using the 6 object we will be able to execute our commands.Để thực thi các lệnh trên cơ sở dữ liệu Postgres, bạn gọi phương thức 9 trên đối tượng 6 bằng lệnh SQL được chuỗi. Dưới đây, một ví dụ về cách bạn có thể chạy nó trên bảng 1 giả:
Trong ví dụ này, đối tượng 2 gọi phương thức 9 và, nếu nó thành công, sẽ trả về 4. Để có được giá trị được trả về (hoặc giá trị) từ truy vấn của bạn, bạn cần gọi một trong hai phương thức: 5 hoặc 6. Phương thức 5 trả về kết quả hàng đầu tiên hoặc 4 và phương thức 6 trả về danh sách của mỗi hàng trong bảng hoặc danh sách trống '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''00 nếu không có hàng.
Thật không may, với cơ sở dữ liệu hiện tại của chúng tôi, thật không may, chúng tôi không có bảng nào được tạo. Không có bất kỳ bảng, không có gì thú vị để truy vấn trên. Để khắc phục điều đó, hãy để Lừa đi trước và tạo bảng đầu tiên của chúng tôi! Tạo một bảngBây giờ chúng tôi có một sự hiểu biết cơ bản về cách kết nối và thực hiện các truy vấn với cơ sở dữ liệu, đó là thời gian để tạo bảng Postgres đầu tiên của bạn. Từ tài liệu Postgres, ở đây, cách thức bạn có thể tạo một bảng trong Postgres:
Mỗi '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''01 là một trình giữ chỗ cho tên cột, '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''02 là loại dữ liệu bạn muốn lưu trữ cho cột đó và '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''03 là một ví dụ về một tham số tùy chọn để thêm vào bảng. Trong Postgres, mỗi bảng yêu cầu ít nhất một cột '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''03 chứa một tập hợp các giá trị duy nhất. Bây giờ chúng ta hãy xem tệp CSV mà chúng ta muốn tải vào cơ sở dữ liệu (lưu ý rằng CSV không chứa người dùng thực nhưng được tạo ngẫu nhiên người dùng sử dụng thư viện Python có tên là Faker).
Aaron Hull 362 Cox Bypass Suite 052 New Darrenmouth, IA 67749-2829
Bạn có thể tải xuống tệp CSV này từ các máy chủ DataQuest, tại đây. Trong tệp CSV bạn vừa tải xuống, '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''05, có vẻ như chúng ta về cơ bản chúng ta có hai loại dữ liệu khác nhau mà chúng ta cần tính đến. Đầu tiên là loại số nguyên cho mỗi ID và phần còn lại sẽ là loại chuỗi. Postgres, giống như các cơ sở dữ liệu quan hệ khác, là loại nhạy cảm - có nghĩa là bạn phải khai báo các loại cho mỗi cột của bảng bạn tạo. Bạn có thể tìm thấy một danh sách tất cả các loại trong tài liệu Postgres.Để tạo một bảng phù hợp với bộ dữ liệu của chúng tôi, chúng tôi sẽ phải chạy lệnh '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''06 với các cột theo cùng thứ tự với tệp CSV và các loại tương ứng của chúng. Tương tự như chạy truy vấn 1, chúng tôi sẽ viết lệnh dưới dạng chuỗi và chuyển nó sang phương thức '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''08. Đây là cách mà nó sẽ tìm kiếm bảng này:SQL transactions. In contrast with SQLite, every query made in that engine is executed and immediately reflected as a change on the database. Giao dịch SQL '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''0 Nếu bạn đã kiểm tra cơ sở dữ liệu 0, bạn sẽ nhận thấy rằng thực sự không có bảng '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''10 bên trong nó. Đây là một lỗi - nó vì một khái niệm gọi là giao dịch SQL. Ngược lại với SQLite, mọi truy vấn được thực hiện trong động cơ đó được thực thi và ngay lập tức được phản ánh như một sự thay đổi trên cơ sở dữ liệu. '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''1 Với Postgres, chúng tôi đã xử lý nhiều người dùng có thể thay đổi cơ sở dữ liệu cùng một lúc. Hãy để tưởng tượng một kịch bản đơn giản trong đó chúng tôi theo dõi các tài khoản cho các khách hàng khác nhau của ngân hàng. Chúng tôi có thể viết một truy vấn đơn giản để tạo bảng cho điều này: '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''2 Bảng của chúng tôi có hai hàng sau trong bảng: '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''1 Hãy để nói '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''11 cho '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''12 đô la cho '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''13. Chúng tôi có thể mô hình hóa điều này với hai truy vấn: Trong ví dụ trên, chúng tôi loại bỏ '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''12 đô la từ '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''11 và thêm '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''12 đô la vào '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''13. Điều gì sẽ xảy ra nếu câu lệnh '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''18 thứ hai có lỗi trong đó, cơ sở dữ liệu không thành công hoặc người dùng khác có truy vấn mâu thuẫn? Truy vấn đầu tiên sẽ chạy đúng, nhưng lần thứ hai sẽ thất bại. Điều đó sẽ dẫn đến những điều sau đây: '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''13 sẽ được ghi có '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''12 đô la, nhưng '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''12 đô la sẽ không bị xóa khỏi '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''11. Điều này sẽ khiến ngân hàng mất tiền. Các giao dịch ngăn chặn loại hành vi này bằng cách đảm bảo rằng tất cả các truy vấn trong một khối giao dịch được thực hiện cùng một lúc. Nếu bất kỳ giao dịch nào thất bại, toàn bộ nhóm đều thất bại và không có thay đổi nào được thực hiện đối với cơ sở dữ liệu. Bất cứ khi nào chúng tôi mở kết nối trong PSYCOPG2, một giao dịch mới sẽ tự động được tạo. Tất cả các truy vấn chạy lên cho đến khi phương thức cam kết được gọi sẽ được đặt vào cùng một khối giao dịch. Khi cam kết được gọi, động cơ PostgreSQL sẽ chạy tất cả các truy vấn cùng một lúc. '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''4 Nếu chúng tôi không muốn áp dụng các thay đổi trong khối giao dịch, chúng tôi có thể gọi phương thức rollback để xóa giao dịch. Không gọi cam kết hoặc rollback sẽ khiến giao dịch ở trong trạng thái chờ xử lý và sẽ dẫn đến những thay đổi không được áp dụng cho cơ sở dữ liệu.Để thực hiện các thay đổi của chúng tôi và tạo bảng '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''10 từ trước, tất cả những gì chúng tôi cần làm là chạy phương thức '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''24 khi kết thúc giao dịch của chúng tôi. Đây là những gì nó sẽ trông như bây giờ: Chèn dữ liệu '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''5 Với bảng của chúng tôi được tạo và cam kết, đó là thời gian để tải tệp CSV vào cơ sở dữ liệu! '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''6 Một cách phổ biến để tải dữ liệu vào bảng Postgres là ban hành lệnh 2 trên bảng. Lệnh chèn yêu cầu một tên bảng để chèn vào và chuỗi các giá trị cần chèn. Ở đây, một ví dụ về một truy vấn chèn trên bảng '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''10: May mắn thay, (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)1 cung cấp một cách khác để thực hiện nội suy chuỗi mà không cần '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''32. Đây là cách được khuyến nghị để gọi 2 bằng cách sử dụng (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)1: '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''7 Loại chèn này tự động chuyển đổi từng loại thành kiểu dữ liệu thích hợp được mong đợi bởi bảng. Một lợi ích khác là các truy vấn chèn của bạn thực sự được tăng tốc vì câu lệnh 2 được chuẩn bị trong cơ sở dữ liệu. Trong khóa học Postgres của chúng tôi, chúng tôi đề cập đến việc tối ưu hóa này nếu bạn quan tâm, nhưng bây giờ hãy để Lôi chỉ làm việc để chèn tệp CSV.prepared in the database. In our Postgres course, we cover this optimization if you are interested, but for now let’s just work on inserting the CSV file.Chúng tôi bắt đầu bằng cách tải tệp CSV trong Python bằng mô -đun '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''39. Sau đó, chúng tôi sẽ chạy truy vấn 2 cho mỗi hàng và sau đó thực hiện việc chuyển đổi:'''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''8 Mặc dù điều này hoàn thành nhiệm vụ tải trong dữ liệu của chúng tôi, nhưng nó thực sự không phải là cách thực hiện hiệu quả nhất. Như bạn có thể thấy, chúng tôi đã phải lặp qua từng hàng từ tệp chỉ để chèn chúng vào cơ sở dữ liệu! May mắn cho chúng tôi, Postgres có một lệnh cụ thể để tải các tệp vào bảng. Sao chép dữ liệuLệnh Postgres để tải các tệp trực tiếp vào các bảng được gọi là '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''41. Nó có trong một tệp (như CSV) và tự động tải tệp vào bảng Postgres. Thay vì tạo truy vấn và sau đó chạy nó qua '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''08 như 2, (1, 'rajesh ', '', 60000.0) (2, 'pratyusha ', '', 75000.0) (3, 'pratibha ', '', 65000.0)1, có một phương thức chỉ được viết cho truy vấn này. Phương thức tải một tệp vào bảng được gọi là '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''45. Giống như phương thức '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''08, nó được gắn vào đối tượng 6. Tuy nhiên, nó khác nhau khá nhiều so với phương pháp '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''08 do các tham số của nó. Các đối số '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''45 yêu cầu một tệp để tải (không có tiêu đề), tên table mà nó sẽ tải vào, cũng như dấu phân cách (đối số chính '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''50). Sau đó, chạy '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''24, tệp được chuyển vào Ths là cách hiệu quả nhất và được khuyến nghị để tải các tệp CSV vào bảng Postgres. Đây là cách chúng tôi sử dụng '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''52 để tải tệp của chúng tôi thay vì lặp lại các lệnh 2:'''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''9 Nó đơn giản mà! Cuối cùng, chúng tôi đã tải thành công tệp '''COPY table_name FROM 'C:\folder\file.csv' DELIMITER ',' CSV HEADER;'''05 vào bảng của chúng tôi bằng cách sử dụng cách thức postgres tối ưu. Hãy để một giây để nhìn lại những gì chúng tôi đã học được cho đến nay. Bản tóm tắt
Bước tiếp theoNếu bạn muốn tìm hiểu thêm, hướng dẫn này dựa trên phần giới thiệu DataQuest của chúng tôi về khóa học Postgres, đây là một phần trong con đường học tập kỹ thuật dữ liệu của chúng tôi. Khóa học mở rộng trên mô hình từ bài đăng này và cung cấp việc học thực hành khi bạn làm theo mã viết. Nếu bạn muốn tiếp tục làm việc với bảng này, đây là một vài điều bạn có thể làm:
Trở thành một kỹ sư dữ liệu!Tìm hiểu các kỹ năng bạn cần để làm việc như một kỹ sư dữ liệu ngày hôm nay. Đăng ký tài khoản miễn phí và có quyền truy cập vào nội dung khóa học Kỹ thuật dữ liệu Python tương tác của chúng tôi. Làm thế nào để bạn nhập dữ liệu từ excel vào postgres?Các phương pháp để kết nối Excel với PostgreSQL.. Bước 1: Cài đặt trình điều khiển ODBC cho PostgreSQL .. Bước 2: Định cấu hình trình điều khiển ODBC của Postgres trong Excel .. Bước 3: Kết nối ủy quyền với PostgreSQL .. Bước 4: Tải dữ liệu trong Microsoft Excel .. Làm cách nào để nhập tệp CSV vào 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 với cơ sở dữ liệu PostgreSQL bằng phương thức pysCopg2.connect (). Trước khi nhập tệp CSV, chúng tôi cần tạo bảng. Trong ví dụ dưới đây, chúng tôi đã tạo một bảng bằng cách thực hiện lệnh Creing Created Bảng SQL bằng cách sử dụng con trỏ.import the psycopg2 package and establish a connection to a PostgreSQL database using the pyscopg2. connect() method. before importing a CSV file we need to create a table. In the example below, we created a table by executing the “create table” SQL command using the cursor.
Làm cách nào để nhập tập dữ liệu từ Excel sang Python?Các bước để nhập một tệp Excel vào Python bằng Pandas.. Bước 1: Chụp đường dẫn tệp.Đầu tiên, bạn sẽ cần ghi lại đường dẫn đầy đủ nơi lưu trữ tệp Excel trên máy tính của bạn..... Bước 2: Áp dụng mã Python.Và đây là mã Python phù hợp với ví dụ của chúng tôi..... Bước 3: Chạy mã Python để nhập tệp Excel .. Làm cách nào để nhập các tệp XLSX vào pgadmin 4?Di chuyển công tắc nhập/xuất sang vị trí nhập để chỉ định rằng máy chủ nên nhập dữ liệu vào bảng từ tệp.Mặc định là nhập khẩu.Nhập tên của tệp nguồn hoặc tệp đích vào trường tệp.Tùy chọn, chọn biểu tượng trình duyệt (Ellipsis) ở bên phải để điều hướng vào một thư mục và chọn một tệp.. The default is Import. Enter the name of the source or target file in the Filename field. Optionally, select the Browser icon (ellipsis) to the right to navigate into a directory and select a file. |