استخدام نتائج الاستعلام XMLA في تكامل الخدمات

StackOverflow https://stackoverflow.com/questions/490059

  •  20-08-2019
  •  | 
  •  

سؤال

لدي XMLA الاستعلام والتي ترجع الدولة الأخيرة معالجتها تاريخ تحليل خدمات مكعب كما XML مثل:

الاستعلام:

<Discover xmlns="urn:schemas-microsoft-com:xml-analysis">
  <RequestType>DISCOVER_XML_METADATA</RequestType>
  <Restrictions >
    <RestrictionList xmlns="urn:schemas-microsoft-com:xml-analysis">
      <DatabaseID>SSAS - Premium and Claims V2</DatabaseID>
      <CubeID>PDW04 1</CubeID>
      <ObjectExpansion>ReferenceOnly</ObjectExpansion>
    </RestrictionList>
  </Restrictions>
  <Properties />
</Discover>

النتيجة:

<return xmlns="urn:schemas-microsoft-com:xml-analysis">
  <root xmlns="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:schema targetNamespace="urn:schemas-microsoft-com:xml-analysis:rowset" xmlns:sql="urn:schemas-microsoft-com:xml-sql" elementFormDefault="qualified">
      <xsd:element name="root">
        <xsd:complexType>
          <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="row" type="row" />
          </xsd:sequence>
        </xsd:complexType>
      </xsd:element>
      <xsd:simpleType name="uuid">
        <xsd:restriction base="xsd:string">
          <xsd:pattern value="[0-9a-zA-Z]{8}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{4}-[0-9a-zA-Z]{12}" />
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:complexType name="xmlDocument">
        <xsd:sequence>
          <xsd:any />
        </xsd:sequence>
      </xsd:complexType>
      <xsd:complexType name="row">
        <xsd:sequence>
          <xsd:element sql:field="METADATA" name="METADATA" type="xmlDocument" />
        </xsd:sequence>
      </xsd:complexType>
    </xsd:schema>
    <row>
      <xars:METADATA xmlns="http://schemas.microsoft.com/analysisservices/2003/engine" xmlns:ddl2="http://schemas.microsoft.com/analysisservices/2003/engine/2" xmlns:ddl2_2="http://schemas.microsoft.com/analysisservices/2003/engine/2/2" xmlns:xars="urn:schemas-microsoft-com:xml-analysis:rowset">
        <Cube>
          <Name>Premium</Name>
          <ID>PDW04 1</ID>
          <CreatedTimestamp>2008-11-23T22:31:06</CreatedTimestamp>
          <LastSchemaUpdate>2009-01-22T00:50:13</LastSchemaUpdate>
          <LastProcessed>2009-01-07T22:28:34</LastProcessed>
          <State>Processed</State>
        </Cube>
      </xars:METADATA>
    </row>
  </root>
</return>

وأود أن تكون قادرة على استخدام هذا الاستعلام XMLA في حزمة خدمات تكامل ، تحليل وتخزين النتيجة في قاعدة بيانات SQL Server الجدول.ومع ذلك فقط المهام التي يبدو أن تنفيذ الاستعلام XMLA هو "خدمات تحليل تنفيذ DDL" المهمة التي لا تملك طريقة إرجاع نتائج الاستعلام بقدر ما استطيع ان اقول.

هل من أحد لديه أي اقتراحات بشأن كيف يمكن تحقيق ذلك ؟

هل كانت مفيدة؟

المحلول

في حين يمكنك تشغيل "العادية" MDX/XMLA من خلال آليات مختلفة في SSIS ، بما في ذلك عبر تنفيذ المهام SQL, سيكون دائما التفاف عليه في الداخل .هو أعلى مستوى الأسلوب تماما مثل و لا يمكن أن تكون ملفوفة في الداخل ، ومن هنا جاءت مشكلة.

كنت قد حصلت على اثنين من الحلول الممكنة:

  1. التفاف XMLA داخل تنفيذ المهام SQL باستخدام OPENQUERY الاتصال داخل قواعد البيانات العلائقية.كنت تفعل شيئا مثل SELECT * from OPENQUERY() ويمكنك القيام بعمل جيد من تحليل XML resultset داخل SQL Server.
  2. تفتح لك SSAS طريق تكوين ملقمات HTTP الوصول (http://www.microsoft.com/technet/prodtechnol/sql/2005/httpasws.mspx) حتى تتمكن من ارسال XMLA بمثابة استدعاء خدمة ويب.هناك خدمة ويب المهمة في SSIS التي يمكنك استخدامها لتنفيذ وتستهلك النتائج.

كل من هذه الخيارات الواضح أن بعض الهبوط.

نصائح أخرى

لاكتشاف الأوامر:

وهذا يعمل بشكل جيد للغاية بالنسبة لي:

وإنشاء مهمة النصي باستخدام XMLA قضية أسماء الفضاء الاستعلام اكتشاف. مرة واحدة تتلقى ردا تحليل XMLA وإضافة إلى VB.NET DataTable ووإدراج البيانات تحليل في جدول SQL.

ويمكنك أيضا استخدام بناء الجملة DMV جديد في SSAS 2008 أو وظيفة DMV من ASSP لفي SSAS 2005 لإعادة هذه البيانات في شكل جداول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top