You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将本地SQL Server Analysis Server表格模型接入Azure Data Factory?

针对本地SSAS Tabular模型与Azure Data Factory数据采集的可行方案

方案一:通过ADF自定义活动+自托管集成运行时连接本地SSAS

  • 核心逻辑:利用ADF的**自托管集成运行时(Self-Hosted IR)**打通本地环境与Azure的连接,在自定义活动中编写脚本(C#/Python)通过SSAS的XMLA端点执行MDX/DAX查询,将结果导出到Azure存储或总部指定位置。
  • 操作步骤:
    1. 在本地服务器部署自托管IR(仅需安装客户端,无额外硬件成本),关联到Azure订阅。
    2. 在ADF中创建链接服务,选择SQL Server Analysis Services类型,指定自托管IR作为连接介质,填写本地SSAS的服务器地址、认证信息。
    3. 新建自定义活动,选择自托管IR运行,编写Python脚本示例:
      from adomdpy import ADOMDConnection
      import pandas as pd
      from azure.storage.blob import BlobServiceClient
      
      # 连接本地SSAS
      conn_str = "Provider=MSOLAP;Data Source=localhost:5050;Catalog=YourTabularModel;"
      conn = ADOMDConnection(conn_str)
      conn.open()
      
      # 执行DAX查询获取数据
      query = "EVALUATE YourTable"
      df = pd.read_sql(query, conn)
      
      # 写入Azure Blob存储
      blob_service_client = BlobServiceClient.from_connection_string("YourBlobConnStr")
      blob_client = blob_service_client.get_blob_client(container="your-container", blob="data.csv")
      blob_client.upload_blob(df.to_csv(index=False), overwrite=True)
      
      conn.close()
      
  • 优势:完全保留本地SSAS的度量值逻辑,无需重复开发;自托管IR免费,符合非营利组织成本要求;自定义脚本灵活支持复杂数据提取需求。
  • 注意事项:需确保本地服务器能访问Azure,可依赖自托管IR的默认出站连接,无需额外VPN设施。

方案二:通过Power BI Report Server REST API提取数据

  • 核心逻辑:复用现有PBIRS实例,通过其REST API获取基于SSAS模型的报表数据集结果,ADF通过Web活动调用API完成数据采集。
  • 操作步骤:
    1. 确认PBIRS的REST API已启用(默认开启,可通过管理门户验证)。
    2. 在ADF中创建Web活动,设置API路径为http://your-pbirs-server/reports/api/v2.0/Datasets({datasetId})/ExecuteQueries,配置Windows认证或OAuth认证信息。
    3. 在请求体中指定DAX查询,示例:
      {
        "Queries": [
          {
            "Query": "EVALUATE Sales"
          }
        ],
        "Parameters": {}
      }
      
    4. 将API返回的JSON数据转换为表格格式,导出到目标存储。
  • 优势:无需直接连接SSAS,利用现有PBIRS资源;配置简单,无需编写复杂脚本。
  • 注意事项:若数据集过大,需分批次执行查询避免超时;需确保PBIRS服务器允许ADF的IP访问。

方案三:SSAS备份同步至Azure AS,复用总部现有ADF流程

  • 核心逻辑:将本地SSAS Tabular模型的备份文件(.abf)同步至Azure Blob存储,恢复到Azure Analysis Services(AS)实例,总部直接用现有ADF连接Azure AS的流程采集数据,完全保留度量值。
  • 操作步骤:
    1. 配置本地SSAS自动备份:在SSAS配置管理器中设置定期备份模型到本地文件夹,生成.abf格式备份文件。
    2. 同步备份文件到Azure Blob:使用AzCopy(通过自托管IR)或ADF复制活动,将本地备份文件同步到Azure Blob存储。
    3. 自动恢复到Azure AS:通过Azure Automation运行PowerShell脚本,定期从Blob存储恢复备份到Azure AS实例:
      Import-Module SqlServer
      $asServer = "asazure://westus.asazure.windows.net/your-as-instance"
      $backupPath = "https://yourstorage.blob.core.windows.net/backups/yourmodel.abf"
      Restore-ASDatabase -Server $asServer -RestoreFile $backupPath -Name "YourModel" -AllowOverwrite
      
    4. 总部ADF连接Azure AS实例,复用现有数据采集流程。
  • 优势:完全复用总部现有ADF流程,无需额外开发;SSAS备份恢复后度量值、模型结构完全一致;Azure AS提供低成本选项(Basic层按需付费,8GB模型完全适配),非营利组织可申请Azure公益折扣进一步降低成本。
  • 注意事项:需启用Blob存储加密保障数据安全;Azure AS实例可按需启停,进一步节省闲置成本。

内容的提问来源于stack exchange,提问作者Dr. Sicoco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 05:15:34