如何在ADF或SQL中将JSON/JSONL文件数据转换为二进制格式?
JSONL/JSON转二进制格式:ADF与SQL实现方案
Azure Data Factory(ADF)实现
ADF可以直接在数据接收器(Sink)环节完成转换,适配不同复杂度的场景:
复制活动快速实现
- 源数据集配置为JSON/JSONL格式,指定文件路径、行分隔符(针对JSONL)等参数。
- 目标数据集选择**二进制(Binary)**格式,无需额外格式配置。
- 运行复制活动后,源文件的文本内容会直接以二进制字节流的形式写入目标存储,完全满足终端用户的格式要求。
数据流处理复杂场景
如果需要先对JSON/JSONL数据做清洗、结构化转换:- 用源转换读取JSON/JSONL并解析为结构化数据。
- 添加映射、过滤等步骤完成数据处理。
- 接收器转换选择二进制格式输出,将处理后的文本序列化为二进制写入目标。
SQL实现(以SQL Server为例)
SQL可通过函数和命令完成JSON/JSONL到二进制的转换,适合数据库内数据处理或小文件导出:
数据库内JSON字段转二进制
使用CAST或CONVERT函数直接转换文本为二进制类型:SELECT CAST(json_column AS VARBINARY(MAX)) AS binary_data FROM your_table;导出JSON/JSONL文件为二进制
结合OPENROWSET读取文件,再转换导出:-- 读取JSONL文件并转换为二进制 SELECT CAST(BulkColumn AS VARBINARY(MAX)) AS binary_data FROM OPENROWSET(BULK 'D:\data\input.jsonl', SINGLE_CLOB) AS source_data;若要导出为本地二进制文件,可使用
bcp命令:bcp "SELECT CAST(BulkColumn AS VARBINARY(MAX)) FROM OPENROWSET(BULK 'D:\data\input.jsonl', SINGLE_CLOB) AS d" queryout "D:\output\result.bin" -S your_sql_server -d your_database -T -n
总结
ADF更适合构建端到端的ETL流水线,直接在Sink环节输出二进制格式,无需额外编码;SQL则适合数据库内的数据转换或小规模文件的导出处理,两者都能满足你的需求。
内容的提问来源于stack exchange,提问作者Nezko1
相关产品推荐
相关产品推荐

