Tôi hiện đang trong quá trình tạo ETL cho kho dữ liệu của chúng tôi. Chúng tôi đang sử dụng SSIS 2008, nhưng chúng tôi đang gặp vấn đề, trong đó lớn nhất là khó sử dụng lại các thành phần. Chúng tôi có các gói riêng cho mỗi bảng và mỗi gói sẽ lấy đầu vào một số biến từ gói cha. Khi chúng tôi thay đổi các biến đầu vào này, chúng tôi bắt buộc phải đi vào từng gói (hiện tại chúng tôi có 15 hoặc hơn, nhưng con số này sẽ tăng lên đáng kể) và sửa đổi gói để xử lý các thay đổi đó. Ngoài ra còn có các vấn đề khác, bao gồm việc không thể chạy SQL tùy ý để trích xuất, khả năng ghi nhật ký kém, v.v.
Toàn bộ quá trình này sẽ mạnh mẽ hơn nhiều nếu có cách phát triển mã ETL của chúng tôi, cho phép tái sử dụng mã, thư viện chung, kiểm tra đơn vị tốt hơn, v.v. Có ngôn ngữ / API ETL tiêu chuẩn thực tế cho SQL Server không? Tôi đang tìm cách tránh các công cụ GUI càng nhiều càng tốt.
Chỉnh sửa: Tôi nên đề cập đến nền tảng của tôi. Tôi không phải là một DBA và không được đào tạo DBA chính thức (hoặc không chính thức), về cơ bản tôi đã tìm ra những thứ này khi tôi đi cùng, vì vậy có nhiều khả năng tôi đang cố gắng làm những điều không phù hợp với SSIS hoặc tiếp cận ETL này dự án từ góc độ sai. Ngoài ra, tôi hiện đang làm việc trong chính phủ tiểu bang, vì vậy mọi giải pháp yêu cầu mua gói phần mềm mới đều không nằm trong khả năng.
Đây là một trong những nhiệm vụ của chúng tôi. Chúng tôi đang sử dụng Gói SSIS duy nhất để tải từng bảng trong kho của mình. Mỗi gói Fact và gói Dimension thường giống nhau, chúng chỉ khác nhau ở
- Trích xuất từ cơ sở dữ liệu nguồn
- Thao tác trong luồng dữ liệu
- Sáp nhập vào bảng đích
Những gì tôi muốn có thể làm (mà tôi thấy khó thực hiện trong SSIS)
- Tải truy vấn trích xuất từ một tệp văn bản. Khi các nhà phát triển viết và kiểm tra các truy vấn trích xuất của họ, tôi không cần phải thao tác truy vấn của họ theo bất kỳ cách nào trước khi SSIS chạy nó và tôi không phải cắt và dán truy vấn vào đối tượng Nguồn DB.
- Kiểm tra từng thành phần riêng lẻ. Tôi có thể kiểm tra quy trình ETL hoàn chỉnh cho một bảng riêng lẻ, không phụ thuộc vào các bảng khác.
- Thực hiện sửa đổi logic được chia sẻ ở một nơi, không phải chỉnh sửa từng gói riêng lẻ. Mọi gói đều tải dữ liệu vào các bảng kiểm toán theo cùng một cách, nếu tôi muốn thay đổi dữ liệu được tải đã kiểm toán, tôi không muốn phải chỉnh sửa tất cả 15 gói (con số này sẽ lớn hơn nhiều theo thời gian).
Toàn bộ quá trình cảm thấy như nó sẽ dễ thực hiện hơn và mạnh mẽ hơn nếu được thực hiện theo chương trình với việc sử dụng mã chia sẻ đúng cách.