访问nfs_通过NFS访问编年引擎

访问nfs

总览

编年史引擎是数据虚拟化层。 它抽象化了访问,操作和订阅各种数据源的复杂性,因此该数据的用户无需知道实际存储数据的方式或位置。 这意味着该数据可以在系统之间迁移或以更有效的方式存储,但对于开发人员来说使用起来很复杂。

基本界面是并发映射和简单的发布/订阅。 通过将它们与过滤器和转换之类的流结合使用,您可以访问内存数据高速缓存,LDAP,SQL数据库,键值NoSQL数据库和低延迟持久存储中的文件。

我们正在研究的是使用NFS作为一种访问方式,以及我们的Java和C#客户端以一种自然的方式访问数据。 这样,Windows,Unix或MacOSX上的任何程序都可以使用它。 看起来如何?

通过NFS访问。

Chronicle Engine中的数据存储以树的形式分层组织,而不像目录结构。 键值存储的键就像目录中的文件,值是文件的内容。 这将转换为虚拟文件系统。

在Java中,用于访问服务器或远程客户端上的地图。

Map<String, String> map = acquireMap("/group/data", String.class, String.class);map.put("key-1", "Hello World");
map.put("key-2", "G-Day All");

但是,通过NFS挂载,我们可以从任何程序(甚至Shell)访问相同的映射。

~ $ cd /group/data
/group/data $ echo Hello World > key-1
/group/data $ echo G-Day All > key-2

为了获得价值,这在Java中非常简单:

String value = map.get("key-1");

通过NFS,它也很简单:

/group/data $ cat key-1
Hello World

那更复杂的功能呢?

拥有自己的NFS服务器的一个优点是,我们可以添加虚拟文件,只要它们遵循常规的文件访问合同,就可以执行功能。

在Java中,我们可以应用查询来实时获取20岁以上的所有人。 如果添加了条目,则会在出现时立即打印。

map.entrySet().query().filter(e -> e.getValue().age > 20).map(e -> e.getKey()).subscribe(System.out::println);;

那么如何在NFS上转换呢?

/group/data $ tail -9999f '.(select key where age > 20)'
Bob Brown
Cate Class

这将为您提供所有当前名称,但会出现任何新名称。

选择格式。

通过拥有虚拟文件,您可以要求使用其他格式。 假设基础数据对象是RDBMS数据库中的一行。 您可能需要CSV格式,但是可能需要XML或JSON。

/group/users $ ls
peter-lawrey
/group/users $ cat peter-lawrey.csv
Peter,Lawrey,UK,1001
/group/users $ cat peter-lawrey.xml
<user id="1001"><first>Peter</first><last>Lawrey</last><country>UK</country>
</user>
/group/users $ cat peter-lawrey.json{"user": { "id": "1001", "first": "Peter", "last": "Lawrey", "country": "UK" }}

通过添加可识别的文件扩展名,文件可以以所需的格式显示。

更新记录就像写入文件一样简单。

与使用普通的NFS文件系统相比,有什么优势?

主要优点是可扩展性。 编年史引擎支持;

  • 一张地图(目录)中的数十亿个条目
  • LAN和WAN数据复制。
  • 实时更新更改。
  • 查询支持。
  • 资料压缩
  • 流量整形。
  • 可审核性是谁何时更改了什么。

我们计划也支持数据分发,并支持更多的后端数据存储。

反馈

您将使用这种系统做什么? 您会撒谎看到哪些功能? 您可以在此处或在Chronicle论坛上发表评论。 我期待听到您的想法。

翻译自: https://www.javacodegeeks.com/2015/08/accessing-chronicle-engine-via-nfs.html

访问nfs

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

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

相关文章

flex 解析json文件_使用 Python 处理 JSON 格式的数据 | Linux 中国

如果你不希望从头开始创造一种数据格式来存放数据&#xff0c;JSON 是一个很好的选择。如果你对 Python 有所了解&#xff0c;就更加事半功倍了。下面就来介绍一下如何使用 Python 处理 JSON 数据。-- Seth KenlonJSON 的全称是 JavaScript 对象表示法JavaScript Object Notati…

【C语言】指针进阶第一站:字符指针 typedef关键字!

点击蓝字关注我们简单回顾一下指针的概念内存会划分以字节为单位的空间&#xff0c;每一个字节都有一个编号&#xff08;地址/指针&#xff09;指针变量可以存放这个地址/指针注&#xff1a;我们日常所说的指针&#xff0c;一般是指针变量下面让我们坐上指针进阶的直通车&#…

漫反射 高光反射_如何有效地使用反射

漫反射 高光反射本文是我们名为“ 高级Java ”的学院课程的一部分。 本课程旨在帮助您最有效地使用Java。 它讨论了高级主题&#xff0c;包括对象创建&#xff0c;并发&#xff0c;序列化&#xff0c;反射等。 它将指导您完成Java掌握的旅程&#xff01; 在这里查看 &#xff…

python编译helloworld_python3学习笔记--001--python HelloWorld

python默认使用UTF-8编码 一个python3版本的HelloWorld代码如下&#xff1a; #!/usr/bin/env python print (Hello World!) 如果此python脚本文件名为&#xff1a;hello.py&#xff0c;则运行此脚本文件的方法有两种&#xff1a; 1、python hello.py [laolanglocalhost python]…

漫谈 C++:良好的编程习惯与编程要点

点击蓝字关注我们以良好的方式编写C class假设现在我们要实现一个复数类complex&#xff0c;在类的实现过程中探索良好的编程习惯。① Header(头文件)中的防卫式声明complex.h: # ifndef __COMPLEX__ # define __COMPLEX__ class complex {} # endif防止头文件的内容被多次包含…

Python3只出现一次数字

Python3只出现一次数字原题 https://leetcode-cn.com/problems/single-number/ 题目&#xff1a; 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 说明&#xff1a; 你的算法应该具有线性时…

junit测试找不到数据库_将数据库日志添加到JUnit3

junit测试找不到数据库在过去的十年中&#xff0c;我们已经编写了成千上万的JUnit3测试&#xff0c;现在正尝试将结果合并到数据库中&#xff0c;而不是分散的日志文件中。 事实证明&#xff0c;扩展TestCase类非常容易做到这一点。 注意&#xff1a;这种方法并不直接适用于JUn…

python float 精度_浅谈Python里面小数点精度的控制

要求较小的精度 round()内置方法 这个是使用最多的&#xff0c;刚看了round()的使用解释&#xff0c;也不是很容易懂。round()不是简单的四舍五入的处理方式。 For the built-in types supporting round(), values are rounded to the closest multiple of 10 to the power min…

【C语言】指针进阶第二站:指针数组!

点击蓝字关注我们指针数组数组是一种类型的数的集合整型数组的元素都是int类型指针数组的元素都是指针变量int* arr1[10];//整型指针的数组char*arr2[10];//一级字符指针的数组char** arr3[5];//二级字符指针的数组参考这一份示意图示例1:定义多个字符指针在上一站的字符指针里…

Python3不用str自带lower转换位小写字母

Python3不用str自带lower转换位小写字母原题 https://leetcode-cn.com/problems/to-lower-case/ 题目&#xff1a; 不准用字符串自带的lower() API&#xff01; 实现函数 ToLowerCase()&#xff0c;该函数接收一个字符串参数 str&#xff0c;并将该字符串中的大写字母转换成小…

php 命令执行crud_使用活动记录执行CRUD

php 命令执行crud本文是我们学院课程“ jOOQ –类型安全数据库查询”的一部分 。 在SQL和特定关系数据库很重要的Java应用程序中&#xff0c;jOOQ是一个不错的选择。 当JPA / Hibernate抽象过多而JDBC过于抽象时&#xff0c;这是一种替代方法。 它显示了一种现代的领域特定语言…

python所有的父类_object代表所有类的父类吗??

作者&#xff1a;邹冲 链接&#xff1a;https://www.zhihu.com/question/19754936/answer/202650790 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 写东西的时候刚好遇到这个问题&#xff0c;回答一波…… 继承 obje…

C语言初学者常见错误 | 总结22点

点击蓝字关注我们正文一.语言使用错误在打代码的过程中&#xff0c;经常需要在中文与英文中进行转换&#xff0c;因此常出现一些符号一不小心就用错&#xff0c;用成中文。例如&#xff1a;“&#xff1b;”中文中的分号占用了两个字节&#xff0c;而英文中“;”分号只占用一个…

Python3实现队列

Python3实现队列class MyQueue:def __init__(self):self.__arr []def push(self, x: int) -> None:self.__arr.append(x)def pop(self) -> int:return self.__arr.pop(0)def peek(self) -> int:return self.__arr[0]def empty(self) -> bool:return len(self.__ar…

nginx配置vue项目500_一个Nginx部署多个vue前端项目总结

摘要&#xff1a;近来接手了一个二次开发的前后端分离模式的项目&#xff0c;其中在前端项目的部署上需要让2个前端项目都部署到一个IP地址和端口下&#xff0c;那么我们这里就要用到Nginx了&#xff0c;接下来我们看看如何在一个Nginx下部署2个前端项目的编译打包2个前端项目执…

vaadin_Vaadin和DukeScript中的Hello World

vaadin从表面上看 &#xff0c; Vaadin和GWT通常与DukeScript有很多共同点。 两者都致力于为Java开发人员提供面向浏览器的解决方案&#xff0c;并且由于其对Maven的原生支持&#xff0c;因此与IDE集成良好。 但是&#xff0c;这些方面实际上是它们共有的全部。 从编程模型到框…

【C语言】指针进阶第三站,数组指针!

点击蓝字关注我们数组指针整型指针&#xff1a;指向整型的指针字符指针&#xff1a;指向字符的指针数组指针&#xff1a;指向数组的指针基本概念下面哪个是数组指针呢&#xff1f;指针数组和数组指针的概念很容易混淆&#xff0c;一定要分清楚哦&#xff01;int *p1[10]; int (…

Python3判断是否为回文数

Python3判断是否为回文数原题 https://leetcode-cn.com/problems/palindrome-number/ 题目&#xff1a; 不允许用str的方法&#xff01; 判断一个整数是否是回文数。回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。…

lambda 序列化_如何以及为什么要序列化Lambda

lambda 序列化总览 lambda序列化在许多用例中很有用&#xff0c;例如持久配置或作为远程资源的访客模式 。 远程访客 例如&#xff0c;因此我想访问远程Map上的资源&#xff0c;可以使用get / put&#xff0c;但是说我只想从Map的值中返回一个字段&#xff0c;我可以将lambda作…

python进行数据查询_如何进行python数据库查询?(实例解析)

在这篇文章之中我们来了解一下关于python数据库的相关知识&#xff0c;有些朋友可能是刚刚接触到python这一编程语言&#xff0c;对这一方面不是特别的了解&#xff0c;在接下来这篇文章将会来带大家来了解关于python查询数据库中数据的相关知识。 数据库的查询操作 Python查询…