首页 > 编程语言 >java导入json数据至doris

java导入json数据至doris

时间:2024-09-09 08:52:03浏览次数:8  
标签:java String hutool value json import doris cn

表结构字段名称与json  key名称一致:

package com.ruoyi.doris;


import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.nio.charset.Charset;
import java.util.UUID;


@Slf4j
public class PurReqLineTest {
public static void main(String[] args) throws Exception {
        // be
        String host = "192.168.0.132";
        // be接口
        int port = 8030;
        String database = "br";
        String table = "PurchaseRequestLines";
        String user = "root";
        String passwd = "xxx";
//        String s = "[{\"longitude\": \"19\", \"city\": \"北京\", \"latitude\": \"39.916927\"},{\"longitude\": \"2010\", \"city\": \"北京\", \"latitude\": \"39.916927\"}]";

        String s = FileUtil.readString(new File("D:\\采购需求.txt"), Charset.defaultCharset());
//        System.out.println(s);
        JSONArray value = JSONObject.parseObject(s).getJSONArray("value");
        log.info("size {}", value.size());


        for(int i=0;i<value.size(); i++){

                JSONArray linesArray  = value.getJSONObject(i).getJSONArray("DocumentLines");

                for(int j=0; j<linesArray.size(); j++) {
                        JSONObject lineObj = linesArray.getJSONObject(j);
                        log.info("{}",lineObj.getInteger("DocEntry").toString() + lineObj.getInteger("LineNum").toString());
                        lineObj.put("LineEntryId", lineObj.getInteger("DocEntry").toString() + lineObj.getInteger("LineNum").toString());
                        linesArray.set(j, lineObj);

                        String label = getUUID();
                        HttpResponse response = HttpRequest.put("http://" + host + ":" + port + "/api/" + database + "/" + table + "/_stream_load")
                                .basicAuth(user, passwd)
                                .header("Expect", "100-continue")
                                .header("label", label)
                                .header("Content-Type", "text/plain; charset=UTF-8")
                                .header("format", "json")
                                // 导入json数组
//                                .header("strip_outer_array", "true")
                                .body(lineObj.toString()).setFollowRedirects(true)
                                .execute();

                        log.info(response.body());

//                        Thread.sleep(3*1000);
                }

                
        }



        }


public static String getUUID() {
        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
        return uuid;
        }
        }

 

表结构字段名称与json key不一致

package com.ruoyi.doris;


import cn.hutool.core.io.FileUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;

import java.io.File;
import java.nio.charset.Charset;
import java.util.UUID;


@Slf4j
public class PurReqLineTest {
public static void main(String[] args) throws Exception {
        // be
        String host = "192.168.0.132";
        // be接口
        int port = 8030;
        String database = "br";
        String table = "PurchaseRequestLines";
        String user = "root";
        String passwd = "xxxx";
//        String s = "[{\"longitude\": \"19\", \"city\": \"北京\", \"latitude\": \"39.916927\"},{\"longitude\": \"2010\", \"city\": \"北京\", \"latitude\": \"39.916927\"}]";

        String s = FileUtil.readString(new File("D:\\采购需求.txt"), Charset.defaultCharset());
//        System.out.println(s);
        JSONArray value = JSONObject.parseObject(s).getJSONArray("value");
        log.info("size {}", value.size());


        for(int i=0;i<value.size(); i++){

                JSONArray linesArray  = value.getJSONObject(i).getJSONArray("DocumentLines");

                for(int j=0; j<linesArray.size(); j++) {
                        JSONObject lineObj = linesArray.getJSONObject(j);
                        log.info("{}",lineObj.getInteger("DocEntry").toString() + lineObj.getInteger("LineNum").toString());
                        lineObj.put("LineEntryId", lineObj.getInteger("DocEntry").toString() + lineObj.getInteger("LineNum").toString());
                        linesArray.set(j, lineObj);

                        String label = getUUID();
                        HttpResponse response = HttpRequest.put("http://" + host + ":" + port + "/api/" + database + "/" + table + "/_stream_load")
                                .basicAuth(user, passwd)
                                .header("Expect", "100-continue")
                                .header("label", label)
                                .header("Content-Type", "text/plain; charset=UTF-8")
                                .header("format", "json")
                                // 导入json数组
//                                .header("strip_outer_array", "true")
                                .body(lineObj.toString()).setFollowRedirects(true)
                                .execute();

                        log.info(response.body());

//                        Thread.sleep(3*1000);
                }


        }



        }


public static String getUUID() {
        String uuid = UUID.randomUUID().toString().trim().replaceAll("-", "");
        return uuid;
        }
        }

 

标签:java,String,hutool,value,json,import,doris,cn
From: https://www.cnblogs.com/huanghongbo/p/18403887

相关文章

  • 某小厂Java开发岗面试复盘
    目录一:list和set区别二:HashSet是如何保证元素不重复三:HashMap是线程安全的吗?为什么 线程不安全四:HashMap的扩容机制 五:HashMap在1.7和1.8有啥区别六:对象的四种引用 七:获取反射的三种方法八:Arrays.sort和 Collections.sort的实现原理和区别九:数组在内存中是如何分......
  • 大数据新视界--大数据大厂之Java 与大数据携手:打造高效实时日志分析系统的奥秘
           ......
  • Java 同步锁性能分析
    同步锁在多线程编程中是保证线程安全的重要工具,其性能开销一直是不可忽视的存在。(一)性能验证说明为了直观说明我们可以直接先准备两个Java代码用例,我们通过高并发环境下的计数器递增操作来对比使用同步锁和不使用同步锁的性能差异。1.使用同步锁的代码示例使用ReentrantLock来保护......
  • Java 分级锁
    在JDK1.8中,synchronized关键字的性能得到了显著提升,这主要得益于JVM对锁机制进行了一系列优化:锁的分级及其优化路径(大体可以按照下面的路径进行升级:偏向锁—轻量级锁—重量级锁,锁只能升级,不能降级,所以一旦升级为重量级锁,就只能依靠操作系统进行调度)。要想了解锁升级的过......
  • Java的并发编程模型同步器
    在Java的并发编程中,同步器(Synchronizer)是一个非常重要的概念,它用于管理多个线程之间的协作,以确保线程间的正确交互和数据的一致性。Java并发包java.util.concurrent中提供了多种同步器,这些同步器主要用于实现锁(Locks)和其他并发原语(ConcurrencyPrimitives)。主要的同步器包括:......
  • 什么是 Java 虚拟机(JVM)?它的主要作用是什么?
    Java虚拟机(JavaVirtualMachine,简称JVM)是运行Java字节码的虚拟机。它是Java平台的一个核心部分,使得Java程序能够在任何安装了JVM的计算机上运行,而无需关心底层的操作系统或硬件差异。JVM为Java应用程序提供了一个安全、高效和可移植的执行环境。JVM的主要作......
  • 走向Java Server Page的第一个网页
    环境配置有关tomcat和jdk的环境配置在上一篇博客已经讲述,存在问题请查看上一篇。开发需求计算1到100的连续和,并将结果显示在一个带有样式的HTML页面中。当这个JSP页面被服务器处理时,Java代码会被执行,计算结果会被嵌入到HTML中,然后发送给客户端浏览器显示。代码实现首先使......
  • JavaScript高级——数据、变量、内存
    1、数据存储在内存中代表特定信息的东西,本质上是010101…….数据的特点:可传递、可运算一切皆数据内存中所有操作的目标:数据操作包括:算术运算、逻辑运算、赋值、运行函数(调用函数传参)。2、内存内存条通电后产生的可存储数据的空间(临时的)内存产生和死亡:内存条(电路板)——> ......
  • 值得收藏,2024最新Java学习线路图
    目录概述01.Java基础02.JavaWeb03.Java开发框架04.中间件&服务框架05.面试题精选06.项目实战原文:https://mp.weixin.qq.com/s/2KATrfgSOiMtg2IIcnI8Jg概述作为一个称职的Java程序员,谁能拒绝拥有一张学习线路图呢,有了学习线路图,让学习事半功倍。废话不多说,直接......
  • Java中的异步日志记录:Logback与AsyncAppender的配置与优化
    Java中的异步日志记录:Logback与AsyncAppender的配置与优化大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java应用中,日志记录是关键的功能,但同步日志记录可能会影响性能。为了解决这个问题,异步日志记录可以显著提高应用的响应速度。本文将详细介绍......