Môn Học: Cơ Sở Dữ Liệu 2 Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN ThS. NGUYỄN MINH TUẤN
Nội dung 3.1. Import/Export dữ liệu 3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools) 3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan 3.4. Sử dụng Bulk Copy Program (BCP) và
Nội dung 3.1. Import/Export dữ liệu 3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools) 3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan 3.4. Sử dụng Bulk Copy Program (BCP) và
3.1. Import/Export dữ liệu Import dữ liệu là quá trình đưa dữ liệu có sẵn từ nguồn dữ liệu khác hoặc chính SQL Server vào trong SQL Server. Export là quá trình ngược lại với import, đưa dữ liệu của SQL Server ra ngoài nguồn dữ liệu bên ngoài. Nguồn dữ liệu đó có thể là một CSDL hãng thứ ba, bảng tính, tập tin văn bản (Text). Tuy nhiên trước khi bạn import/export dữ liệu này vào, bạn phải thực hiện các tác vụ chuẩn bị để ước lượng dữ liệu bên ngoài và quyết định các bước sẽ phải thực hiện trong tiến trình import/export.
3.1. Import/Export dữ liệu - Xác định dạng dữ liệu (Format) của dữ liệu có sẵn nên hiệu chỉnh để nó nhất quán trong CSDL đích đến (Ví dụ: Cần đổi dạng ngày hoặc chuyển giá trị số sang giá trị chuỗi như 1, 2, 3 chuyển thành nhất, nhì, ba). - Xác định import/export dữ liệu sẽ là một tác vụ thực hiện một lần hay một tác vụ thực hiện định kỳ. -Xác định làm thế nào để truy cập vào cơ sở dữ liệu hiện có. Là truy cập trực tiếp nguồn dữ liệu bên ngoài và bạn có quyền truy cập dữ liệu trực tiếp không? Nếu không thì dữ liệu phải được chuyển sang một dạng format mà SQL Server có thể làm việc được, chẳng hạn file.txt...
Nội dung 3.1. Import/Export dữ liệu 3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools) 3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan 3.4. Sử dụng Bulk Copy Program (BCP) và
3.2. Các công cụ chuyển dữ liệu (Data Transfer Tools) SQL Server cung cấp số công cụ dành cho việc import và export dữ liệu. Các công cụ này có những khả năng khác nhau để trích lọc tập các dữ liệu từ nguồn dữ liệu có sẵn và chuyển đổi dữ liệu. Bảng dưới đây mô tả ngắn gọn các công cụ chính và khả năng của nó. DTS Công cụ Mô tả DTS là một công cụ đồ họa dùng để import, export, và transform dữ liệu. DTS có thể làm việc trực tiếp các nguồn dữ liệu đa dạng. DTS tạo các gói (package) mà có thể lập biểu. DTS cũng có thể import và export các luợc đồ đối tượng CSDL giữa các thể hiện (instance) của SQL Server.
3.2. Các công cụ chuyển dữ liệu (Data Transfer Tools) Công cụ Bcp Lệnh BULK INSERT trong Transact-SQL Mô tả Bcp là một lệnh tiện ích tại dấu nhắc được dùng để sao chép dữ liệu từ một tập tin văn bản thành một bảng hoặc View của SQL Server thông qua ODBC. Khả năng biến đổi dữ liệu của Bcp bị giới hạn và qui định dạng tập tin khó hiểu. BULK INSERT là một lệnh Transact-SQL dùng để sao chép dữ liệu từ một tập tin văn bản ASCII thành một một bảng hoặc View của SQL Servers thông qua OLEDB. Câu lệnh BULK INSERT cung cấp chức năng tương tự như Bcp (và cũng hạn chế) trong một câu lệnh Transact-SQL và có thể nhúng trong một gói DTS.
Nội dung 3.1. Import/Export dữ liệu 3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools) 3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan 3.4. Sử dụng Bulk Copy Program (BCP) và
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Là một cách đơn giản để tạo một SQL Server packages để sao chép dữ liệu giữa các nguồn dữ liệu nhưng nó bị giới hạn đối với những biến đổi dữ liệu phức tạp, thêm nhiều task và các lưu đồ tác phụ phức tạp. SQL Server Import/Export Wizard được sẵn sàng trong SSMS. Chọn một instance, click phải chọn Tasks, chọn Import Data hoặc Export Data, bắt đầu với hộp thoại SQL Server Import/Export Wizard.
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Chọn dữ liệu nguồn trong SQL Server Import/Export Wizard
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Chọn dữ liệu đích trong SQL Server Import/Export Wizard
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Lựa chọn các hoạt động copy dữ liệu
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Lựa chọn các bảng và khung nhìn từ dữ liệu nguồn
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Lưu và chạy Package
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Hoàn thành việc Import/Export dữ liệu.
3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan Hộp thoại báo thực hiện thành công.
Nội dung 3.1. Import/Export dữ liệu 3.2.Các công cụ chuyển dữ liệu (Data Transfer Tools) 3.3. Dịch vụ chuyển và chuyển đổi dữ liệu với các công cụ trực quan 3.4. Sử dụng Bulk Copy Program (BCP) và
3.4. Sử dụng Bulk Copy Program (BCP) và -Bulk copy là một giao diện chương trình ứng dụng (Application Programming Interface API) được xây dựng trong SQL Server mà cho phép xuất nhập dữ liệu một cách hiệu quả. Ta dùng BCP trong trường hợp ta muốn chuyển một số lượng lớn dữ liệu từ các hệ quản trị CSDL khác vào trong SQL Server. BCP là một phương pháp cơ bản chuyển đổi dữ liệu vào ra SQL Server. - BCP là một API được định nghĩa bởi SQL Server. Hiện nay, giao diện này chỉ được đưa ra thông qua ODBC (Open Database Connectivity- Hệ thống kết nối CSDL mở) và DB-LIB (DataBase Library). SQL Server cung cấp một tiện ích (BCP.EXE) mà hầu hết người dùng quen nghĩ là BCP. Ta có 2 phương pháp để xuất nhập dữ liệu là BCP command-line utility và BULK INSERT Transact-SQL statement.
3.4. Sử dụng Bulk Copy Program (BCP) và Dạng dữ liệu BCP Switch Lệnh Bulk Insert Ý nghĩa Native -n DataFiletype= na Kiểu dữ liệu là tự tive nhiên, khi cập nhật phải tốn nhiều thời gian chuyển đổi kiểu dữ liệu Character -c DataFiletype= ch Kiểu dữ liệu là ar CHAR cho tất cả các cột
3.4. Sử dụng Bulk Copy Program (BCP) và Dạng dữ liệu BCP Lệnh Bulk Insert Ý nghĩa Switch Unicode character -w DataFiletype= widechar Kiểu dữ liệu là Unicode char cho tất cả các dữ liệu, có thể một số dữ liệu sẽ bị mất nếu kiểu dữ liệu của Source và Destination không trùng nhau. Unicode Native -N DataFiletype= widenative Kiểu dữ liệu là Native cho những dữ liệu không là kiểu Char, và dùng Unicode cho những dữ liệu kiểu char (char, varchar, nchar, text )
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.1 BCP Command-line Utily Là một hàm đơn giản của Bulk Copy, thực thi tại dấu nhắc lệnh, dùng để sau chép dữ liệu vào SQL Server hoặc xuất dữ liệu ra thành một tập tin dữ liệu. Muốn dùng được bcp, thì trước tiên dữ liệu trong chương trình nguồn (một DBMS khác) phải được sang một tập tin dữ liệu vào sau đó mới chuyển dữ liệu từ tập tin data vào table cùa SQL. Ngược lại, bcp sẽ chuyễn dữ liệu từ một table thành một tập tin dành cho chương trình khác chẵng hạn như Excel. Data file: là một tập tin hệ thống hoạt động, dùng chứa dữ liệu để Import vào SQL Server (gọi là Source) hoặc tập tin chứa dữ liệu khi dùng Export (gọi Destination).
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.1 BCP Command-line Utily Cú pháp: bcp [database_name.][owner].]table_name in out data_file [-c -n w N] [-T] Link tham khảo: https://msdn.microsoft.com/en-us/library/ms162802(v=sql.120).aspx
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.1 BCP Command-line Utily Ví dụ: A. Copying table rows into a data file (with a trusted connection) bcp AdventureWorks2012.Sales.Currency out Currency.dat -T -c -T: chỉ định là Connect trực tiếp với Server đang log on B. Copying table rows into a data file (with mixed-mode authentication) bcp AdventureWorks2012.Sales.Currency out Currency.dat -c -U <login_id> -S <server_name\instance_name>
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.1 BCP Command-line Utily Ví dụ: C. Copying data from a file to a table USE AdventureWorks2012; GO SELECT * INTO AdventureWorks2012.Sales.Currency2 FROM AdventureWorks2012.Sales.Currency WHERE 1=2; bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -c USE AdventureWorks2012; GO SELECT * FROM Sales.Currency2 D. Copying a specific column into a data file bcp "SELECT LastName FROM AdventureWorks2012.Person.Person" queryout Lastname.dat -c -T
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.1 BCP Command-line Utily E. Copying a specific row into a data file bcp "SELECT * FROM AdventureWorks2012.Person.Person WHERE FirstName='Jarrod' AND LastName='Rana' " queryout "Jarrod Rana.dat" -T -c F. Copying data from a query to a data file bcp "SELECT FirstName, LastName FROM AdventureWorks2012.Person.Person ORDER BY LastName, Firstname" queryout Contacts.txt -c -T G. Creating a non-xml format file bcp AdventureWorks2012.Sales.Currency format nul -T -c -f Currency.fmt H. Creating an XML format file bcp AdventureWorks2012.Sales.Currency format nul -T -c -x -f Currency.xml I. Using a format file to bulk import with bcp bcp AdventureWorks2012.Sales.Currency2 in Currency.dat -T -f Currency.xml
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.2 CÂU LỆNH BULK INSERT Dùng để chuyển một dữ liệu vào bảng của SQL Server từ một tập tin dữ liệu khác. Câu lệnh Bulk insert không thể đưa dữ liệu từ bảng của SQL Server ra thành tập tin dữ liệu dành cho chương trình khác. Tuy vậy, nó lại là một câu lệnh trong T-SQL nên có thể được dùng một cách thuận tiện trong các hàm hoặc thủ tục trong SQL Sever.
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.2 CÂU LỆNH BULK INSERT Cu pháp: BULK INSERT 'database_name' [ 'owner'.] 'table_name' FROM 'data_file' [ WITH (DATAFILETYPE = 'char' 'native' 'widechar' 'widenative') FORMATFILE = data_file ] Link tham khảo: https://msdn.microsoft.com/en-us/library/ms188365.aspx
3.4. Sử dụng Bulk Copy Program (BCP) và 3.4.2 CÂU LỆNH BULK INSERT Ví dụ 1: USE AdventureWorks2012; GO DELETE AdventureWorks2012.Sales.Currency2; GO BULK INSERT AdventureWorks2012.Sales.Currency2 FROM 'D:\Currency.dat' WITH (FORMATFILE = 'D:\Currency.xml'); GO SELECT * FROM AdventureWorks2012.Sales.Currency2; GO
Q&A?