2012-06-11 11 views
8

Tôi đã làm việc trên một dự án ETL lớn với hơn 150 bảng và trong khi thiết kế, tôi phải thực hiện thay đổi lớn về tên cột và kiểu dữ liệu cho một vài bảng.Làm mới siêu dữ liệu lược đồ đích trong Integration Services

Vấn đề của tôi là tôi không thể nhận SSIS để xem lược đồ mới cho các bảng tôi đã thay đổi. Vì vậy, tôi muốn biết làm thế nào tôi có thể nhận được SSIS để làm mới lược đồ này? Tôi thấy nó thật lố bịch khi không có cách nào để báo cho SSIS cập nhật siêu dữ liệu từ lược đồ cơ sở dữ liệu, đặc biệt là để di chuyển cơ sở dữ liệu.

Việc tạo lại dự án từ đầu không được giải đáp vì tôi đã dành một số giờ trên đó. Cũng thay đổi bằng tay 400+ cột tôi đã thay đổi cũng không phải là một lựa chọn.

+1

Điều này có thể sẽ không giải quyết được sự cố của bạn nhưng nó có thể hữu ích. Toàn bộ gói SSIS chỉ là xml. Bạn có thể thay đổi dữ liệu xml bằng cách sử dụng "Tìm và thay thế" hoặc tạo công cụ của riêng bạn. Nếu bạn muốn theo dõi những thay đổi trong SSIS, bạn phải sử dụng UDM (Data Source Views). – devarc

+0

Tôi thực sự đã xem xét gói XML của mình trước đây nhưng có quá nhiều cột để thay đổi nên ngay cả khi tìm/thay thế cũng không thể khắc phục được do tính đặc hiệu của một số thay đổi. Cảm ơn. – Ucodia

Trả lời

1

Làm theo câu trả lời tự động trước đó của tôi, cuối cùng tôi đã tìm thấy điều gì đang ngăn không cho siêu dữ liệu được làm mới.

Khi tôi lần đầu sửa đổi cơ sở dữ liệu của mình, tôi thực sự đã thực hiện một tập lệnh khác đang thực hiện DROP trên bảng và sau đó là CREATE TABLE để tạo lại bảng từ đầu. Ở đó, SSIS không bao giờ có thể phát hiện những thay đổi và tôi phải làm tất cả những điều trong câu trả lời khác của tôi.

Sau đó hôm nay tôi phải thực hiện một số sửa đổi nhỏ và lần này tôi đã chọn một số ALTER TABLE. Về mặt khoa học, lần này SSIS đã phát hiện tất cả các thay đổi ngay cả khi thông báo cho tôi làm mới các cột từ trình soạn thảo nâng cao, điều này làm việc tốt.

Vì vậy, về cơ bản tất cả những vấn đề này là do kiến ​​thức kém của tôi về DBA và các phương pháp hay nhất của nó.

1

Tôi đã tìm được cách khắc phục nhưng điều đó hơi phức tạp một chút.

Thậm chí nghĩ rằng tôi đã loại bỏ hoàn toàn bất kỳ tham chiếu nào của bảng khỏi các gói của tôi, tôi luôn nhận được siêu dữ liệu cũ.

tôi vẫn không có cách khắc phục rõ ràng nhưng đây là những gì tôi đã làm để sửa chữa nó:

  • Removed bất kỳ tham chiếu đến nguồn và đích bảng liên quan
  • xóa obj và thư mục bin từ thư mục dự án
  • lưu, đóng cửa và sau đó mở cửa trở lại các dự án
  • tạo luồng dữ liệu mới từ đầu và siêu dữ liệu được cập nhật là cuối cùng có

Không biết nơi những thông tin được lưu trữ nhưng tôi nghi ngờ rằng thư mục obj giữ một bản sao lưu trữ của gói của bạn hoặc Visual Studio giữ siêu dữ liệu trong bộ nhớ được giải phóng khi bạn đóng nó. Dù sao, làm theo các bước sau nên sửa chữa nó.

+0

Tôi nghĩ rằng nếu bạn mở thành phần đích và chuyển đến tab ánh xạ, nó sẽ nhận siêu dữ liệu mới. Điều này thường làm việc cho tôi. – rvphx

+0

Đó là điều đầu tiên tôi làm nhưng nó luôn mang lại cho tôi siêu dữ liệu cũ. – Ucodia

16

Điều gì về việc sử dụng Advanced Editor và nhấn nút Refresh ở bên trái bên dưới?

+0

Ngẫu nhiên đơn giản nhưng đã làm công việc cho tôi! – Fishcake

+0

@Fishcake - Một cái gì đó ngu ngốc này đơn giản nên có trên trình chỉnh sửa không nâng cao (ví dụ: Bình thường). Tôi không biết tại sao Microsoft nghĩ rằng nên ẩn một loạt, theo ý kiến ​​của tôi (và tôi giả định nhiều ý kiến ​​của người khác), chức năng BASIC đằng sau một trình soạn thảo nâng cao. – KSwift87