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

Azure Data Factory无Tableau连接器时,如何将Blob数据推送至Tableau Hyper?

解决方案:将Azure Blob存储的CSV/Parquet推送至Tableau

方案一:Python + Tableau Hyper API 直接处理

这是最灵活的实现方式,通过Python完成从Blob取数、生成Hyper文件、推送到Tableau的全流程。

  1. 先安装依赖包:
pip install tableauhyperapi azure-storage-blob pandas pyarrow tableauserverclient
  1. 核心代码示例:
from azure.storage.blob import BlobServiceClient
import pandas as pd
from tableauhyperapi import HyperProcess, Connection, Telemetry, CreateMode, TableDefinition
import tableauserverclient as TSC

# 1. 从Azure Blob下载文件
blob_service_client = BlobServiceClient.from_connection_string("你的Azure Blob连接字符串")
container_client = blob_service_client.get_container_client("你的容器名")

# 读取CSV文件
csv_blob = container_client.download_blob("blob路径下的csv文件")
df_csv = pd.read_csv(csv_blob)

# 读取Parquet文件
parquet_blob = container_client.download_blob("blob路径下的parquet文件")
df_parquet = pd.read_parquet(parquet_blob, engine="pyarrow")

# 合并或单独处理数据(按需调整)
final_df = pd.concat([df_csv, df_parquet], ignore_index=True)

# 2. 生成Tableau Hyper文件
with HyperProcess(telemetry=Telemetry.SEND_USAGE_DATA_TO_TABLEAU) as hyper:
    with Connection(endpoint=hyper.endpoint, database="output.hyper", create_mode=CreateMode.CREATE_AND_REPLACE) as connection:
        # 根据DataFrame自动生成表结构
        table_def = TableDefinition.from_dataframe(final_df, table_name="Extract")
        connection.create_table(table_def)
        # 将数据写入Hyper文件
        connection.execute_command(
            f"COPY {table_def.table_name} FROM '{final_df.to_csv(index=False)}' WITH (FORMAT CSV, HEADER)"
        )

# 3. 推送Hyper文件到Tableau Server/Cloud(可选,也可让Tableau直接读取Blob中的Hyper文件)
tableau_auth = TSC.TableauAuth("用户名", "密码", "站点名")
server = TSC.Server("https://你的tableau服务器地址", use_server_version=True)

with server.auth.sign_in(tableau_auth):
    datasource = TSC.DatasourceItem(server.site_id)
    new_datasource = server.datasources.publish(datasource, "output.hyper", mode=TSC.Server.PublishMode.OVERWRITE)
    print(f"发布成功,数据源ID: {new_datasource.id}")

方案二:Azure Data Factory 自定义活动执行Python脚本

ADF本身没有Tableau连接器,但可以通过自定义活动调用Python脚本完成上述流程:

  • 在ADF中创建自定义活动,选择Azure集成运行时或Batch运行时
  • 将处理Blob生成Hyper并推送的Python脚本打包,上传到ADF的关联存储(比如Blob存储)
  • 在自定义活动中配置脚本路径、依赖包安装命令(比如pip install ...),即可实现自动化调度

方案三:无代码方案——Tableau Prep Builder 自动化流程

如果不想写代码,可以用Tableau Prep Builder快速实现:

  1. 打开Tableau Prep,创建新流程,直接连接Azure Blob存储(支持读取CSV/Parquet)
  2. 配置数据清洗、合并等步骤,输出设置为Tableau Hyper文件
  3. 将流程保存到Tableau Cloud/Server,用Tableau Prep Conductor设置定时运行;或者导出流程文件,用Windows任务计划、Azure自动化账户定时触发执行

内容的提问来源于stack exchange,提问作者AzSurya Teja

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:52:43