Biểu đồ PHP từ CSV
CSV là một tệp gồm các giá trị được phân tách bằng dấu phẩy, thường được xem trong Excel hoặc một số công cụ bảng tính khác. Có thể có các loại giá trị khác làm dấu phân cách, nhưng tiêu chuẩn nhất là dấu phẩy. Nhiều hệ thống và quy trình ngày nay đã chuyển đổi dữ liệu của họ sang định dạng CSV để xuất tệp sang các hệ thống khác, báo cáo thân thiện với con người và các nhu cầu khác. Đó là định dạng tệp tiêu chuẩn mà con người và hệ thống đã quen sử dụng và xử lý Show
Cung cấp cho Neo4j khả năng đọc và tải tệp CSV giúp giảm bớt khó khăn khi lấy dữ liệu từ các định dạng và hệ thống khác nhau vào Neo4j Các cách nhập tệp CSVCó một vài cách tiếp cận khác nhau để đưa dữ liệu CSV vào Neo4j, mỗi cách có các tiêu chí và chức năng khác nhau. Tùy chọn bạn chọn sẽ phụ thuộc vào kích thước tập dữ liệu cũng như mức độ thoải mái của bạn với các công cụ khác nhau Hãy cho chúng tôi xem một số cách Neo4j có thể đọc và nhập tệp CSV
Chúng tôi sẽ xem xét ngắn gọn về từng công cụ này, cách chúng hoạt động và cách bắt đầu với một trường hợp sử dụng chung. Nhiều tài liệu và thông tin cho từng loại cũng sẽ được đưa vào để trợ giúp trong các tình huống phức tạp hơn. Chất lượng dữ liệu cũng có thể là một vấn đề đối với bất kỳ loại nhập dữ liệu nào vào bất kỳ hệ thống nào, vì vậy chúng tôi sẽ đề cập đến một số khó khăn tiềm ẩn này và cách giải quyết chúng Hào quang Neo4jDùng thử trên AuraDBMiễn phí mãi mãi, không cần thẻ tín dụng Bắt đầu trên AuraDB LOAD lệnh CSV với CypherMệnh đề 0 là một phần của ngôn ngữ truy vấn Cypher. Hướng dẫn sử dụng Cypher của chúng tôi chứa một trang dành cho cách sử dụng nó và nhiều blog, video, giải pháp và tài liệu khác của Neo4j sử dụng lệnh này. Nó là đơn giản để sử dụng và áp dụng rộng rãi. 0 không chỉ là cơ chế nhập dữ liệu cơ bản của bạn vì nó kết hợp nhiều khía cạnh vào một thao tác duy nhất
Để kiểm soát tốt hơn, bạn có thể chạy các lệnh 0 bằng 5 thay vì trong trình duyệt. Thông tin thêm có trong trang hướng dẫn trên Cypher shellĐọc tệp CSV 0 có thể xử lý các tệp cục bộ và từ xa và có một số cú pháp được liên kết với từng tệp. Đây có thể là một điều dễ bỏ sót và dẫn đến lỗi truy cập, vì vậy chúng tôi sẽ cố gắng làm rõ các quy tắc tại đâyCác tệp cục bộ có thể được tải bằng cách sử dụng tiền tố 7 trước tên tệp. Vì AuraDB dựa trên đám mây nên cách tiếp cận tệp cục bộ này sẽ không hoạt động với AuraDB và chỉ các bản cài đặt cục bộ. Bảo mật Neo4j có cài đặt mặc định mà các tệp cục bộ chỉ có thể được đọc từ thư mục nhập Neo4j, tùy thuộc vào hệ điều hành của bạn. Vị trí tệp cho từng hệ điều hành được liệt kê trong Sổ tay hoạt động Neo4j của chúng tôi. Chúng tôi khuyên bạn nên đặt các tệp trong thư mục nhập của Neo4j vì nó giữ an toàn cho môi trường. Tuy nhiên, nếu bạn cần truy cập các tệp ở các vị trí khác, bạn có thể tìm hiểu cài đặt nào cần thay đổi trong hướng dẫn của chúng tôi. Đường dẫn thư mục nhập mặc định được hiển thị trong bài viết này ví dụ ________số 8 Các tệp được lưu trữ trên web có thể được tham chiếu trực tiếp với URL của chúng, chẳng hạn như 8. Tuy nhiên, phải đặt quyền để nguồn bên ngoài có thể đọc tệp. Để biết thêm thông tin về quyền truy cập liên quan đến nhập tệp trực tuyến, hãy xem bài viết cơ sở kiến thức nàyví dụ 0Mẹo quan trọng để TẢI CSVCó một số điều cần lưu ý với 0 và một số mẹo hữu ích để xử lý nhiều tình huống dữ liệu mà bạn có thể gặp phải
Chuyển đổi giá trị dữ liệu bằng LOAD CSVCypher có một số khả năng xóa và chuyển đổi để giúp dọn dẹp dữ liệu. Chúng cực kỳ hữu ích để xử lý dữ liệu bị thiếu hoặc chia một trường thành nhiều giá trị cho biểu đồ Đầu tiên, hãy nhớ rằng Neo4j không lưu trữ giá trị null. Các trường rỗng hoặc trống trong tệp CSV có thể được bỏ qua hoặc thay thế bằng các giá trị mặc định trong 0Giả sử chúng ta có tệp CSV này các công ty. csv
Vị trí mặc định cho các tệp CSV để nhập là thư mục nhập cho phiên bản Neo4j của bạn Dưới đây là một số ví dụ về việc nhập dữ liệu này ví dụ 2Tiếp theo, nếu bạn có một trường trong CSV là danh sách các mục mà bạn muốn tách, bạn có thể sử dụng hàm Cypher 22 để tách các mảng trong một ôGiả sử chúng ta có tệp CSV này người lao động. csv 9Ví dụ 0Chuyển đổi có điều kiện có thể đạt được với 25. Bạn đã thấy một ví dụ về điều này khi chúng tôi đang kiểm tra giá trị null hoặc chuỗi trống, nhưng chúng ta hãy xem một ví dụ khácVí dụ 2Tối ưu hóa LOAD CSV cho hiệu suấtThông thường, có nhiều cách để cải thiện hiệu suất trong khi tải dữ liệu, đặc biệt hữu ích khi xử lý lượng dữ liệu lớn hoặc tải phức tạp Để cải thiện việc chèn hoặc cập nhật các thực thể duy nhất vào biểu đồ của bạn (sử dụng 26 hoặc 27 với các bản cập nhật), bạn có thể tạo các chỉ mục và ràng buộc được khai báo cho từng nhãn và thuộc tính mà bạn định hợp nhất hoặc khớp trên đóĐể có hiệu suất tốt nhất, luôn có _____127 và _____126 trên một nhãn với thuộc tính khóa chính được lập chỉ mục Giả sử chúng ta sử dụng các công ty trên. csv và giờ đây chúng ta có một tệp chứa những người và công ty họ làm việc Mọi người. csv 7Bạn cũng nên tách việc tạo nút và mối quan hệ thành quá trình xử lý riêng. Chẳng hạn, thay vì như sau 8Bạn có thể viết nó như thế này 9Bằng cách này, tải chỉ thực hiện một phần của quá trình nhập tại một thời điểm và có thể di chuyển qua một lượng lớn dữ liệu một cách nhanh chóng và hiệu quả, giảm bớt quá trình xử lý nặng nề Khi lượng dữ liệu được tải lên quá nhiều để vừa với bộ nhớ, bạn có thể sử dụng một số cách tiếp cận khác nhau để chống hết bộ nhớ trong khi tải dữ liệu
TẢI tài nguyên CSV
Trình nhập hàng loạt cho bộ dữ liệu lớn 0 rất phù hợp để nhập dữ liệu cỡ nhỏ hoặc trung bình (tối đa 10 triệu bản ghi). Đối với các tập dữ liệu lớn hơn thế này, bạn có thể sử dụng trình nhập hàng loạt dòng lệnh. Công cụ 99 cho phép bạn nhập dữ liệu CSV vào cơ sở dữ liệu trống bằng cách chỉ định tệp nút và tệp mối quan hệGiả sử bạn muốn công cụ này nhập dữ liệu đơn hàng vào Neo4j. Đây là các tệp CSV. Lưu ý rằng một số tiêu đề bao gồm và một số sẽ có các tệp tiêu đề riêng biệt. Nếu bạn muốn thực hiện thao tác nhập, bạn đặt chúng vào thư mục nhập cho phiên bản Neo4j của mình khách hàng. csv 01Mỹ phẩm. csv 02đơn đặt hàng_header. csv 03customer_orders_header. csv 04đơn đặt hàng1. csv 05đơn đặt hàng2. csv 06order_details. csv 07Công cụ này nằm trong 00 và bạn chạy nó trong cửa sổ đầu cuối nơi bạn đã điều hướng đến thư mục nhập cho phiên bản Neo4j của mìnhDưới đây là một ví dụ về việc nhập các tệp CSV ở trên trong Neo4j 4. x. Bạn phải chỉ định tên của cơ sở dữ liệu. Trong trường hợp này, chúng tôi chỉ định đơn đặt hàng 08Bạn phải chỉ định các tham số cho tập lệnh này trên một dòng. Nguồn cấp dữ liệu dòng được hiển thị ở đây để dễ đọc Khi bạn thực hiện lệnh này, nó sẽ tạo một cơ sở dữ liệu mới có tên là các đơn đặt hàng Các tham số 01 và 02 lặp lại là các nhóm gồm nhiều tệp CSV (có khả năng bị phân tách) của cùng một thực thể, i. e. với cùng một cấu trúc cộtTất cả các tệp trong mỗi nhóm được xử lý như thể chúng có thể được nối thành một tệp lớn duy nhất. Cần có hàng tiêu đề trong tệp đầu tiên của nhóm hoặc trong tệp một dòng riêng biệt. Đặt tiêu đề trong một tệp riêng biệt có thể giúp xử lý và chỉnh sửa dễ dàng hơn so với đặt tiêu đề trong tệp văn bản nhiều gigabyte. Các tệp nén cũng được hỗ trợ
Tên cột được sử dụng cho tên thuộc tính của các nút và mối quan hệ của bạn. Có đánh dấu cụ thể trên các cột cụ thể, mà chúng tôi sẽ giải thích
Để biết thêm chi tiết về định dạng tiêu đề này và công cụ, hãy xem tài liệu trong Hướng dẫn sử dụng Neo4j và hướng dẫn đi kèm Ngoài ra còn có một bài học trong Nhập dữ liệu với Neo4j 4. x. Sử dụng neo4j-admin bao gồm sử dụng công cụ nhập neo4j-admin Chất lượng dữ liệu CSVDữ liệu trong thế giới thực rất lộn xộn. Bất cứ khi nào bạn làm việc với dữ liệu, bạn sẽ thấy một số giá trị cần được làm sạch hoặc chuyển đổi trước khi bạn chuyển nó sang hệ thống khác. Lỗi cú pháp nhỏ, mô tả định dạng, tính nhất quán hoặc trích dẫn chính xác và thậm chí các giả định khác nhau về yêu cầu hoặc tiêu chuẩn dữ liệu có thể dễ dàng gây ra hàng giờ dọn dẹp trên đường Chúng tôi sẽ nêu bật một số vấn đề về chất lượng dữ liệu dễ bị bỏ qua khi tải dữ liệu từ các hệ thống khác vào Neo4j và cố gắng giúp tránh các sự cố khi nhập và dọn dẹp dữ liệu Những cạm bẫy phổ biếnTiêu đề không nhất quán với dữ liệu (thiếu, quá nhiều cột, dấu phân cách khác nhau trong tiêu đề) Xác minh tiêu đề khớp với dữ liệu trong tệp. Điều chỉnh định dạng, dấu phân cách, cột, v.v. ở giai đoạn này sẽ tiết kiệm rất nhiều thời gian sau này Dấu ngoặc kép thừa hoặc thiếu trong toàn bộ tệp Dấu ngoặc kép hoặc dấu ngoặc đơn độc lập ở giữa văn bản không được trích dẫn hoặc dấu ngoặc kép không thoát trong văn bản được trích dẫn có thể gây ra sự cố khi đọc tệp để tải. Tốt nhất là thoát hoặc xóa dấu ngoặc kép đi lạc. Tài liệu về cách thoát thích hợp có trong hướng dẫn kiểu Cypher và một bài viết về kiến thức cơ bản Các ký tự đặc biệt hoặc xuống dòng trong tệp Khi xử lý bất kỳ ký tự đặc biệt nào trong tệp, đảm bảo chúng được trích dẫn hoặc xóa chúng. Đối với các ký tự xuống dòng trong trường được trích dẫn hoặc không được trích dẫn, hãy thêm hoặc xóa dấu ngoặc kép cho các ký tự này Ngắt dòng không nhất quán Một điều mà máy tính xử lý không tốt là dữ liệu không nhất quán. Đảm bảo ngắt dòng nhất quán trong suốt. Chúng tôi khuyên bạn nên chọn kiểu Unix để tương thích với các hệ thống Linux (định dạng chung cho các công cụ nhập) Số không nhị phân, dấu thứ tự byte BOM (2 byte UTF-8) ở đầu tệp hoặc các ký tự không phải văn bản khác. . Nếu bạn bắt gặp những loại ký tự này trong tệp của mình, tốt nhất là xóa chúng hoàn toàn Công cụNhư đã đề cập ở trên, một số ứng dụng nhất định có định dạng đặc biệt để làm cho tài liệu trông đẹp mắt, nhưng mã bổ sung ẩn này không được xử lý bởi các trình đọc tệp và tập lệnh thông thường. Những lần khác, thật khó để tìm thấy những thay đổi nhỏ về cú pháp hoặc thực hiện các điều chỉnh rộng cho các tệp có nhiều dữ liệu Để xử lý các loại tình huống này hoặc dọn dẹp dữ liệu chung, có một số công cụ giúp bạn kiểm tra và xác thực các tệp dữ liệu CSV của mình Các công cụ cơ bản, chẳng hạn như hexdump, vi, emacs, UltraEdit và Notepad++ hoạt động tốt để xử lý các lệnh dựa trên phím tắt để chỉnh sửa và thao tác tệp. Tuy nhiên, cũng có các tùy chọn khác hiệu quả hơn hoặc thân thiện với người dùng hơn hỗ trợ dọn dẹp và định dạng dữ liệu
|