Hỏi về cách import số lượng lớn record vào SQL server từ file excel hoặc file.txt

Anh chị cho em hỏi, em muốn tạo một bảng có dữ liệu lớn, hàng triệu record từ file excel hoặc file.txt vào sql server nhưng em không muốn dùng công cụ trong sql server mà muốn dùng câu lệnh query (vì em muốn sau mở lên đọc thì có thể nhớ được đã làm gì với nó)?
Đối với công cụ thì em cũng đã biết các bước rồi.
Nhờ anh chị chỉ giáo!!!

Mình đọc bài rồi nhưng không hiểu lắm bạn muốn cái gì, nhưng thể theo title của bài viết thì:

  • xài một ngôn ngữ lập trình nào đó để đọc data từ file (excel hoặc txt)
  • xử lý dữ liệu đó cho phù hợp với cái tables mà mình muốn import vô
  • build các câu lệnh query để insert vô database
  • chạy các câu query đó để import

xong

1 Like

Nếu bạn làm trong Big Data thì bạn có thể cân nhắc hai lựa chọn

  • Apache Zeppelin, một notebook tương tự như Jupyter,
  • Apache Flink, mô tả luồng dữ liệu bằng cách vẽ biểu đồ.
3 Likes

Câu hỏi đặt ra là hiện nay đã có file Excel hoặc file TXT với hàng triệu dòng hay chưa? Nếu chưa, lo giải quyết cái này trước, vì không có nó thì không có đầu vào cho bước tiếp theo.

Nếu có rồi thì cách đơn giản nhất là dùng một công cụ text editor for huge file để tìm kiếm và thay thế. Bạn sẽ xử lý việc đó trong vài giờ để làm quen text editor đó.

Nếu bạn biết lập trình thì chuyển các thao tác làm thủ công với text editor thành script với các công cụ dòng lệnh, chạy 1 đêm là bạn có vài triệu câu lệnh SQL bắt đầu bằng INSERT INTO như bạn mong muốn.

Cái này gọi là BULK INSERT, hay BULK LOAD.
Các csdl lớn cái nào cũng hổ trợ bằng cách này hay cách khác.
Ý tưởng là từ 1 file text “có cấu trúc” thường là csv, sau đó dùng lệnh của SQL Server để “load” vào database. Vài triệu rows chỉ tốn vài phút, tùy theo cấu hình của máy.

4 Likes

Cảm ơn các anh chị nhiều nhé!
Em đã thực hành được rồi. Em dùng vòng lặp trong phần mềm rồi chạy insert từng record một, mất cũng mấy giây thôi.
(y)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?