如何上传json/jsonl文件导入到lakehouse的表中

前提条件

当前仅支持以下标准格式的json/jsonl文件,若不符合规范则无法成功识别

JSONL格式

JSON格式

方案一:使用云器lakehouse web端上传功能导入

操作步骤:

在如下地方均可以点击「上传数据」

  • 实例首页->数据上传
  • 开发->数据树左侧
  • 数据资产地图->数据上传
  • 数据资产地图->数据管理->数据树->数据上传

将符合标准格式规范的,且后缀是json/jsonl的文件拖拽/添加至上传区域,同时选择具体的 配置信息,详细操作可见

https://yunqi.tech/documents/upload\\\\_data

上传到新表

当文件添加后,系统会给予json/jsonl的规则解析文件中的信息,并生成相应的字段名称、类型、以及具体的数值。

当确定解析的信息准确无误后,可自定义勾选本次希望上传和导入的数据。

点击确定后,系统会自动创建相应的表,同时将json文件的数据导入到该表中。

上传到已有表

  • 选择目标表后,点击下一步,会列出目标表的具体字段。
  • 请确保目标文件中的数据有相应的字段信息,若存在字段和文件中字段不一致的场景,则
  • 若文件中没有目标表的字段,则该字段的数值默认为null
  • 若文件中有的字段没有在表中出现,则该字段默认不进行任何处理。
  • 若文件中的字段与表中的字段名一致,但是类型不一致,则该数值会被判定为错误数据。

方案二:使用外部volume导入

第一步:创建外部volume的链接

CREATE STORAGE CONNECTION IF NOT EXISTS oss_test3    TYPE oss    ENDPOINT = '对应的endpoint'    ACCESS_ID = '您的access_id'    ACCESS_KEY = '您的access_key'    COMMENTS = 'OSS public endpoint' ;

第二步:创建外部volume

CREATE EXTERNAL VOLUME  if not exists my_volumeLOCATION 'oss://json_file/'USING CONNECTION oss_test3DIRECTORY = (enable=true, auto_refresh=true)RECURSIVE=true;

第三步:校验volume是否创建成功(可选)

list VOLUME my_volume;

第四步:使用 sqlline 工具或 数据库管理工具。该命令暂不支持在 Studio 中运行。

PUT '/Users/xxx/xxxx.json' to  volume public.my_volume file 'ods.json';

第五步:查询上传的json文件格式(可选)

SELECT * FROM VOLUME my_volume USING json FILES('odst.json') LIMIT 5;

第六步:基于文件解析后的字段创建相应的lakehouse table(table创建过程略)并将数据导入到table中

COPY INTO day_report_simpleFROM VOLUME my_volumeUSING JSONFILES('ods.json');

QA

问题一:使用数据上传功能上传的数据解析的字段不全

使用数据上传功能默认只解析json中前1000行的字段信息,若1000行外的数据中有不同的key和value默认不会进行处理。

问题二:为什么创建了CONNECTION和VOLUME但是依旧提示上传文件失败?

当前在云器studio产品内,无法通过运行结果直接判断CONNECTION和VOLUME是否成功创建,建议参考方案二中的第三步判断是否创建成功。

联系我们
预约咨询
微信咨询
电话咨询