ADF通过SHIR连接本地MariaDB复制指定字段及预览数据的技术咨询
确保MariaDB端执行字段过滤的ADF解决方案
核心实现思路
1. 用自定义SQL强制源端过滤
别用ADF的“表复制”模式,直接在每个复制活动的源配置里写指定字段的SQL查询,比如:
SELECT required_col1, required_col2 FROM target_table
这种情况下,SHIR会把查询直接发往MariaDB服务器执行,仅返回你要的字段数据——不存在你担心的“Azure端暂存全表数据”问题,过滤逻辑完全在源数据库完成,SHIR只是中转结果集。
如果要处理100张表,用ADF的ForEach活动批量处理更高效:把所有表名和对应需要的字段清单存在一个配置文件(比如Azure Blob里的JSON),然后遍历这个清单,动态生成每张表的查询语句,不用手动建100个复制活动。
2. 限制预览数据的权限
预览能看到全列是因为当前MariaDB账号有全表权限,直接改权限就行:
给ADF用的MariaDB账号只授予所需字段的SELECT权限,而非整张表的权限,示例语句:
GRANT SELECT (col1, col2) ON db_name.table_name TO 'adf_user'@'shir_host_ip';
这样就算在ADF里点预览数据,也只能看到授权的字段,符合数据政策要求。
验证方法
- 查MariaDB的慢查询日志或审计日志,确认ADF发送的是指定字段的SELECT语句,不是全表查询。
- 监控SHIR的网络流量,只会传输所需字段的数据集,不会有全表数据经过公司网络。
内容的提问来源于stack exchange,提问作者user25175650
相关产品推荐
相关产品推荐

