Hình 14: Quy trình tạo Database cho Kho dữ liệu
Kéo thả các tác vụ Execute SQL Task vào Control Flow, thứ tự các tác vụ được thực
2.3.3.2. Tác vụ kiểm tra sự tồn tại của các bảng trong Kho dữ liệu.
Kết nối sử dụng: DESKTOP-J2SJ2D5 TRANING2020.dwSales (Cơ∖ sở dữ liệu của Kho dữ liệu;.
DROP TABLE dbo.FactSale;
IF OBJECT_ID('dbo.DimNhanVien') IS NOT NULL DROP TABLE dbo.DimNhanVien; IF OBJECT_ID('dbo.DimKhuVuc') IS NOT NULL DROP TABLE dbo.DimKhuVuc;
IF OBJECT_ID('dbo.DimKhachHang') IS NOT NULL DROP TABLE dbo.DimKhachHang; IF OBJECT_ID('dbo.DimSanPham') IS NOT NULL DROP TABLE dbo.DimSanPham; IF OBJECT_ID('dbo.DimVanChuyen') IS NOT NULL DROP TABLE dbo.DimVanChuyen; IF OBJECT_ID('dbo.DimDate') IS NOT NULL DROP TABLE dbo.DimDate;
chiều DimNhanVien, DimKhuVuc, DimKhachHang, DimSanPham, DimVanChuyen, DimDate và bảng sự kiện FactSale
hay chưa, nếu đã tồn tại thì thực hiện xóa bảng đó khỏi cơ sở dữ liệu.
CREATE TABLE dbo.DimNhanVien( Employee_Key INT IDENTITY PRIMARY KEY, MaNhanVien INT, HoDem nvarchar(20), Ten nvarchar(10), TenDayDu nvarchar(50), TitleOfCourtesy nvarchar(25), NgayBatDau datetime, ToNhom nvarchar(64) )
Tạo mới bảng chiều nhân viên với tên DimNhanVien
và các trường của bảng.
CREATE TABLE dbo.DimSanPham(
Product_Key INT IDENTITY PRIMARY KEY, MaSanPham INT, TenSanPham NVARCHAR(40), TenNhaCungCap NVARCHAR(40), TenNhomHang NVARCHAR(25), SoLuongMoiDonVi NVARCHAR(20), DonGia MONEY, SoLuongTrongKho SMALLINT, DaNgung BIT )
Tạo mới bảng chiều nhân viên với tên DimSanPham
và các trường của bảng.
NULL, TenCongTy NVARCHAR(40) , DiaChi NVARCHAR(60) , Tinh NVARCHAR(15) , Vung NVARCHAR(15) , PostalCode NVARCHAR(10) , QuocGia NVARCHAR(15) )
CREATE TABLE dbo.DimVanChuyen(
Shipper_Key INT IDENTITY PRIMARY KEY,
MaDVVC INT,
TenDVVC nvarchar(40) )
Tạo mới bảng chiều nhân viên với tên
DimVanChuyen và các
trường của bảng.
CREATE TABLE dbo.DimDate(
Date_Key INT PRIMARY KEY, NgayDayDu DATE , FullDate varchar(10) , NgayThuocThang varchar(2) , Thang varchar(2) , Quy varchar(1) , Nam varchar(4) )
Tạo mới bảng chiều nhân viên với tên DimDate và các trường của bảng.
MaVung NVARCHAR(10) , TenVung NVARCHAR(50) )
CREATE TABLE dbo.FactSale(
Sale_Key INT IDENTITY PRIMARY KEY, Employee_Key INT , Product_Key INT , Customer_Key INT , Shipper_Key INT , City_Key INT, MaDonHang INT, NgayDatHang DATETIME , NgayDatHang_Key INT, SoNgayGiaoHang INT , DonGiaBan MONEY , SoLuong SMALLINT , ChietKhau REAL , TongTien MONEY )
Tạo mới bảng sự kiện bán hàng với tên FactSale và các trường của bảng.
Câu lệnh SQL Mục đích
ALTER TABLE [dbo].[FactSale] WITH CHECK ADD CONSTRAINT [FK_FactSale_DimDate]
Thêm khóa ngoại cho bảng sự kiện với FOREIGN
REFERENCES [dbo].[DimDate] ([Date_Key]) GO
khóa ngoại của bảng sự kiện
FactSale còn REFERENCES
[dbo].[DimDate]
([Date_Key]) là khóa chính của bảng chiều DimDate.
ALTER TABLE [dbo].[FactSale] WITH CHECK ADD CONSTRAINT
[FK_FactSale_DimKhachHang] FOREIGN KEY([Customer_Key])
REFERENCES [dbo].[DimKhachHang] ([Custormer_Key])
GO
ALTER TABLE [dbo].[FactSale] WITH CHECK ADD CONSTRAINT
[FK_FactSale_DimKhuVuc] FOREIGN KEY([City_Key])
REFERENCES [dbo].[DimKhuVuc] ([City_Key])
GO
ALTER TABLE [dbo].[FactSale] WITH CHECK ADD CONSTRAINT
[FK_FactSale_DimNhanVien] FOREIGN KEY([Employee_Key])
REFERENCES [dbo].[DimNhanVien] ([Employee_Key])
GO
ALTER TABLE [dbo].[FactSale] WITH
Tương tự ta thêm khóa ngoại cho bảng sự kiện FactSale
với các bảng chiều còn lại
DimNhanVien, DimKhuVuc, DimKhachHang,
DimSanPham, DimVanChuyen.
([Product_Key]) GO
ALTER TABLE [dbo].[FactSale] WITH CHECK ADD CONSTRAINT
[FK_FactSale_DimVanChuyen] FOREIGN KEY([Shipper_Key])
REFERENCES [dbo].[DimVanChuyen] ([Shipper_Key])
ResuItSet None SQL Statement ConnectionType OLEDB Connection DESKT0P- J2SJ2D5\TRANING2020.DB_Source SQLSourceType
SQLStatem ent Direct input
IsQueryStoredProcedure False
BypassPrepare True
2.5. Sử dụng SSIS thực hiện xây dựng tiến trình ETL (Extract - Tranform - Load).
2.4.1. Mô tả chung.
Đồ án sẽ sử dụng công cụ SSIS để ánh xạ dữ liệu từ hệ thống nguồn vào kho dữ liệu. Sơ đồ hoạt động như hình
Thao tác trong SSIS:
Bước 1: Kéo tác vụ Excute SQL Task từ SSIS Toolbox sang Vùng Control Flow. Bước 2: Click đúp vào tác vụ vừa tạo và chọn Connection cần dùng.
Bước 3: Sử dụng câu lệnh SQL ánh xạ từ Database nguồn tới Kho dữ liệu vào SQLStatement.
Hình 17: Anh xạ chiều Sản phẩm
Câu lệnh SQL
INSERT INTO dw_Sales.dbo.DimSanPham( MaSanPham ,TenSanPham
,TenNhaCungCap ,TenNhomHang ,SoLuongMoiDonVi ,DonGia ,SoLuongTrongKho ,DaNgung)
SELECT a.ProductID, a.ProductName, c.CompanyName, b.CategoryName, a.QuantityPerUnit,a.UnitPrice, a.UnitsInStock, a.Discontinued FROM Products a
LEFT JOIN Categories b ON
Mục đích
Truy vấn ra những bản ghi dữ liệu chưa tồn tại trong bảng chiều DimSanPham bằng cách kết nối các bảng Products,
Categories, Suppliers với điều
kiện là mã sản phẩm
(ProductID-MaSanPham) chưa tồn tại trong bảng
DimSanPham.
Sau đó sẽ chèn thêm (INSERT) những bản ghi vừa truy vấn được vào bảng DimSanPham.
2.4.2.2. Chiều Nhân viên
Dữ liệu của chiều nhân viên được ánh xạ từ bảng dbo.Employees và bảng
dbo.EmployeesGroup
Hình 18: Ánh xạ chiều Nhân viên
Câu lệnh SQL
SELECT a.EmployeeID, a.LastName, a.FirstName, a.TitleOfCourtesy, a.HireDate, dbo.EmployeesGroup. GroupName
FROM dbo.Employees AS a
INNER JOIN dbo.EmployeesGroup ON a.GroupID =
dbo.EmployeesGroup.GroupID
WHERE a.EmployeeID NOT IN (SELECT
Mục đích
Truy vấn ra những bản ghi dữ liệu chưa tồn tại trong bảng chiều DimNhanVien bằng cách kết nối các bảng Employees,
EmployeesGroup với điều kiện
là mã nhân viên (EmployeeID- MaNhanVien) chưa tồn tại trong bảng DimNhanVien.
Ta dùng tác vụ Derrived Column để thêm dữ liệu trường TenDayDu vào bảng vừa truy vấn được (LastName + " " + FirstName). Sau đó chèn thêm những bản ghi dữ liệu này vào bảng DimNhanVien bằng tác vụ OLE DB Destination.
2.4.2.3. Chiều Khu vực.
Dữ liệu của chiều nhân viên được ánh xạ từ bảng dbo. City và bảng
dbo.Region
Hình 19: Ánh xạ chiều Khu vực
Câu lệnh SQL Mục đích
INSERT INTO dw_Sales.dbo.DimKhuVuc( MaTinh ,TenTinh ,MaVung ,TenVung ) SELECT a.CityID, a.CityName, b.RegionID, b.RegionName
FROM dbo.City a
INNER JOIN dbo.Region b ON a.RegionID = b.RegionID
WHERE a.CityID NOT IN (SELECT
MaTinh FROM dw_Sales.dbo.DimKhuVuc)
Truy vấn ra những bản ghi dữ liệu chưa tồn tại trong bảng chiều DimKhuVuc bằng cách kết nối các bảng City, Region
với điều kiện là mã tỉnh (CityID-MaTinh) chưa tồn tại trong bảng DimKhuVuc.
Sau đó sẽ chèn thêm (INSERT) những bản ghi vừa truy vấn được vào bảng DimKhuVuc.
Hình 20: Anh xạ chiều Khách hàng
Câu lệnh SQL
INSERT INTO
dw_Sales.dbo.DimKhachHang(
MaKhachHang ,TenCongTy , DiaChi ,Tinh , Vung ,PostalCode, QuocGia)
SELECT CustomerID, CompanyName, Address, City, Region, PostalCode, Country FROM Customers
WHERE CustomerID NOT IN (SELECT MaKhachHang FROM
dw_Sales.dbo.DimKhachHang)
Mục đích
Truy vấn ra những bản ghi dữ liệu chưa tồn tại trong bảng chiều DimKhachHang với điều kiện là mã khách hàng
(CustomerID-MaKhachHang) chưa tồn tại trong bảng
DimKhachHang.
Sau đó sẽ chèn thêm (INSERT) những bản ghi vừa truy vấn được vào bảng
Hình 21: Anh xạ chiều Đơn vị vận chuyển
Câu lệnh SQL
INSERT INTO
dw_Sales.dbo.DimVanChuyen(MaDVV C, TenDVVC)
SELECT ShipperID, CompanyName FROM dbo.Shippers
WHERE ShipperID NOT IN (SELECT MaDVVC FROM
dw_Sales.dbo.DimVanChuyen)
Mục đích
Truy vấn ra những bản ghi dữ liệu chưa tồn tại trong bảng chiều DimVanChuyen với điều kiện là mã khách hàng
(ShipperID - MaDVVC) chưa tồn tại trong bảng
DimVanChuyen.
Sau đó sẽ chèn thêm (INSERT) những bản ghi vừa truy vấn được vào bảng
Câu lệnh SQL
DECLARE @StartDate DATETIME = '01/01/2018' --Ngày bắt đầu DECLARE @EndDate DATETIME = '01/01/2023' -Ngày kết thúc
--Các biến tạm thời để giữ các giá trị trong quá trình xử lý mỗi ngày trong năm DECLARE @DayOfWeekInMonth INT, @DayOfWeekInYear INT, @DayOfQuarter INT, @WeekOfMonth INT, @CurrentYear INT, @CurrentMonth INT, @CurrentQuarter INT
--/*Bảng lưu trữ số ngày trong tuần cho tháng và năm*/ DECLARE @DayOfWeek TABLE
( DOW INT, MonthCount INT, QuarterCount INT, YearCount INT )
INSERT INTO @DayOfWeek VALUES (1, 0, 0, 0) INSERT INTO @DayOfWeek VALUES (2, 0, 0, 0)
--Trích xuất và gán các phần khác nhau của các giá trị từ ngày hiện tại sang biến
DECLARE @CurrentDate AS DATETIME = @StartDate SET @CurrentMonth = DATEPART(MM, @CurrentDate) SET @CurrentYear = DATEPART(YY, @CurrentDate) SET @CurrentQuarter = DATEPART(QQ, @CurrentDate)
--Chỉ tiếp tục nếu ngày bắt đầu (@CurrentDate) nhỏ hơn ngày kết thúc(@EndDate) chỉ định ở trên
WHILE @CurrentDate < @EndDate /*Begin day of week logic*/
BEGIN
/*Kiem tra thay đổi tháng của ngày hiện tại (@CurrentDate)*/ IF @CurrentMonth != DATEPART(MM, @CurrentDate) BEGIN
UPDATE @DayOfWeek SET [MonthCount] = 0
SET @CurrentMonth = DATEPART(MM, @CurrentDate) END
/* Chèn dữ liệu vào Bảng DimTime*/ INSERT INTO DimDate
SELECT
SELECT a.OrderID Truy vấn ra những bản
, a.EmployeeIDSET @CurrentDate = DATEADD(DD, 1, @CurrentDate)ghi dữ liệu chưa tồn tại END
2.4.2.7. Ánh xạ dữ liệu cho bảng sự kiện FactSale.
Dữ liệu ở bảng FactSale sẽ được ánh xạ từ bảng dbo.Orders và dbo.Order
Details và khóa chính của các bảng có liên quan đến các bảng chiều ở dữ liệu
nguồn.
Sau đó ta dùng tác vụ Lookup trong tab Data Flow của SSIS để tra cứu và thay những
khóa chính của các bảng trong dữ liệu nguồn bằng khóa tự tăng trong Kho dữ liệu.
Hình 22: Tab Data Flow trong bước ánh xạ dữ liệu cho bảng FactSale • Tại hộp thoại Lookup Transformation Editor, tab Connection ta chọn
connection tới Kho dữ liệu và chọn bảng để tra cứu, ở đây ta chọn bảng
dbo.DimKhachHang
• Đến tab Columns ta nối 2 cột mã tương ứng với nhau để tạo mối liên kết và Click chọn cột mã tự tăng Customer_Key bên bảng chiều để thêm vào bảng dữ liệu trích xuất được ở bên trên.
Bước 3: Ta có thể thêm cột tổng tiền cho bảng trích xuất bằng hàm Derived Column
• Tại hộp thoại Derrived Column Transformation Editor kéo thả từng trường cần thiết từ mục Column xuống cột Expression để tính toán, đặt tên cột mới ở ô Derrived Column Name, OK để hoàn tất.
, dbo.Shippers.ShipperID , dbo.City.CityID , a.OrderDate , CONVERT (char(8),a.OrderDate,112) AS OrderDateKey , DATEDIFF(DAY,
a.OrderDate, a.ShippedDate) AS NumberOfShip , b.UnitPrice
, b.Quantity , b.Discount
FROM dbo.orders AS a INNER JOIN dbo.Shippers ON a.ShipperID = dbo.Shippers.ShipperID INNER JOIN
dbo.City ON a.ShipCity = dbo.City.CityID LEFT OUTER JOIN
dbo.[Order Details] AS b ON a.orderID = b.OrderID
WHERE a.orderID NOT IN (SELECT
MaDonHang FROM dw_Sales.dbo.FactSale)
mã đơn hàng (OrderID- MaDonHang) chưa tồn tại trong bảng FactSale.
Hình 24: Kho dữ liệu chủ đề bán hàng
Các bước thực hiện:
DimKhachHang, DimKhuVuc, DimNhanVien, DimSanPham, DimVanChuyen, và cuối cùng là bảng FactSale, sau đó đặt tên cho DataSourceView và Finish.
Hình 25: Chọn các bảng vào DataSourceViews
Bước 4: Chuột phải vào Cubes để tạo khối đa chiều từ bảng FactSale, chọn bảng FactSale làm Measure group tables, chọn các Measure cần, chọn next, đặt tên Cubes và kết thúc.
Bước 5: Sau khi tạo Cubes thì tự động các bảng chiều sẽ được thêm vào Dimensions,
click đúp vào mỗi bảng Dim, ta kéo những trường cần thiết sang mục Attributes. Bước 6: Để thêm Measure thống kê, ở tab Cube Structure của Cubes vừa tạo, chọn loại thống kê, trường cần thống kê. Ví dụ ở đây ta cần thống kê số lượng đơn đặt hàng, số lượng khách hàng, số loại sản phẩm ta chọn loại thống kê là Distinct count và chọn trường là MaDonHang, Customer_Key, Product_Key.
¢1 SalesCube E [ill] FactSaIe
ill Ma Don Hang
ill Don Gla Ban
ill So Luong
ill ChietKhau
ill IongIien
□ [ill] Dem so đon hàng
ill Ma Don Hang Distinct Count
□ [ill] Dem so khách hàng
ill Customer Key Distinct Count
□ [ill] Dem so loại sán phẩm
ill PiocluctKeyDistinctCount
Hình 27: Kết quả sau khi thông kê.
Kết thúc ta click chuột phải vào tên Project và chọn Deploy để thực thi tạo Cubes vào
SQL Server.
Mở SQL Server Management Studio đăng nhập vào máy chủ Analysis để xác nhận khối dữ liệu đa chiều Cubes đã được tạo thành công.
B Cỏ DESKTOP-J2SJ2D5 TRANING2020 (Microsoft Analysis Server ∖ 12.0.6024.0 - DESKTOP-J2SJ2D B O Databases B ιj⅛ Cubes_12_06 + O Data Sources S LJ Data SourceViews B I ^1 Cubes B J SaIesCube
□ □D Tong Tien Đồ uống 2013 2 4 10467242 5 Đồ uống BEE 18341637 8 Đồ uống 12134887 5 Đồ uống BBB 21338020 2 Đồ uống BBE 12608600 0 Đồ uống BBE 15133770 0 Do uống BEE 57573371 4 Đồ uống BEE 64343076 2 Đồ uống BEE 46566260 0 Gia vị BEE 61440015 Gia vị BEE 15147800 0 Gia vị BEE 60533360 Gia vị BBE 15533678 0 Gia vị ỊBOEB 53340750 Gia vị BBE 112356507. 5
Hình 28: Khôi dữ liệu đa chiều trong SQL Server
2.6. Xây dựng báo cáo Demo bằng Report Builder.
Report Builder là phần mềm được Microsoft phát triển để chuyên tạo dựng cáo cáo cũng như SQL Server Report Service những có nhiều chức năng định dạng báo cáo hơn.
Để tạo báo cáo, ta thực hiện như sau:
Bước 1: Mở Report Builder và chọn kết nối DataSource tới máy chủ Analysis và chọn
Database ta vừa tạo bằng SSAS
Hình 29: Tạo DataSource cho báo cáo
Bước 2 : Tạo mới DataSets, ta có thể tạo Dataset bằng giao diện hoặc bằng truy vấn [Dim Date]. [Nam].[Nam].ALLMEMBERS
* [Dim Date].[Quy].[Quy].ALLMEMBERS
* [Dim Date].[Thang].[Thang].ALLMEMBERS ) } ON ROWS
FROM ( SELECT ( [Dim Date].[Date Key].&[20190101] : [Dim Date].[Date
Key].&[20200101] ) ON COLUMNS
ta cũng kéo Tong tien và Ten Nhom Hang vào ô như trên để xem tỷ lệ doanh thu của từng nhóm hàng là như nào trong năm 2019.
Bước 6: Sau khi hoàn thiện báo cáo, ta chọn File > Options và điền tên server của SSRS vào mục Report server.
Sau khi Upload thành công lên Server Reporting Services ta có thể xem báo cáo trực tiếp trên web.
ưiing Tỉnh Số lượng khách hàng Số lượng hàngbán Tổng doanh thu(VND)
□ Bac Trung Bộ 5 1806 1025233
800
□ Đông bằng sông cửu Long 2 620 392895752
□ Đồng bằng sông Hồng và duyên hải Đông Bac 30 13140 7814368172.5
□ Đông Nam Bộ 33 9319 5738723326
□ Duyên hải Nam Trung Bộ ĩĩ 221Ỉ 1156818212
α Tây Nguyên 2 619 398429000
□ Trung du và miền núi phía Bắc 5 800 379865355
rồng 88 28523 16906333617.5
lame Steven Ngo Quốc Toàn
3000000000 2500000000 2000000000 1500000000 1000000000 H TỔ kinh doanh 2 1418577597.5 947627616 829240310.5 278169405 409914279 1074125135 436459097 613701157 245892827.5 369219057.5 395770718 3195445524 1762208819 1445930972 6403585315 Vlai Kieu Loan
Xlguyen Anh Tuấn ’hạm Thị Thu Trang
Borl Michael
_Ễ Hoàng Liem Xlguyen Ngọc Tháo
√U Thi Huệ
3500000000 500000000 180796284 8 13334174 13 1673492628 901230858 540444110 366287880 99518240 345027830 11634032 533814249 651204347.5 330186217.5 8321630 237801830 290682107.5 380926000 661809305.5 1123102132 126078007 315104715 681919410 564055655.5 371270428 46892400 779447782 384478350 509566496 1175878011.5 340258550 229898511.5 605720950 1078452863 327077020 382156785.5
Hình 33: Báo cáo Doanh thu theo nhân viên qua từng quý năm 2019
Hình 34: Doanh thu theo từng khu vực năm 2019
KẾT LUẬN CHƯƠNG 2
Chương này bao gồm những nội dung chính sau: Tìm hiểu dữ liệu hệ thống, xác định yêu cầu, thiết kế mô hình kho dữ liệu dựa vào dữ liệu hệ thống nguồn cùng với yêu cầu đã phân tích, thiết kế tiến trình ETL bằng công cụ SQL Server Integration Service để chuyển dữ liệu từ nguồn vào hệ thống Kho dữ liệu, sử dụng công cụ SQL Server Analysis Service để xây dựng các cơ sở dữ liệu đa chiều, sử dụng công cụ Report Builder để tạo dựng lên báo cáo mẫu cho công ty.
CHƯƠNG 3: TÔNG KẾT
3.1. Kiểm thử quy trình ETL
3.1.1. Kiểm thử quy trình tạo Kho dữ liệu
Hình 35: Kết quả chạy thử tiến trình Tạo Kho dữ liệu
Ket quả mong muốn: Tạo mới CSDL Kho dữ liệu chủ đề bán hàng dw_Sales, kiểm tra sự tồn tại của các bảng Dim NhanVien, Dim SanPham, Dim KhachHang,
Dim DVVC, Dim Date, Dim KhuVuc, FactSale trong CSDL vừa tạo nếu tồn tại thì
thực hiện xóa (Drop) bảng và sau đó tạo mới lại các bảng và thêm khóa ngoại cho bảng sự kiện FactSale.
B J d W-Sales O Database Diagrams □ I J Tables B I ZJ System Tables θ I J FiIeTabIes B J db□.DimDate □ ^∏ dbo.DimKhachHang l+l J dbo,DimKhuVuc l+l ^∏ dbo.DimNhanVien B J db□.DimSa π Pham B J db□. DimVan Chuyen B J db□,FactSaIe
Hình 36: Tạo thành công cơ sở dữ liệu Kho
3.1.2. Kiểm thử quy trình Trích xuất và nạp giữ liệu vào Kho dữ liệu
3.2. Đánh giá báo cáo thực hiện được.
Hình 38: Báo cáo người dùng xem trực tiếp trên Web Một vài nhận xét về tình hình kinh doanh của công ty dựa trên báo cáo:
- Do mấy tháng cuối năm cận kề Tết Nguyên Đán cho nên nhu cầu sử dụng các mặt hang đều tăng đặc biệt là nước giải khát.
- Từ quý I sang quý II thì doanh thu từ đồ uống giảm đáng kể do vào thơi gian này thì nhu cầu giải khát không quá cao.
- Gia vị và sản phẩm sữa là 2 mặt hàng gần như là thiết yếu nên nhu cầu sử dụng không đáng kể vì vào thời gian nào doanh thu từ 2 loại mặt hàng này cũng xấp xỉ nhau.
Qua báo cáo cũng đã giúp được tình hình kinh doanh các nhóm hàng của công ty trong suốt năm 2019, từ đó có những hành động, chiến lược cụ thể để tăng
doanh thu cho năm tiếp theo.
KẾT LUẬN CHƯƠNG 3
Chương 3 này tập trung vào việc kiểm thử tiến trình ETL và thực hiện đánh giá về báo cáo tạo dựng bằng công cụ Report Builder từ khối dữ liệu đa chiều Cubes chủ đề bán hàng. Nhìn vào báo cáo, các nhà lãnh đạo cũng nắm được tình hình kinh doanh của công ty qua đó cũng định hướng được mục tiêu phát triển trong khoảng thời gian tiếp theo là gì và có những hình thức thưởng phạt với những nhân viên hoàn
KẾT LUẬN
A. Ket quả đạt được
Bằng sự cố gắng nỗ lực của bản thân, sau một thời gian nghiên cứu đề tài, bài luận đã đạt được những kết quả sau
- Sử dụng công cụ SQL Server Integration Service để thực hiện tiến trình ETL