Làm cách nào để nhập tệp SQL trong MongoDB?

Nếu bạn làm việc với dữ liệu lớn, bạn sẽ biết rằng việc khớp dữ liệu đa dạng vào một mô hình quan hệ cứng nhắc là một điều khó khăn. Cơ sở dữ liệu SQL hoặc Cơ sở dữ liệu quan hệ (RDBMS) lưu trữ thông tin theo hàng và cột với lược đồ được xác định trước không hoàn toàn phù hợp để lưu trữ khối lượng dữ liệu lớn.  

Các cơ sở dữ liệu không quan hệ hoặc NoSQL như MongoDB chứa các lược đồ động, vì vậy các nhà phát triển có thể thay đổi chúng “một cách nhanh chóng. ” MongoDB đã nổi lên như một tùy chọn ưu việt cho cơ sở dữ liệu SQL với trọng tâm cấp tính là mở rộng quy mô tốt hơn và truy vấn nhanh. Do kiến ​​trúc lược đồ động như vậy, MongoDB cho phép thay đổi ứng dụng thường xuyên và giúp lập trình đơn giản hơn cho các nhà phát triển

Đối với các nhà phát triển, MongoDB là một điểm cộng vì nó cung cấp hỗ trợ chính thức cho tất cả các ngôn ngữ phổ biến— C, C++, C# và. Mạng, Đi, Java, Nút. js, Perl, PHP, Python, Động cơ, Ruby, Scala, Swift, Mongoid. Điều này cho phép các nhà phát triển làm việc với các ngôn ngữ yêu thích của họ, do đó dẫn đến thời gian phát triển nhanh hơn và ít lỗi hơn

Để tìm hiểu thêm về MongoDB và sự tương phản của nó với Cơ sở dữ liệu SQL, hãy truy cập hướng dẫn hữu ích của chúng tôi tại đây- Cơ sở dữ liệu MongoDB so với SQL. 4 khía cạnh toàn diện.  

Để biết thêm thông tin về các trường hợp sử dụng thiết yếu của MongoDB, hãy truy cập hướng dẫn khác của chúng tôi về 7 trường hợp sử dụng MongoDB trong thế giới thực tốt nhất

Các tính năng chính của MongoDB

  • Truy vấn nhanh. Các truy vấn trong MongoDB chạy nhanh hơn đáng kể (gấp 100 lần) so với trong Cơ sở dữ liệu quan hệ trung bình. Điều này là do dữ liệu trong cơ sở dữ liệu SQL được chuẩn hóa và các truy vấn cho một đối tượng hoặc thực thể đơn lẻ yêu cầu bạn nối dữ liệu từ nhiều bảng, do đó hoạt động chậm hơn
  • Xử lý dữ liệu phi cấu trúc lớn. MongoDB có thể xử lý một cách kỳ diệu khối lượng lớn dữ liệu phi cấu trúc nhờ mô hình dữ liệu tài liệu của nó, mô hình này lưu trữ tất cả dữ liệu liên quan cùng nhau trong một tài liệu. MongoDB cũng cho phép bạn truy vấn theo cách khác phù hợp hơn với khối lượng công việc của bạn
  • Chia tỷ lệ ngang. Một khía cạnh chính mà hầu hết các cơ sở dữ liệu SQL đều thiếu là mở rộng theo chiều ngang. Họ hỗ trợ nó theo cách đặc biệt hoặc chỉ trên các công nghệ tương đối non nớt. Ngược lại, MongoDB hỗ trợ mở rộng theo chiều ngang, có nghĩa là bạn có thể thêm các máy chủ hàng hóa rẻ hơn bất cứ khi nào bạn cần.
  • sharding. MongoDB cho phép bạn lưu trữ dữ liệu lớn bằng cách phân phối nó tới một số máy chủ được kết nối với ứng dụng của bạn. Nếu một máy chủ không thể xử lý kích thước của dữ liệu, nó sẽ được chia sẻ với một máy chủ khác thông qua một quy trình có tên là tự động chia nhỏ
  • Dễ dàng cho các nhà phát triển. MongoDB có thể ánh xạ cấu trúc dữ liệu của nó sang ngôn ngữ lập trình. Điều này giúp giảm bớt rắc rối và thời gian cần thiết cho các nhà phát triển để học ngôn ngữ mới, định cấu hình và lưu trữ dữ liệu trong MongoDB

Đơn giản hóa MongoDB ETL với Đường ống dữ liệu không mã của Hevo

Nền tảng Đường ống dữ liệu không có mã được quản lý hoàn toàn như Hevo Data giúp bạn tích hợp và tải dữ liệu từ hơn 100 nguồn khác nhau (bao gồm hơn 40 nguồn miễn phí) chẳng hạn như MongoDB vào Kho dữ liệu hoặc Đích bạn chọn trong thời gian thực một cách dễ dàng

Hevo, với đường cong học tập tối thiểu, có thể được thiết lập chỉ trong vài phút cho phép người dùng tải dữ liệu mà không ảnh hưởng đến hiệu suất. Sự tích hợp mạnh mẽ của nó với vô số nguồn cho phép người dùng đưa vào các loại dữ liệu khác nhau một cách trơn tru mà không cần phải viết mã một dòng nào.  

Bắt đầu với Hevo miễn phí

Kiểm tra lý do tại sao Hevo là tốt nhất

  • Chắc chắn. Hevo có kiến ​​trúc chịu lỗi đảm bảo rằng dữ liệu được xử lý một cách an toàn, nhất quán và không bị mất dữ liệu
  • Quản lý lược đồ. Hevo loại bỏ nhiệm vụ quản lý lược đồ tẻ nhạt & tự động phát hiện lược đồ của dữ liệu đến và ánh xạ nó tới lược đồ đích
  • học tập tối thiểu. Hevo, với giao diện người dùng tương tác và đơn giản, cực kỳ đơn giản đối với khách hàng mới để làm việc và thực hiện các thao tác
  • Hevo được xây dựng để mở rộng quy mô. Khi số lượng nguồn và khối lượng dữ liệu của bạn tăng lên, Hevo sẽ mở rộng quy mô theo chiều ngang, xử lý hàng triệu bản ghi mỗi phút với rất ít độ trễ
  • Tải dữ liệu gia tăng. Hevo cho phép truyền dữ liệu đã được sửa đổi theo thời gian thực. Điều này đảm bảo sử dụng hiệu quả băng thông ở cả hai đầu
  • Hỗ trợ trực tuyến. Nhóm Hevo luôn sẵn sàng hỗ trợ đặc biệt cho khách hàng của mình thông qua trò chuyện, email và các cuộc gọi hỗ trợ
  • Giám sát trực tiếp. Hevo cho phép bạn theo dõi luồng dữ liệu và kiểm tra xem dữ liệu của bạn đang ở đâu tại một thời điểm cụ thể
Đăng ký tại đây để dùng thử miễn phí 14 ngày

Mongoimport là gì và nó được sử dụng ở đâu?

Lệnh mongoimport được sử dụng để nhập nội dung của bạn từ bản xuất JSON, CSV hoặc TSV mở rộng được tạo bởi mongoexport. Nó cũng hỗ trợ khôi phục hoặc nhập dữ liệu từ các công cụ xuất của bên thứ ba khác

Lệnh này giúp ích rất nhiều khi quản lý cơ sở dữ liệu MongoDB của bạn. Nó siêu nhanh và đa luồng, hơn bất kỳ tập lệnh tùy chỉnh nào bạn có thể viết để thực hiện thao tác nhập của mình. Lệnh mongoimport có thể được kết hợp với các công cụ dòng lệnh khác của MongoDB, chẳng hạn như jq để thao tác với JSON, csvkit để thao tác với CSV hoặc thậm chí là curl để tự động tải xuống các tệp dữ liệu từ máy chủ trên internet.  

cú pháp

Lệnh mongoimport có cú pháp như sau

mongoimport   

Ở định dạng mở rộng, nó trông như thế này

mongoimport --host (host name) -u (name of user) -p (password of user) --authenticationDatabase (admin database used for authentication)   --db (Name of database) --collection (name of collection) --drop --file /name_of_file (Name of file which was we have used to import into collection)

Trong các phần sắp tới, chúng tôi sẽ trình bày chi tiết hơn về các biến thể mà bạn có thể thực hiện với cú pháp để nhập các loại tệp khác nhau như JSON, CSV hoặc TSV.  

Các ứng dụng

Bất kể loại ứng dụng web mà nhóm của bạn xây dựng là gì, sẽ có vô số trường hợp bạn muốn tham khảo một số dữ liệu hoặc nhập một bộ sưu tập nhất định đã tồn tại trong cơ sở dữ liệu của mình. Tất cả các hoạt động này liên quan đến việc sử dụng lệnh mongoimport MongoDB để truy xuất thông tin từ một loạt các tệp JSON hoặc CSV. Khi khách hàng của bạn chạy các ứng dụng web của bạn, MongoDB có thể được kết hợp với các ứng dụng web của bạn để chạy dưới dạng nguồn thông tin phụ trợ và mongoimport có thể hữu ích trong những trường hợp như vậy.   

Khi so sánh với các định dạng tệp CSV hoặc TSV, JSON được ưa thích hơn vì nó vừa là định dạng dữ liệu phân cấp, tương tự như tài liệu MongoDB, vừa rõ ràng về loại dữ liệu mà nó mã hóa. Với thông tin đó, chúng tôi không khuyên bạn nên chuyển đổi dữ liệu của mình thành biểu mẫu JSON mỗi lần trước khi nhập dữ liệu bằng mongoimport;

Cân nhắc lệnh mongoimport MongoDB

Như một lưu ý phòng ngừa, tránh sử dụng mongoimport và mongoexport để sao lưu toàn bộ phiên bản sản xuất. Điều này là do các lệnh mongoimport và mongoexport không thể giữ lại tất cả các loại dữ liệu BSON phong phú một cách nhất quán và JSON chỉ đại diện cho một tập hợp con của các loại do BSON cung cấp. Đối với loại chức năng sao lưu này, chúng tôi khuyên bạn nên sử dụng mongodump và mongorestore

Để làm rõ cách lệnh mongoexport và mongoimport sử dụng biểu diễn chế độ nghiêm ngặt để lưu giữ thông tin, đây là ví dụ về thao tác chèn trong trình bao mongo sử dụng biểu diễn chế độ trình bao cho các loại BSON “data_date” và “data_numberlong”

use test
db.traffic.insert( { _id: 1, volume: NumberLong('2980000'), date: new Date() } )

Đối số được truyền cho data_numberlong phải được trích dẫn để tránh khả năng mất độ chính xác. Bây giờ, khi chúng ta sử dụng mongoexport để xuất dữ liệu

mongoexport --db test --collection traffic --out traffic.json

Dữ liệu đã xuất bật ra trong một biểu diễn chế độ nghiêm ngặt để bảo toàn thông tin loại

{ "_id" : 1, "volume" : { "$numberLong" : "2980000" }, "date" : { "$date" : "2014-03-13T13:47:42.483-0400" } }

Cách nhập dữ liệu vào MongoDB bằng mongoimport

Như đã đề cập trước đây, lệnh mongoimport được sử dụng để nhập các tệp JSON, CSV hoặc TSV. Để có cấu trúc nội dung rõ ràng và điều hướng dễ dàng, chúng tôi đã liệt kê các bước nhập dữ liệu từ tệp JSON, CSV hoặc TSV thành ba phần khác nhau.  

Trước khi tiếp tục với các phần này, trước tiên bạn phải đảm bảo kết nối tiện ích mongoimport Windows, macOS hoặc Ubuntu với phiên bản MongoDB của bạn. Mặc dù có một số cách để kết nối mongoimport với cơ sở dữ liệu MongoDB của bạn, chúng tôi khuyên bạn nên sử dụng tùy chọn –uri, như thế này

mongoimport --uri 'mongodb+srv://mycluster-ABCDE.azure.mongodb.net/test?retryWrites=true&w=majority' 
   --username='MYUSERNAME' 
   --password='SECRETPASSWORD'

Ghi chú. Nếu bạn đang sử dụng MongoDB Atlas Deployment, bạn có thể tìm thấy chuỗi kết nối Atlas của mình khi truy cập Database Deployment > Connect.  

Nếu không sử dụng Atlas Deployment, bạn sẽ phải tạo URI của riêng mình. Nếu bạn đang kết nối với một máy chủ, URI của bạn sẽ trông như thế này- mongodb. //của bạn. người phục vụ. chủ nhà. Tên. port/, và nếu bạn đang chạy một bộ sao chép và kết nối với nhiều tên máy chủ thì URI của bạn sẽ trông như thế này- mongodb. //tên tài khoản. mật khẩu @ máy chủ1. cổng, máy chủ2. port/?replicaSet=tên bộ bản sao

Để biết thêm thông tin, hãy xem trang tài liệu tại đây.  

Phần 1. Nhập tệp JSON

Để nhập (các) tệp JSON từ một bộ sưu tập, hãy sử dụng mã bên dưới

mongoimport --db DB_Name --collection Collection_Name --type=json --
file Name-of-file-to-import

Ở đâu,

  • DB_Name đại diện cho tên của cơ sở dữ liệu chứa bộ sưu tập Collection_Name
  • loại chỉ định loại tệp JSON (Trường tùy chọn)
  • Name-of-file-to-import đại diện cho tên và đường dẫn của tệp JSON sẽ được nhập/khôi phục

Nói một cách ngắn gọn, bạn cũng có thể viết đoạn mã trên dưới dạng

mongoimport -d DB_NAME -c COLLECTION_name --file Name-of-file-to-import

Trong trường hợp, bạn muốn loại bỏ bất kỳ bộ sưu tập hiện có nào có cùng tên với bộ sưu tập bạn đang cố tạo/nhập, bạn có thể thông báo điều tương tự cho lệnh mongoimport bằng cách sử dụng cờ –drop

________số 8

Nếu bạn muốn thay đổi số máy chủ hoặc số cổng trong khi nhập dữ liệu JSON, bạn có thể làm như vậy bằng cách sử dụng lệnh mongoimport MongoDB sau đây.  

mongoimport --host 123.123.123.1 --port 1234 -d DB_NAME -c COLLECTION_name --file Name-of-file-to-import

Theo mặc định, mongoimport kết nối với một mongo đang chạy trên cổng 27017 trên localhost.  

Phần 2. Nhập tệp CSV

Bạn có thể sử dụng lệnh mongoimport để nhập tệp CSV vào bộ sưu tập bằng tùy chọn tiêu đề. Tùy chọn dòng tiêu đề thông báo cho lệnh mongoimport của dòng đầu tiên;

Để nhập bộ sưu tập từ tệp CSV, hãy sử dụng mã như được đề cập bên dưới

mongoimport --host (host name) -u (name of user) -p (password of user) --authenticationDatabase (admin database used for authentication)   --db (Name of database) --collection (name of collection) --drop --file /name_of_file (Name of file which was we have used to import into collection)
0

Ở đâu,

  • DB_Name đại diện cho tên của cơ sở dữ liệu chứa bộ sưu tập Collection_Name
  • loại chỉ định loại tệp CSV (Trường tùy chọn)
  • tiêu đề chi tiết lệnh mongoimport để lấy (các) bản ghi đầu tiên của (các) tệp CSV làm tên trường.  
  • Name-of-file-to-import đại diện cho tên và đường dẫn của tệp CSV sẽ được nhập/khôi phục

Nhập tệp CSV thiếu tiêu đề

Trong trường hợp tệp CSV của bạn không có hàng tiêu đề, thì bạn phải thông báo cho lệnh mongoimport về tên của từng cột có trong tệp của bạn. Có hai cách để làm như vậy

  • Chỉ định loại trường
  • Sử dụng tệp trường

Chỉ định loại trường

Một cách là viết tên trường trên dòng lệnh bằng tùy chọn –fields. Điều này có thể gây cồng kềnh nếu tệp CSV của bạn chứa nhiều cột, như có thể thấy từ lệnh bên dưới

mongoimport --host (host name) -u (name of user) -p (password of user) --authenticationDatabase (admin database used for authentication)   --db (Name of database) --collection (name of collection) --drop --file /name_of_file (Name of file which was we have used to import into collection)
1

Sử dụng tệp trường

Phương pháp khác là thông báo lệnh mongoimport trên các cột trường bằng cách sử dụng một. tập tin txt. Ở đây chúng tôi đã tạo một tệp có tên là “Field_file. txt” chứa tất cả các tên cột có trong tệp CSV của chúng tôi

mongoimport --host (host name) -u (name of user) -p (password of user) --authenticationDatabase (admin database used for authentication)   --db (Name of database) --collection (name of collection) --drop --file /name_of_file (Name of file which was we have used to import into collection)
2

Sau khi tạo một tệp như vậy, bạn có thể chạy lệnh sau sẽ sử dụng. txt (trong ví dụ của chúng tôi “Field_file. txt”) để trích xuất thông tin trên các tên cột này dưới dạng tên trường trong MongoDB

mongoimport --host (host name) -u (name of user) -p (password of user) --authenticationDatabase (admin database used for authentication)   --db (Name of database) --collection (name of collection) --drop --file /name_of_file (Name of file which was we have used to import into collection)
3

Phần 3. Nhập tệp TSV

Các tệp TSV giống nhau về mặt khái niệm khi so sánh với các định dạng tệp CSV. Do đó, cho dù bạn sử dụng tiện ích Windows mongoimport hay tiện ích khác, bạn có thể nhập tệp TSV bằng kỹ thuật tương tự như được mô tả cho tệp CSV.  

Chỉ có một thay đổi nhỏ cần ghi nhớ- thay vì sử dụng –type=csv, bạn có thể thay đổi nó và sử dụng tùy chọn –type=tsv để thông báo cho mongoimport về định dạng mới

tùy chọn lệnh mongoimport

Lệnh mongoimport có thể được thêm vào với các tùy chọn giúp nhà phát triển khám phá và đạt được nhiều hơn. Mặc dù có thể tìm thấy danh sách đầy đủ các tùy chọn được hỗ trợ trên , nhưng trong blog này, chúng tôi chỉ giới thiệu những tùy chọn quan trọng

OptionDescription–helpReturns information on the options and use of mongoimport.–host=<:port>, -h=<:port>Used to specify the hostname to which mongoimport should connect. By default, this is set to localhost:27017.–ignoreBlanksIgnore fields or columns with empty values.–dropModifies the import process so that the target instance drops the collection before importing the data from the input.–stopOnErrorForces mongoimport to halt insert operation at the first error instead of continuing.–mode=Tells how mongoimport should handle existing documents in the database that match documents in the import file.

Và điều này đưa chúng ta đến phần cuối của tiện ích lệnh mongoimport Windows, macOS, Ubuntu.  

Hãy xem qua một vài blog thú vị hơn để khơi gợi sự quan tâm của bạn

  • Cài đặt MongoDB Python trên Windows. 5 bước đơn giản
  • Tiến hành Phân tích Hiệu suất Truy vấn MongoDB Đơn giản hóa 101
  • Làm cách nào để di chuyển cơ sở dữ liệu quan hệ sang MongoDB?. Thực hiện dễ dàng

Phần kết luận

Chúng tôi hy vọng phần blog này thu hút sự quan tâm của bạn và cung cấp cho bạn thông tin chuyên sâu về một trong những công cụ Thành phần gói MongoDB mạnh mẽ được cung cấp nguyên bản- lệnh mongoimport. Sử dụng hướng dẫn này, chúng tôi biết chắc chắn rằng bạn sẽ có thể sử dụng thành công lệnh mongoimport để sử dụng các ứng dụng web và trường hợp sử dụng của riêng bạn một cách dễ dàng

Nếu doanh nghiệp của bạn tích cực sử dụng MongoDB để phát triển và lưu trữ các ứng dụng web của mình, thì có khả năng cao là bạn sẽ muốn có một bản sao lưu an toàn cho cơ sở dữ liệu MongoDB của mình. Mặc dù việc xuất cơ sở dữ liệu MongoDB của bạn theo cách thủ công có thể trở nên khó sử dụng và không mấy thú vị, nhưng một phương pháp tốt hơn và nhanh hơn là sử dụng Kho dữ liệu dựa trên đám mây cho nhu cầu lưu trữ và chuyển đổi dữ liệu của bạn. Một giải pháp đơn giản và nhanh chóng như Hevo Data sẽ giúp bạn trong việc đó.  

Điều gì làm cho Hevo trở thành lựa chọn tốt nhất?

Hevo là trình xây dựng Đường ống ETL Không Mã. Nó cho phép bạn di chuyển dữ liệu của mình từ cơ sở dữ liệu MongoDB (và hơn 100 Nguồn dữ liệu) sang bất kỳ Kho dữ liệu nào bạn chọn như Amazon Redshift, Snowflake, Google BigQuery hoặc Firebolt trong vòng vài phút chỉ bằng vài cú nhấp chuột. Bất kỳ cá nhân hoặc nhóm nào, ngay cả từ nhóm không có dữ liệu đều có thể thiết lập Đường ống dữ liệu từ Cơ sở dữ liệu hoặc Ứng dụng SaaS của họ vào Kho dữ liệu của họ trong nháy mắt và bắt đầu tải dữ liệu của họ.  

Ghé thăm trang web của chúng tôi để khám phá Hevo

Tại sao không thử Hevo? . Bạn cũng có thể kiểm tra giá của chúng tôi và đưa ra quyết định về kế hoạch phù hợp nhất của bạn.  

Chia sẻ ý kiến ​​​​của bạn về việc tìm hiểu quy trình sử dụng mongoimport cho MongoDB trong phần bình luận bên dưới. Chúng tôi muốn nghe suy nghĩ và ý tưởng của bạn

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

Việc di chuyển từ MySQL sang MongoDB được thực hiện theo bốn bước. .
Xem lại lược đồ dữ liệu của bạn
Xuất dữ liệu từ MySQL
Chuyển đổi dữ liệu
Nhập dữ liệu vào MongoDB

Làm cách nào để kết nối SQL Server với MongoDB?

Có một số quy trình cần tuân theo để tạo nguồn dữ liệu MongoDB ODBC và sau đó kết nối MongoDB với SQL Server. .
Cài đặt Microsoft Visual C++ 2015 Có thể phân phối lại
Cài đặt MongoDB BI Connector
Cài đặt trình điều khiển MongoDB ODBC
Tạo tệp lược đồ drdl
Bắt đầu dịch vụ trình kết nối MongoDB BI
Xác định nguồn dữ liệu ODBC

Tôi có thể sử dụng SQL trong MongoDB không?

Trong MongoDB, để thao tác dữ liệu hoặc thực hiện các thao tác khác, bạn viết các tập lệnh cho trình bao mongo trong JavaScript. Đối với những nhà phát triển truy vấn dữ liệu chủ yếu bằng SQL, cũng có thể hữu ích khi sử dụng SQL cho các bộ sưu tập MongoDB . DataGrip sẽ dịch các truy vấn SQL của bạn sang JavaScript.

Làm cách nào để nhập cơ sở dữ liệu trong MongoDB bằng dòng lệnh?

Bước 1. Mở dấu nhắc lệnh và đưa ra lệnh mongod để kết nối với máy chủ MongoDB và không đóng cmd này để duy trì kết nối với máy chủ. Bước 2. Mở một dấu nhắc lệnh khác và chạy vỏ mongo. Sử dụng lệnh mongo