Nhập excel nodejs

Ghi chú. Nếu trước đây bạn đã cài đặt

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
4 trên toàn cầu, bạn nên gỡ cài đặt gói này để đảm bảo npx luôn sử dụng phiên bản mới nhất của
Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
4. Để gỡ cài đặt, hãy chạy lệnh này.
Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
6


Chạy ứng dụng React

Chạy lệnh này để di chuyển đến thư mục

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
7

Chạy lệnh này để thực thi ứng dụng React

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
7

Một cửa sổ trình duyệt mới sẽ bật lên với Ứng dụng React mới được tạo của bạn. Nếu không, hãy mở trình duyệt của bạn và nhập

ReactDOM.(myElement, document.getElementById('root'));
2 vào thanh địa chỉ

Kết quả

Nhập excel nodejs



Những gì bạn nên biết

Trước khi bắt đầu với React. JS, bạn nên có kinh nghiệm trung cấp về

Bạn cũng nên có một số kinh nghiệm với các tính năng JavaScript mới được giới thiệu trong ECMAScript 6 (ES6), bạn sẽ tìm hiểu về chúng trong chương React ES6

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ý

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 CSV

Có 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

  1. Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    0 Lệnh Cypher. lệnh này là một điểm khởi đầu tuyệt vời và xử lý các tập dữ liệu cỡ nhỏ đến trung bình (tối đa 10 triệu bản ghi). Hoạt động với mọi thiết lập, kể cả AuraDB

  2. Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    1 công cụ nhập số lượng lớn. công cụ dòng lệnh hữu ích để tải trực tiếp các tập dữ liệu lớn. Hoạt động với Neo4j Desktop, Neo4j EE Docker image và cài đặt cục bộ

  3. Công cụ nhập khẩu ấm đun nước. ánh xạ và thực hiện các bước cho luồng quy trình dữ liệu và hoạt động tốt đối với các tập dữ liệu rất lớn, đặc biệt nếu các nhà phát triển đã quen với việc sử dụng công cụ này. Hoạt động với mọi thiết lập, kể cả AuraDB

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 Neo4j

Dùng thử trên AuraDB

Miễ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 Cypher

Mệnh đề

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
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.
Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
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

  • Hỗ trợ tải/nhập dữ liệu CSV từ URI

  • Ánh xạ trực tiếp dữ liệu đầu vào vào cấu trúc miền/đồ thị phức tạp

  • Xử lý chuyển đổi dữ liệu

  • Hỗ trợ tính toán phức tạp

  • Tạo hoặc hợp nhất các thực thể, mối quan hệ và cấu trúc

Để kiểm soát tốt hơn, bạn có thể chạy các lệnh

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
0 bằng
Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
0 có thể xử lý các tệp cục bộ và từ xa và có một số cú pháp liên quan đến 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 đây

Các tệp cục bộ có thể được tải bằng cách sử dụng tiền tố

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
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ụ

//Example 1 - file directly placed in import directory (import/data.csv)
LOAD CSV FROM "file:///data.csv"

//Example 2 - file placed in subdirectory within import directory (import/northwind/customers.csv)
LOAD CSV FROM "file:///northwind/customers.csv"

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ư

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
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ày

ví dụ

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
1

Mẹo quan trọng để TẢI CSV

Có một số điều cần lưu ý với

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
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

  • Tất cả dữ liệu từ tệp CSV được đọc dưới dạng chuỗi, vì vậy bạn cần sử dụng hàm

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    30,
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    31,
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    32 hoặc tương tự để chuyển đổi giá trị

  • Kiểm tra câu lệnh nhập Cypher của bạn để biết lỗi chính tả. Nhãn, tên thuộc tính, loại mối quan hệ và biến phân biệt chữ hoa chữ thường

  • Dữ liệu càng sạch, tải càng dễ. Cố gắng xử lý dọn dẹp/thao tác phức tạp trước khi tải

Chuyển đổi giá trị dữ liệu bằng LOAD CSV

Cypher 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ó thể bỏ qua hoặc thay thế các trường rỗng hoặc trống trong tệp CSV bằng các giá trị mặc định trong

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
0

Giả sử chúng ta có tệp CSV này

các công ty. csv

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G

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ụ

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
3

Tiế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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
32 để 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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
0

Ví dụ

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
1

Chuyển đổi có điều kiện có thể đạt được với

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
35. 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ác

Ví dụ

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
3

Tối ưu hóa LOAD CSV cho hiệu suất

Thô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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
36 hoặc
Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
37 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ó _____137 và ____136 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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
8

Bạ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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
9

Bạn có thể viết nó như thế này

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
0

Bằ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ào 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

  1. Nhập hàng loạt vào các phần với

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    00. Mệnh đề này có thể được thêm vào trước mệnh đề
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    0 để yêu cầu Cypher chỉ xử lý rất nhiều hàng của tệp trước khi xóa bộ nhớ và trạng thái giao dịch. Để biết thêm thông tin, hãy xem trang hướng dẫn trên
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    00

    Ví dụ

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    10

  2. Tránh toán tử EAGER. Một số câu lệnh kéo theo nhiều hàng hơn mức cần thiết, bổ sung thêm quá trình xử lý trước. Để tránh điều này, bạn có thể chạy

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    03 trên các truy vấn của mình để xem liệu chúng có sử dụng tải EAGER và sửa đổi truy vấn hoặc chạy nhiều lần trên cùng một tệp hay không, vì vậy nó không làm điều này. Bạn có thể tìm thêm thông tin về tải EAGER và cách tránh trong bài đăng trên blog của Mark

  3. Điều chỉnh cấu hình cho cơ sở dữ liệu trên heap và bộ nhớ để tránh lỗi trang. Để giúp xử lý khối lượng giao dịch lớn hơn, bạn có thể tăng một số cài đặt cấu hình cho cơ sở dữ liệu và khởi động lại phiên bản để chúng có hiệu lực. Thông thường, bạn có thể tạo hoặc cập nhật 1 triệu bản ghi trong một giao dịch duy nhất trên 2 GB bộ nhớ. Trong

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    04

TẢI tài nguyên CSV

  • Làm thế nào để. Nhập CSV trong Neo4j Desktop

  • Sổ tay Cypher. TẢI CSV

  • Ví dụ. Nhập tập dữ liệu Northwind

  • Băng hình. TẢI CSV trong Thế giới thực

  • Nhập dữ liệu CSV vào Neo4j

Trình nhập hàng loạt cho bộ dữ liệu lớn

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
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ụ
Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
09 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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
11

Mỹ phẩm. csv

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
12

đơn đặt hàng_header. csv

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
13

customer_orders_header. csv

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
14

đơn đặt hàng1. csv

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
15

đơn đặt hàng2. csv

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
16

order_details. csv

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
17

Công cụ này nằm trong

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
10 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ình

Dướ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

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
18

Bạ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ố

Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
11 và
Id,Name,Location,Email,BusinessType
1,Neo4j,San Mateo,[email protected],P
2,AAA,,[email protected],
3,BBB,Chicago,,G
12 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ột

Tấ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ợ

  • Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    13 chỉ ra rằng tất cả các cột
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    14 chứa các giá trị chữ và số (có sự tối ưu hóa cho các ID chỉ có số)

  • Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    15 được nhập trực tiếp dưới dạng các nút có nhãn
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    16 và các thuộc tính được lấy trực tiếp từ tệp

  • Các nút của

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    17 theo cùng một mẫu trong đó các nhãn nút được lấy từ cột
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    18

  • Các nút

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    19 được lấy từ 3 tệp - một tệp tiêu đề và hai tệp nội dung

  • Mối quan hệ chi tiết đơn hàng đã nhập

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    30 được tạo từ
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    31, liên quan đến các đơn đặt hàng với các sản phẩm được bao gồm thông qua ID của chúng

  • Các đơn đặt hàng được kết nối với khách hàng bằng cách sử dụng lại các tệp CSV của đơn đặt hàng, nhưng lần này với một tiêu đề khác. BỎ QUA các cột không liên quan

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

  • Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    32 - cột id toàn cầu được sử dụng để tra cứu nút sau khi kết nối lại

    • nếu tên thuộc tính bị tắt, nó sẽ không được lưu trữ (tạm thời), đó là điều mà

      Id,Name,Location,Email,BusinessType
      1,Neo4j,San Mateo,[email protected],P
      2,AAA,,[email protected],
      3,BBB,Chicago,,G
      33 đề cập đến

    • nếu bạn có ID lặp lại giữa các thực thể, bạn phải cung cấp thực thể (nhóm id) trong ngoặc đơn như

      Id,Name,Location,Email,BusinessType
      1,Neo4j,San Mateo,[email protected],P
      2,AAA,,[email protected],
      3,BBB,Chicago,,G
      34

    • nếu ID của bạn là duy nhất trên toàn cầu, bạn có thể bỏ qua điều đó

  • Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    18 - cột nhãn cho các nút. Nhiều nhãn có thể được phân tách bằng dấu phân cách

  • Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    36,
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    37 - cột tệp mối quan hệ đề cập đến id nút. Đối với các nhóm id, hãy sử dụng
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    38

  • Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    39 - cột để chỉ định loại mối quan hệ

  • Tất cả các cột khác được coi là thuộc tính nhưng bị bỏ qua nếu trống hoặc được chú thích bằng

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    80

  • Có thể chuyển đổi loại bằng cách thêm tên với các chỉ báo như

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    81,
    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    82, v.v.

Để 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 CSV

Dữ 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ến

Tiê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 hệ thống Linux (định dạng phổ biến 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

  • CSVKit - một bộ công cụ Python cung cấp số liệu thống kê (csvstat), tìm kiếm (csvgrep) và hơn thế nữa cho các tệp CSV của bạn

  • CSVLint - một dịch vụ trực tuyến để xác thực tệp CSV. Bạn có thể tải tệp lên hoặc cung cấp URL để tải tệp

  • Papa Parse - thư viện Javascript toàn diện để phân tích cú pháp CSV cho phép bạn truyền dữ liệu CSV và cung cấp báo cáo lỗi tốt, dễ đọc về các sự cố

  • Cypher - những gì Cypher thấy là những gì sẽ được nhập, vì vậy bạn có thể sử dụng điều đó để làm lợi thế cho mình. Sử dụng

    Id,Name,Location,Email,BusinessType
    1,Neo4j,San Mateo,[email protected],P
    2,AAA,,[email protected],
    3,BBB,Chicago,,G
    0 mà không tạo cấu trúc biểu đồ sẽ chỉ xuất các mẫu, số lượng hoặc phân phối để có thể phát hiện số lượng cột tiêu đề, dấu phân cách, dấu ngoặc kép, thoát hoặc cách viết tên tiêu đề không chính xác