首页 文章 精选 留言 我的

精选列表

搜索[数据脱敏],共10000篇文章
优秀的个人博客,低调大师

Avro 数据格式和命令行

支持的原始类型:null,boolean,int,long,float,double,bytes,string 支持的复杂类型有: records 必须:"type":"record" 必须:"name":"记录名" "namespace":"包名" "doc":"为schema提供文档" "aliases":"json的一个string数组,为这条记录提供别名" 必须:"fields":"json数组,列举所有属性,每个fields都是一个json对象并包含如下属性" 必须:"name":"属性名" 必须:"type":"属性类型" "doc":"属性文档" "order":"默认升序" "default":"属性默认值" 案例 { "namespace": "example.avro", "type": "record", "name": "User", "fields": [ {"name": "name", "type": "string"}, {"name": "favorite_number", "type": ["int", "null"]}, {"name": "favorite_color", "type": ["string", "null"]} ] } enums 必须:"type":"enum" 必须:"name":"enum名" "namespace":"限定和修饰name属性,包名" 必须:"symbols":"string数组,列举所有枚举" "aliases":"string数组,为enum提供别名" "doc":"为此schema提供文档" { "type": "enum", "name": "Suit", "symbols": [ "SPADES", "HEARTS", "DIAMONDS", "CLUBS" ] } arrays 必须:"items":"array中元素的Schema" { "type": "record", "name": "ArrAvro", "fields" : [ {"name": "arr", "type": ["null",{"type":"array", "items":"string"}]} ] } 编译后是: @Deprecated public java.util.List<java.lang.CharSequence> arr; maps 必须:"values":"定义map的值的Schema,Maps的key都是string" Map定义为 { "type": "record", "name": "MapAvro", "fields": [ { "name": "map", "type": [ "null", { "type": "map", "values": "long" } ] } ] } 编译后: @Deprecated public java.util.Map<java.lang.CharSequence,java.lang.Long> map unions Unions就像JSON的数组表示:["string", "null"],声明了一个union的Schema,其元素即可以是string,也可以是null。 Unions不能包含多个相同类型的Schema,除非是命名的record类型、命名的fixed类型和命名的enum类型。比如,如果unions中包含两个array类型,或者包含两个map类型都不允许;但是两个具有不同name的相同类型却可以。由此可见,union是通过Schema的name来区分元素Schema的,因为array和map没有name属性,当然只能存在一个array或者map。(使用name作为解析的原因是这样做会使得读写unions更加高效)。unions不能紧接着包含其他的union。 组合类型,表示各种类型的组合,使用数组进行组合。比如[“null”, “string”]表示类型可以为null或者string。 组合类型的默认值是看组合类型的第一个元素,因此如果一个组合类型包括null类型,那么null类型一般都会放在第一个位置,这样子的话这个组合类型的默认值就是null。 组合类型中不允许同一种类型的元素的个数不会超过1个,除了record,fixed和enum。比如组合类中有2个array类型或者2个map类型,这是不允许的。 组合类型不允许嵌套组合类型。 fixed. 必须:"name":"名字" "namespace":"包名" "aliases":"别名" 必须:"size":"一个整数,表示每个值的字节数" 比如16字节的fixed可以声明为:{"type": "fixed", "size": 16, "name": "md5"} avro命令 使用avro工具将json文件转换成avro文件:java -jar avro-tools-1.8.0.jar fromjson --schema-file user.avsc user.json > user.avro 可以设置压缩格式:java -jar avro-tools-1.8.0.jar fromjson --codec snappy --schema-file user.avsc user.json > user2.avro 将avro文件反转换成json文件: java -jar avro-tools-1.8.0.jar tojson user.avro java -jar avro-tools-1.8.0.jar --pretty tojson user.avro 得到avro文件的meta:java -jar avro-tools-1.8.0.jar getmeta user.avro 输出: avro.codec null avro.schema {"type":"record","name":"User","namespace":"example.avro","fields":[{"name":"name","type":"string"},{"name":"favorite_number","type":"int"},{"name":"favorite_color","type":"string"}]} 得到avro文件的schema:java -jar avro-tools-1.8.0.jar getschema user.avro 将文本文件转换成avro文件:java -jar avro-tools-1.8.0.jar fromtext user.txt usertxt.avro

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册