热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

csv容易崩溃文件坏掉的数据类型_通过Datahub将本地的CSV文件导入Tablestore

前言Tablestore是一款NoSQL多模型数据库,可提供海量结构化数据存储以及快速的查询和分析服务。如何将数据导入Tablestore,可以通过SD

前言

Tablestore是一款NoSQL多模型数据库,可提供海量结构化数据存储以及快速的查询和分析服务。如何将数据导入Tablestore,可以通过SDK/API、控制台、命令行工具直接写入、或者使用离线数据迁移工具DataX等。本文介绍另外一种本地数据快速导入Tablestore的途径:通过Datahub将本地的CSV文件导入Tablestore,希望能给大家接入和使用Tablestore提供新思路。

原理介绍

为什么选择Datahub

Datahub是专注于流数据处理的平台,提供对流式数据的发布,订阅和分发功能。通过Datahub可以轻松构建基于流式数据的分析和应用。要将本地csv文件中的数据导入Tablestore我们当然可以用现已发布的SDK写一个数据导入的tool实现,选择Datahub因为它专注于做数据通道服务。首先Datahub提供了更丰富的数据接入方式如这篇文章介绍的从csv文件接入和后面将介绍的从Logstash接入等,其次Datahub从优化消费体验降低使用难度上扩展了订阅、协同消费等功能,使数据的消费逻辑更清晰简明。

数据模型转换介绍

62efe8e5e6c6e25b177fa04cb7e088a7.png

一个csv文件对应Datahub中Project下的一个Topic,对应Tablestore中实例下的一张表。直观来看支持以行为单位固定列数且固定列属性的数据模型,数据导入Tablestore前行内所有的列都是属性列无差别,数据导入Tablestore后区分主键列和属性列,通过主键对行数据进行查询、更新等操作,所以csv文件中应将能作为主键的列放在行首。注意:csv中每列在Topic创建时均需一一对应定义,列数不一致或数据类型不相符文件将无法识别上传;主键列属性(列名称、列值的类型)在Datahub和Tablestore中也需要一一对应。

导入实践

csv文件准备

每行数据对应Tablestore表中的一行数据,行内列以逗号分隔,若将导入的Tablestore表设置了n个主键则靠前的n列对应主键列,其余对应属性列。

'pk001',1,'aaa','bbb','ccc','ddd','111','222','333'
'pk002',2,'aaa','bbb','ccc','ddd','111','222','333'
'pk003',3,'aaa','bbb','ccc','ddd','111','222','333'
'pk004',4,'aaa','bbb','ccc','ddd','111','222','333'
'pk005',5,'aaa','bbb','ccc','ddd','111','222','333'
'pk006',6,'aaa','bbb','ccc','ddd','111','222','333'
'pk007',7,'aaa','bbb','ccc','ddd','111','222','333'
'pk008',8,'aaa','bbb','ccc','ddd','111','222','333'
'pk009',9,'aaa','bbb','ccc','ddd','111','222','333'
'pk010',10,'aaa','bbb','ccc','ddd','111','222','333'

注意:目前Datahub仅支持列值所有数据类型(String, Bigint, Double,Boolean,Decimal,Timestamp)均以String类型写入Tablestore,“用户选择是否开启保留数据类型“的选项已在开发中,最大程度保障数据类型写入Tablestore的过程不失真。

Tablestore资源准备

创建实例

使用控制台创建Tablestore实例参考文档

b8e23d427f42b4ae1f66690046c08fd0.png

设计主键、建表

将csv文件中九列属性列的前两列设置为主键列类型为string,名称为"pk1、pk2"(最多支持四个主键列),Tablestore支持同一个属性列的值可以有多种数据类型,故无需指定属性列类型,新建表参考文档

d400d5923729582a3861c66610556183.png

Datahub资源准备

创建Project

使用控制台创建Datahub的Project参考文档

创建Topic

在已创建的Project下创建Topic,选择tuple类型,在schema下添加九个列的列名及类型,需要注意topic的前两个列对应Tablestore表中的主键列,需要保持列名和类型相同。目前只支持1M以下文件的上传故分片(shard)选择默认的1个即可(Datahub中单shard支持最高每日8000万Record级别的写入量)。

e364e6f641afe19201a5d23975412f8c.png

Datahub数据中转

csv上传Datahub

datahub支持csv文件的一键上传,在topic详情页面选择“数据采集”--“文件上传”,选择目的topic和上传文件的路径完成数据上传。

bb31c0508c575a5bf05cc396c3a29083.png

创建connector导入Tablestore

首先对datahub访问Tablestore进行授权授权链接,然后进入准备好的topic的详情页面选择“+DataConnector”--“同步到Tablestore”填写Tablestore的资源信息完成数据导入。

ae5347096a643e97478ad2c73ad9db26.png
7cfed50f523a06567fd9a7a33661ec2e.png

(Tablestore Endpoint 使用实例的私网地址)

进入表详情页面选择“数据管理”--“查询数据”,可以查看导入的10行数据完整信息

8d96d76b19fe0de32c19c705531c34a8.png

注意:文件数据导入为一次性操作,文件无改变情况重复导入,因为主键相同数据将被覆盖从时间戳可以看到数据已更新;若文件部分更新后再次导入,主键重复的数据依旧会被重写,新的数据正常写入。

计量计费

目前Datahub尚在公测期间,数据导入Datahub不收取费用,使用限制见Datahub产品概述,数据从Datahub导入Tablestore是通过“BatchWriteRow”接口,计费方式与直接写入Tablestore相同。



推荐阅读
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
author-avatar
络风落泪_411
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有