TDsql增量merge导入load_data

news2024/11/23 16:58:16

TDsql增量merge导入load_data

项目组最近用了腾讯的TencentDB分布式数据库作为传统关系型数据库来保存少量应用数据。因此需要开发相对应的ETL功能代码,根据新数据库特性,使用自带的工具load_data作为导入的工具


准备表

使用load_data导入的表,必须要有主键,不然replace或者说mode3替换模式无法识别,最终导致导入的时候会数据重复

Create table default.testA(
Id decimal(1),
Name varchar(10),
Primary key(id)
);

准备数据

Insert into default.testA values(1,’tony’);
Insert into default.testA values(2,’tom’);
Insert into default.testA values(3,’tata’);
Insert into default.testA values(4,’tang’);

在这里插入图片描述


准备测试文件

  1. 新增一条不重复的文件按记录
    /home/zhouchen/testFileAdd.txt
    5|tim

  2. 新增四条记录,分别是需要更新,插入,去重
    /home/zhouchen/testFileMerge.txt
    1|chew
    5|tim
    6|tingting
    6|tingting


自增导入

load_data mode3 --ip=${TDSQL_HOST} --port=${TDSQL_PORT} --user=${TDSQL_USER} --password=${TDSQL_PSWD} --db_name=default.testA
–file= /home/zhouchen/testFileAdd.txt
–field_terminated=”|”
–lines_terminated=”\n”
–chunk_size=512
–replace_duplicates=true
–skip_error=true

参数说明:

  • mode0:load_data的原理是分割数据,然后导入数据,mode0是先分割数据不进行导入。
  • mode0:只分割数据,不进行导入,一般用于调试。
  • mode1:分割数据,然后对应load data语句中IGNORE模式导入数据,正式导入数据使用 mode1 指令。
  • mode2:在mode1基础上,忽略导入行错误,继续导入。
  • mode3:分割数据,然后对应load data语句中REPLACE模式导入数据。
  • mode4:在mode2基础上,忽略导入行错误,继续导入。
  • chunk_size: 导入块大小(KB),默认值为与文件大小相关的一个分段函数,当设置的chunk_size<=1280k时,其都是以128k运行的
  • replace_duplicates: 是否开启替换模式,替换已存在的记录
  • skip_error: 是否跳过错误,即当发生错误时,是停止导入(0)还是跳过错误(1)

导入结果:
在这里插入图片描述


merge导入

load_data mode3 –ip= T D S Q L H O S T – p o r t = {TDSQL_HOST} –port= TDSQLHOSTport={} –user= – p a s s w o r d = {} –password= password={} –db_name= default.testA
–file= /home/zhouchen/testFileAdd.txt
–field_terminated=”|”
–lines_terminated=”\n”
–chunk_size=512
–replace_duplicates=true
–skip_error=true

导入结果:
在这里插入图片描述


总结

使用TDsql自带的load_data导入数据的时候,使用replace模式配置skip_error可以实现merge导入:

  1. 根据id主键update数据1的name值为chew;
  2. 去重两条id为5的数据;
  3. 新增导入id为5的数据和id为6的数据;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/719687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python运维自动化Paramiko模块

paramiko学习笔记 为什么要用到paramiko模块安装paramiko模块paramiko介绍SSHClient---连接服务器exec_command---执行命令SFTPClient---传输文件下载和上传文件其它方法 为什么要用到paramiko模块 工作中常用到Linux服务器需要更新开发的代码&#xff0c;之前一直是使用xshell…

Python_多任务:进程、线程、协程

目录 进程 实现多进程 进程池 实现进程池 线程 实现多线程 多线程的资源竞争问题 互斥锁解决资源竞争问题 死锁 协程 gevent 进程 进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程&#xff0c;是操作系统进行资源分配和调度的一个独立单位&am…

“多”维演进:智能编码的深度进化

我们在追求怎样的编码未来&#xff1f; 无处不在的视频渗透、井喷式的流量增长、多元的场景技术需求、用户对视频体验的“不将就”……音视频行业的快速发展却伴随着“编码标准升级速度缓慢”、“硬件红利见底”、“编码复杂度带来的成本问题”等众多挑战。 视频编码还“卷”得…

SQL Server 2008 r2 修改sa密码 通过sql server 身份验证登陆

SQL Server的两种身份验证模式是Windows验证模式和SQL Server验证模式。 sql server 2008 r2 修改sa密码 通过sql server 身份验证登陆 【解决方法如下】 通过windows 身份验证登陆后,首先选中服务器(右键)->属性 ->安全性->服务器身份验证修改为"SQL SERVER和W…

浅谈电瓶车在线充电管理系统的设计与应用

安科瑞 华楠 摘要&#xff1a;基于ARM 硬件平台&#xff0c;研究了电瓶车充电技术&#xff0c;提出了一种智能型电瓶车在线安全充电系统&#xff0c;该系统可根据实际充电情况实现智能断电&#xff0c;同时提供给用户一种远程充电、断电的平台&#xff0c;目的是防止电瓶车过度…

港联证券|个人的分红要交税吗?

近年来&#xff0c;随着经济的快速发展&#xff0c;越来越多的人开始关注个人财务管理&#xff0c;其中一个重要的问题就是个人的分红是否需要缴纳税款。这个问题并不简单&#xff0c;需要从多个角度进行综合分析。 首先&#xff0c;我们需要明确一点&#xff0c;个人的分红属于…

浅谈数据中心机房动环监控系统可视化设计与研究

安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;为了维护好数据中心机房动力环境&#xff0c;及时发现隐患和排除故障&#xff0c;降低管理成本控制能耗&#xff0c;提高运维效率&#xff0c;保障数据中心安全、高效、环保、稳定的运行&#xff0c;针对目前机房管理…

通过五点判断CRM系统是否好用

CRM管理系统在当今市场竞争中扮演着越来越重要的角色。因此&#xff0c;企业选择一款适合自己的CRM系统是非常关键的。那么&#xff0c;如何评价一款CRM系统是否好用&#xff1f; 1、功能是否全面 好用的CRM系统应该能够覆盖企业与客户交互的全过程&#xff0c;包括营销管理、…

【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)

一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战&#xff08;数据缓存不一致问题分析&#xff09; 数据不一致的原因逻辑失败导致的数据不一致物理失败导致的数据不一致 数据一致性的解决方案消费消息异步删除缓存主要流程如下图所示 订阅Binlog利用队列…

只出现一次的数字

题目链接 只出现一次的数字 题目描述 注意点 1 < nums.length < 30000-30000 < nums[i] < 30000除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次 解答思路 最初想到使用一种数据结构将元素存储起来&#xff0c;但是空间复杂度为O(n)&#xff0…

Linux(ubuntu)上安装vmware workstation虚拟机

Linux&#xff08;ubuntu&#xff09;上安装vmware workstation虚拟机 首先下载vmware workstation 官网下载地址&#xff1a;https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html 下滑至页面下方下载&#xff1a; 或者点击此处下载 下载完成后…

首发价11999元?华为智慧屏S3Pro电视7月10日上市

华为最新推出了两款全新的智慧屏 S3 Pro&#xff0c;分别是65英寸和75英寸版本&#xff0c;售价分别为5999元和7999元。除此之外&#xff0c;华为还推出了全新的S3 Pro 86英寸型号&#xff0c;首发价为11999元。这款电视将于7月10日上市&#xff0c;对于感兴趣的用户来说&#…

押注数字人,百度、科大讯飞“短兵相接”

配图来自Canva可画 近两年&#xff0c;小雀斑、柳夜熙、AYAYI等大量网红数字人的相继出现&#xff0c;以及虚拟数字技术在《指环王》和《阿凡达》以及《刺杀小说家》等电影中的广泛应用&#xff0c;还有北京冬奥会期间数字人在手语解说、节目直播等众多场合亮相&#xff0c;使…

2024浙大GMSCM提面第一场:全英文项目的生死选择题

本周末是今年浙大MBA非全英文项目GMSCM的第一场提前批面试&#xff0c;作为诸多方向中相对比较稳定的项目之一&#xff0c;GMSCM项目每年的提前批面试申请也都表现的比较稳健&#xff0c;而其目前主要的招生也是依托于提前批面试&#xff0c;根据这几年的情况&#xff0c;每年浙…

vue+cesium 获取鼠标浮动的经纬度

一、需求 是在地图中展示鼠标的经纬度 二、成果展示 三、思路和方法 html <div class"mouseMove" v-if"mouseMove.lat"><div v-if"mouseMove.lat">经度&#xff1a;{{ mouseMove.lng }}</div><div v-if"mouseMove…

关于研究SELECT * 是否会导致SQL查询效率变低的问题

引言 无论在工作还是面试中&#xff0c;关于SQL中不要用“SELECT *”的问题&#xff0c;经常会被大家用作讨论&#xff0c;虽说听烂了&#xff0c;但普遍理解还是在很浅的层面&#xff0c;并没有多少人去追根究底&#xff0c;探究其原理。 一、效率低的原因 先看一下最新《阿…

计算机网络_ 1.3 网络核心(数据交换_电路交换_多路复用)

计算机网络_数据交换_电路交换_多路复用 多路复用频分多路复用FDM时分多路复用TDM波分多路复用WDM码分多路复用CDM 多路复用 多路复用&#xff08;Multiplexing&#xff09;&#xff0c;简称复用&#xff0c;是通信技术的基本概念。 链路/网络资源&#xff08;如带宽&#x…

【动态规划算法】第四题:91.解码方法

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树 &#x1f389;作者宣言&#xff1a;认真写好每一篇博客 &#x1f38a;作者gitee:gitee &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作…

一建建筑周超口袋书

第一部分 建筑工程技术1A414000 建筑工程材料[B-4,2021] 常见的高分子防水卷材有哪些?三元乙丙、聚氯乙烯、氯化聚乙烯、氯化聚乙烯-橡胶共混及三元丁橡胶防水卷材记忆技巧三单数年考试中&#xff0c;2011 年屋面女儿墙渗漏水处理&#xff0c;2015 年女儿墙防水识图找错&#…

element ui table 状态用switch展示

效果图如下 方法一&#xff1a;将图片封装成组件 1.&#xff1a;ImgswitchOpen.vue 2&#xff1a;页面引入组件 3&#xff1a;使用 方法二&#xff1a;引入图片 1&#xff1a;引入图片 2&#xff1a;在data中定义 3.使用