2012-01-12 35 views
8

Làm cách nào để SSIS kết nối với khối Hyperion Essbase của Oracle để sử dụng nó làm nguồn dữ liệu? Googling này trả lại như sau: "một công cụ của bên thứ ba có thể làm điều đó"Kết nối Hyperbase Essbase trong SSIS

  1. Một similar question được hỏi về một phiên bản cụ thể không có câu trả lời thật khác so với

  2. A microsoft SSIS connectors wiki cho biết bạn có thể thực hiện việc này thông qua Star Analytics.

  3. Bắt đầu với SQL Server 2005 SP2, Reporting Services (SSRS) có kết nối nguồn dữ liệu. Tính năng sản phẩm này dường như không dịch sang bất kỳ đối tượng nào cho SSIS. Một blogger cho rằng điều này có thể đã được thực hiện như là quid pro quo sắp xếp lại trước khi Oracle mua Hyperion kể từ khi Hyperion bắt đầu hỗ trợ kết nối với khối SQLAS 2005 SSAS tại thời điểm đó.

  4. Theo @billinkc, anh sử dụng để kết nối với nó bằng .NET. Một chút đào trở lại Hyperion Application Builder .NET (HAB.NET). Lúc đầu, điều này dường như là một giải pháp đầy hứa hẹn, nhưng hóa ra sản phẩm đã bị ngưng với bản phát hành 11.1.3. @ billinkc cũng cung cấp một mẫu mã ngay bây giờ, vì vậy tôi sẽ kiểm tra nó ra và xem nếu điều này hoạt động.

Ngoài việc cấp phép sản phẩm máy chủ Star Analytics có chi phí nghiêm cấm (đối với tôi), còn có giải pháp nào khác không?

+1

Tôi không còn quyền truy cập vào cài đặt EssBase nhưng tôi có thể kết nối với SSRS & .NET ngay. Vì vậy, tôi không thấy lý do tại sao nó không hoạt động giống với SSIS. Nguồn dữ liệu của bạn có thể cần phải là một thành phần kịch bản để kéo nó xuống nhưng nên làm việc – billinkc

+0

Điều đó nghe có vẻ đáng khích lệ. Tôi biết SSRS có thể kết nối với nó, nhưng nó không xuất hiện tính năng kết nối này đã được chuyển đến SSIS. Tôi sẽ xem xét nếu có ai đã xuất bản bất kỳ tập lệnh nào về kết nối và xuất dữ liệu qua .net. –

Trả lời

6

Tôi chưa nghe nói về HAB.NET nhưng +1 cho việc tìm kiếm. Thay vào đó, tôi chỉ có một thử nghiệm kết nối đơn giản bẩn đi trong NET như dưới đây. Tôi đã sửa đổi nó một chút để làm việc với các công cụ DTS. Rõ ràng, bạn sẽ cần phải xác định các cột và kiểu đệm của bạn nhưng hy vọng điều này sẽ giúp bạn vượt qua các công cụ hyperion.

Để truy cập vào lớp Microsoft.AnalysisServices.AdomdClient, hãy thêm tham chiếu đến ADOMD.NET và lưu tất cả. Sau đó, mã bên dưới sẽ hoạt động đúng.

using System; 
using System.Data; 
using Microsoft.SqlServer.Dts.Pipeline.Wrapper; 
using Microsoft.SqlServer.Dts.Runtime.Wrapper; 

using Microsoft.AnalysisServices.AdomdClient; 

public class ScriptMain : UserComponent 
{ 
    public override void CreateNewOutputRows() 
    { 
     string connectionString = string.Empty; 
     connectionString = "Provider=MSOLAP;Data Source=http://hyperion00:13080/aps/XMLA; Initial Catalog=GrossRev;User Id=Revenue;Password=ea$yMon3y;"; 
     string query = "SELECT ..."; 
     AdomdDataReader reader = null; 
     try 
     { 
      using (AdomdConnection conn = new AdomdConnection(connectionString)) 
      { 
       conn.Open(); 
       using (AdomdCommand cmd = new AdomdCommand(query, conn)) 
       { 
        reader = cmd.ExecuteReader(); 

        while (reader.Read()) 
        { 
         // Replace Console.WriteLine with assignment of 
         // Output0Buffer.AddRow(); 
         // Output0Buffer.column = (stronglyTyped) reader[i] 
         Console.WriteLine(reader.GetString(0)); 
         Console.WriteLine(reader.GetString(1)); 
        } 
        Console.WriteLine("fin"); 
       } 

      } 
     } 
     catch (Exception ex) 
     { 
      Console.WriteLine(ex); 

      throw; 
     } 
    } 
} 
+0

Điều này giải quyết được vấn đề của tôi từ đầu đến cuối. Cảm ơn nhiều! –

Các vấn đề liên quan