草庐IT

PostMan工具支持DorisStreamLoad

wangleigiser 2024-07-05 原文

Stream Load JSON 数据导入

1. 库表建立

create database test;
 CREATE TABLE `doris_test_sink` (
  `id` int(11) NULL COMMENT "",
  `number` int(11) NULL COMMENT "",
  `price` decimal(12, 2) NULL COMMENT "",
  `skuname` varchar(40) NULL COMMENT "",
  `skudesc` varchar(200) NULL COMMENT ""
) ENGINE=OLAP
DUPLICATE KEY(`id`)
COMMENT "OLAP"
DISTRIBUTED BY HASH(`id`) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"in_memory" = "false",
"storage_format" = "V2",
"light_schema_change" = "true"
)

2. 数据准备

执行vim stream_load_data.json,并加入如下数据

[{"id":1,"number":1,"price":1.1,"skuname":"n1","skudesc":"n1"},{"id":2,"number":2,"price":1.2,"skuname":"n2","skudesc":"n2"}]

3. Stream Load导入

执行如下命令导入JSON数据到Doris

curl --location-trusted -u admin:your_pwd  -T stream_load_data.json  -H "label:alex-123" http://host/api/test/doris_test_sink/_stream_load -H "strip_outer_array:true" -H "format:json"

说明:

  • strip_outer_array:true : 因为传入数据是JSON数组,所以需要设置 strip_outer_array为true
  • format:json : 数据格式,支持CSV,JSON
    执行结果如下:
{
    "TxnId": 7023,
    "Label": "alex-123",
    "TwoPhaseCommit": "false",
    "Status": "Success",
    "Message": "OK",
    "NumberTotalRows": 2,
    "NumberLoadedRows": 2,
    "NumberFilteredRows": 0,
    "NumberUnselectedRows": 0,
    "LoadBytes": 126,
    "LoadTimeMs": 26,
    "BeginTxnTimeMs": 0,
    "StreamLoadPutTimeMs": 1,
    "ReadDataTimeMs": 0,
    "WriteDataTimeMs": 4,
    "CommitAndPublishTimeMs": 18
}

结果验证

mysql> select * from doris_test_sink;
+-------+--------+-------+---------+---------+
| id    | number | price | skuname | skudesc |
+-------+--------+-------+---------+---------+
|     1 |      1 |   1.1 | n1      | n1      |
|     2 |      2 |   1.2 | n2      | n2      |
2 rows in set (0.00 sec)
mysql> 

PostMan JSON Array数据导入

对于Postman来说,支持Stream Load核心思想

  • Authorization对应Stream Load中授权信息
  • Headers参数对应Stream Load中消息头参数,也就是CURL命令中 -H 的参数
  • Body对应数据部分

Authorization设置


在Authorization添加如下设置
username:amdin 【Doris默用户名为root】
password:your_pwd【Doris默认root密码为空】

Header设置


在Header中添加如下设置

  • strip_outer_array:true
  • format :json
  • ContentType:application/json

Body设置

![在这里插入图片描述](https://img-blog.csdnimg.cn/d58b46b380d54014b68460f1b8fef714.png

选择raw:将如下JOSN数组加入到数据栏

[{"id":1,"number":1,"price":1.1,"skuname":"n1","skudesc":"n1"},{"id":2,"number":2,"price":1.2,"skuname":"n2","skudesc":"n2"}]

发送请求

  1. 点击Send发送请求
  2. PostMan会返回Steam Load的结果
  3. 查询结果如下
mysql> select * from doris_test_sink;
+-------+--------+-------+---------+---------+
| id    | number | price | skuname | skudesc |
+-------+--------+-------+---------+---------+
|     1 |      1 |   1.1 | n1      | n1      |
|     2 |      2 |   1.2 | n2      | n2      |
|     1 |      1 |   1.1 | n1      | n1      |
|     2 |      2 |   1.2 | n2      | n2      |

PostMan CSV数据导入

Authorization设置


在Authorization添加如下设置
username:amdin 【Doris默用户名为root】
password:your_pwd【Doris默认root密码为空】

Header设置

![在这里插入图片描述](https://img-blog.csdnimg.cn/5a58bd144c024854ac9d4ddd4ba80e6d.png

在Header中添加如下设置

  • format:csv
  • column_separator :,(逗号分割)

Body设置

10001,12,13.3, test1,test
10002,100,15.3,test2,test

发送请求

  1. 点击Send发送请求
  2. PostMan会返回Steam Load的结果
  3. 查询结果如下
{
    "TxnId": 7025,
    "Label": "2d76741c-0221-4d7b-b13e-2e1773879fc8",
    "TwoPhaseCommit": "false",
    "Status": "Success",
    "Message": "OK",
    "NumberTotalRows": 2,
    "NumberLoadedRows": 2,
    "NumberFilteredRows": 0,
    "NumberUnselectedRows": 0,
    "LoadBytes": 51,
    "LoadTimeMs": 25,
    "BeginTxnTimeMs": 0,
    "StreamLoadPutTimeMs": 1,
    "ReadDataTimeMs": 0,
    "WriteDataTimeMs": 4,
    "CommitAndPublishTimeMs": 18
}

mysql> select * from doris_test_sink;
+-------+--------+-------+---------+---------+
| id    | number | price | skuname | skudesc |
+-------+--------+-------+---------+---------+
|     1 |      1 |   1.1 | n1      | n1      |
|     2 |      2 |   1.2 | n2      | n2      |
|     1 |      1 |   1.1 | n1      | n1      |
|     2 |      2 |   1.2 | n2      | n2      |
| 10001 |     12 |  13.3 |  test1  | test    |
| 10002 |    100 |  15.3 | test2   | test    |
+-------+--------+-------+---------+---------+

最后宣传下我的书:
1 . 《图解Spark 大数据快速分析实战(异步图书出品)》 https://item.jd.com/13613302.html
2. 《Offer来了:Java面试核心知识点精讲(第2版)(博文视点出品)》https://item.jd.com/13200939.html
3. 《Offer来了:Java面试核心知识点精讲(原理篇)(博文视点出品)》https://item.jd.com/12737278.html
4. 《Offer来了:Java面试核心知识点精讲(框架篇)(博文视点出品) https://item.jd.com/12868220.html

有关PostMan工具支持DorisStreamLoad的更多相关文章

  1. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  2. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

  3. postman接口测试工具-基础使用教程 - 2

    1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,

  4. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  5. ruby-on-rails - 有没有一种工具可以在编码时自动保存对文件的增量更改? - 2

    我最喜欢的Google文档功能之一是它会在我工作时不断自动保存我的文档版本。这意味着即使我在进行关键更改之前忘记在某个点进行保存,也很有可能会自动创建一个保存点。至少,我可以将文档恢复到错误更改之前的状态,并从该点继续工作。对于在MacOS(或UNIX)上运行的Ruby编码器,是否有具有等效功能的工具?例如,一个工具会每隔几分钟自动将Gitcheckin我的本地存储库以获取我正在处理的文件。也许我有点偏执,但这点小保险可以让我在日常工作中安心。 最佳答案 虚拟机有些人可能讨厌我对此的回应,但我在编码时经常使用VIM,它具有自动保存功

  6. ruby - 如何使用 readline 支持重新安装 ruby​​? - 2

    我已经按照https://github.com/wayneeseguin/rvm#installation上的说明通过RVM安装了Ruby.有关信息,我有所有文件(readline-5.2.tar.gz、readline-6.2.tar.gz、ruby-1.9.3-p327.tar.bz2、rubygems-1.8.24.tgz、wayneeseguin-rvm-stable.tgz和yaml-0.1.4.tar.gz)在~/.rvm/archives目录中,我不想在任何目录中重新下载它们方式。当我这样做时:sudo/usr/bin/apt-getinstallbuild-essent

  7. ruby - 使用 Ruby 开发工具包将文件上传到 Amazon S3 - 2

    我正在尝试上传文件。一个简单的hello.txt。我正在关注文档,但无法将其上传到我的存储桶。#STARTAWSCLIENTs3=Aws::S3::Resource.newbucket=s3.bucket(BUCKET_NAME)begins3.buckets[BUCKET_NAME].objects[KEY].write(:file=>FILE_NAME)puts"Uploadingfile#{FILE_NAME}tobucket#{BUCKET_NAME}."bucket.objects.eachdo|obj|puts"#{obj.key}=>#{obj.etag}"endresc

  8. ruby-on-rails - "undefined method ` stub_request '"访问 RSpec 支持文件中的方法时 - 2

    我的Ruby-on-Rails项目中有以下文件结构,用于规范:/spec/msd/serviceservice_spec.rb/support/my_modulerequests_stubs.rb我的request_stubs.rb有:moduleMyModule::RequestsStubsmodule_functiondeflist_clientsurl="dummysite.com/clients"stub_request(:get,url).to_return(status:200,body:"clientsbody")endend在我的service_spec.rb我有:re

  9. ruby - Ruby 是否支持逐字字符串? - 2

    Ruby是否支持(找不到更好的词)非转义(逐字)字符串?就像在C#中一样:@"c:\ProgramFiles\"...或者在Tcl中:{c:\ProgramFiles\} 最佳答案 是的,您需要在字符串前加上%前缀,然后是描述其类型的单个字符。你想要的是%q{c:\programfiles\}。镐书很好地涵盖了这一点here,部分是通用分隔输入。 关于ruby-Ruby是否支持逐字字符串?,我们在StackOverflow上找到一个类似的问题: https:/

  10. ruby - 在 Ruby 1.8 中支持 Ruby 1.9 的哈希语法 - 2

    我正在编写一个Rubygem,在我的代码中使用{key:'value'}哈希语法。我的测试都在1.9.x中通过,但我(可以理解)在1.8.7中得到syntaxerror,unexpected':',expecting')'。是否有支持1.8.x的最佳实践?我是否需要使用我们的老friend=>重写代码,还是有更好的策略? 最佳答案 我认为你运气不好,如果你想支持1.8,那么你必须使用=>。像往常一样,我会提到在1.9的某些情况下您必须使用=>:如果键不是一个符号。请记住,任何对象(符号、字符串、类、float……)都可以是Ruby哈

随机推荐