当前位置: 首页 > news >正文

构建下一代数据解决方案:SingleStore、MinIO 和现代 Datalake 堆栈

SingleStore 是专为数据密集型工作负载而设计的云原生数据库。它是一个分布式关系 SQL 数据库管理系统,支持 ANSI SQL,并因其在数据引入、事务处理和查询处理方面的速度而受到认可。SingleStore 可以存储关系、JSON、图形和时间序列数据,以满足 HTAP 等混合工作负载以及 OLTP 和 OLAP 用例的需求。它将 SQL 查询编译为机器代码,并可以通过 Kubernetes Operator 部署在各种环境中,包括本地安装、公共/私有云和容器。

现代数据湖架构

在现代 Datalake 架构中,SingleStore 完全适合处理层。此层是用于转换的处理引擎、为其他工具提供数据、数据探索和其他用例的位置。处理层工具(如 SingleStore)可以很好地与其他工具配合使用:通常多个处理层工具来自同一个数据湖。通常,这种设计是在工具专用化的情况下实现的。例如,具有混合矢量和全文搜索功能的超快速内存数据处理平台(如 SingleStore)针对 AI 工作负载进行了优化,尤其是针对生成式 AI 用例。

先决条件

要完成本教程,您需要设置一些软件。以下是您需要的内容的细分:

  • **Docker 引擎:**这个强大的工具允许您在称为容器的标准化软件单元中打包和运行应用程序。

  • **Docker Compose:**它充当业务流程协调程序,简化多容器应用程序的管理。它有助于轻松定义和运行复杂的应用程序。

**安装:**如果您要重新开始,Docker 桌面安装程序提供了一个方便的一站式解决方案,用于在特定平台(Windows、macOS 或 Linux)上安装 Docker 和 Docker Compose。这通常被证明比单独下载和安装它们更容易。

安装 Docker Desktop 或 Docker 和 Docker Compose 的组合后,可以通过在终端中运行以下命令来验证它们的存在:


docker-compose --version

您还需要一个 SingleStore 许可证,您可以在此处获取。

记下您的许可证密钥和 root 密码。系统将为您的帐户分配一个随机的 root 密码,但您可以使用 SingleStore UI 更改您的 root 密码。

开始

本教程依赖于此存储库。将存储库克隆到所选位置。

此存储库中最重要的文件是 docker-compose.yaml 描述具有 SingleStore 数据库 ( singlestore )、MinIO 实例 ( minio ) 和依赖于 MinIO 服务的 mc 容器的 Docker 环境。

mc 容器包含一个 entrypoint 脚本,该脚本首先等待 MinIO 可访问,将 MinIO 添加为主机,创建 classic-books 存储桶,上传包含书籍数据 books.txt 的文件,将存储桶策略设置为 public,然后退出。


version: '3.7'services:singlestore:image: 'singlestore/cluster-in-a-box'ports:- "3306:3306"- "8080:8080"environment:LICENSE_KEY: ""ROOT_PASSWORD: ""START_AFTER_INIT: 'Y'minio:image: minio/minio:latestports:- "9000:9000"- "9001:9001"volumes:- data1-1:/data1- data1-2:/data2environment:MINIO_ROOT_USER: minioadminMINIO_ROOT_PASSWORD: minioadmincommand: ["server", "/data1", "/data2", "--console-address", ":9001"]mc:image: minio/mc:latestdepends_on:- minioentrypoint: >/bin/sh -c "until (/usr/bin/mc config host add --quiet --api s3v4 local http://minio:9000 minioadmin minioadmin) do echo '...waiting...' && sleep 1; done;echo 'Title,Author,Year' > books.txt;echo 'The Catcher in the Rye,J.D. Salinger,1945' >> books.txt;echo 'Pride and Prejudice,Jane Austen,1813' >> books.txt;echo 'Of Mice and Men,John Steinbeck,1937' >> books.txt;echo 'Frankenstein,Mary Shelley,1818' >> books.txt;/usr/bin/mc cp books.txt local/classic-books/books.txt;/usr/bin/mc policy set public local/classic-books;exit 0;"volumes:data1-1:data1-2:

使用文档编辑器,将占位符替换为您的许可证密钥和 root 密码。

在终端窗口中,导航到克隆存储库的位置,然后运行以下命令以启动所有容器:


docker-compose up

打开浏览器窗口,导航到 http://localhost:8080/,然后使用用户名“root”和您的root密码登录。

检查 MinIO

导航到 http://127.0.0.1:9001 以启动 MinIO WebUI。使用用户名和密码登录 minioadmin:minioadmin 。您将看到 mc 容器创建了一个调用 classic-books 的存储桶,并且存储桶中有一个对象。

使用 SQL 进行探索

在 SingleStore 中,导航到 SQL 编辑器并运行以下命令:


-- Create a new database named 'books'
CREATE DATABASE books;-- Switch to the 'books' databaseUSE books;-- Create a table named 'classic_books' to store information about classic books
CREATE TABLE classic_books
(title VARCHAR(255),author VARCHAR(255),date VARCHAR(255)
);-- Define a pipeline named 'minio' to load data from an S3 bucket called 'classic-books'
-- The pipeline loads data into the 'classic_books' tableCREATE PIPELINE IF NOT EXISTS minio
AS LOAD DATA S3 'classic-books'
CONFIG '{"region": "us-east-1", "endpoint_url":"http://minio:9000/"}'
CREDENTIALS '{"aws_access_key_id": "minioadmin", "aws_secret_access_key": "minioadmin"}'
INTO TABLE classic_books
FIELDS TERMINATED BY ',';-- Start the 'minio' pipeline to initiate data loading
START PIPELINE minio;-- Retrieve and display all records from the 'classic_books' table
SELECT * FROM classic_books;-- Drop the 'minio' pipeline to stop data loading
DROP PIPELINE minio;-- Drop the 'classic_books' table to remove it from the database
DROP TABLE classic_books;-- Drop the 'books' database to remove it entirely
DROP DATABASE books;

此 SQL 脚本启动一系列操作来处理与经典书籍相关的数据。它首先建立一个名为 books 的新数据库。在此数据库中,将创建一个名为的 classic_books 表,该表旨在保存标题、作者和出版日期等详细信息。

在此之后,将设置一个名为 minio 的管道,用于从标记 classic-books 的 S3 存储桶中提取数据并将其加载到表中 classic_books 。定义了此管道的配置参数,包括区域、终端节点 URL 和身份验证凭据。

随后,“minio”管道被激活,开始数据检索和填充过程。成功将数据加载到表中后,SELECT 查询将检索并显示存储在 classic_books 中的所有记录。

在完成数据提取和查看后, minio 管道将停止并删除, classic_books 表将从 books 数据库中删除,数据库 books 本身将被删除,从而确保干净的石板并结束数据管理操作。此脚本应帮助您开始在 SingleStore 的 MinIO 中处理数据。

在此堆栈上构建

本教程快速设置了一个强大的数据堆栈,允许在对象存储中存储、处理和查询数据进行试验。SingleStore(一个以其速度和多功能性而闻名的云原生数据库)与 MinIO 的集成构成了现代数据湖堆栈中的重要一块砖。

随着行业趋势倾向于存储和计算的分解,这种设置使开发人员能够探索创新的数据管理策略。无论你是对构建数据密集型应用程序、实施高级分析还是试验 AI 工作负载感兴趣,本教程都可以作为启动板。

我们邀请您在此数据堆栈的基础上进行构建,尝试不同的数据集和配置,并释放数据驱动应用程序的全部潜力。

相关文章:

构建下一代数据解决方案:SingleStore、MinIO 和现代 Datalake 堆栈

SingleStore 是专为数据密集型工作负载而设计的云原生数据库。它是一个分布式关系 SQL 数据库管理系统,支持 ANSI SQL,并因其在数据引入、事务处理和查询处理方面的速度而受到认可。SingleStore 可以存储关系、JSON、图形和时间序列数据,以满…...

【经验分享】Ubuntu24.04安装微信

【经验分享】Ubuntu24.04安装微信(linux官方2024universal版) 文章如下,22.04和24.04微信兼容 【经验分享】Ubuntu22.04安装微信(linux官方2024universal版) 实测Ubuntu24.04LTS版本可以兼容。...

AXI学习笔记

文章目录 AXI口诀:AXI三种总线,三种接口,一个协议背景知识一、 AMBA:二、AXI2.1 通信协议与握手机制2.2 AXI协议特点2.3 三种AXI总线类型(AXI4、AXI4-lite、AXI4-stream)2.3.1 AXI通道(5通道&am…...

Spring boot 启动报:Do not use @ for indentation

一、使用maven插件动态切换配置时出现报错 二、配置文件及pom 2.1 配置文件结构 2.2 application.yml spring: # 根据环境读取配置文件(手动) # profiles: # active: dev# 根据环境读取配置文件(通过勾选maven插件)profiles…...

【数据结构】排序(下)

个人主页~ 排序(上) 栈和队列 排序 二、常见排序的实现8、快速排序的优化9、非递归快速排序(1)基本思想(2)代码实现(3)时间复杂度(4)空间复杂度 10、归并排序…...

基于Java+Swing贪吃蛇小游戏(含课程报告)

博主介绍: 大家好,本人精通Java、Python、C#、C、C编程语言,同时也熟练掌握微信小程序、Php和Android等技术,能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验,能够为学生提供各类…...

三角形法恢复空间点深度

三角形法恢复空间点深度 如下图,以图 I 1 I_1 I1​为参考,图 I 2 I_2 I2​的变换矩阵为 T T T。相机光心为 O 1 O_1 O1​和 O 2 O_2 O2​。在图 I 1 I_1 I1​中有特征点 p 1 p_1 p1​,对应图 I 2 I_2 I2​中有特征点 p 2 p_2 p2​。理论上直…...

Linux 阻塞和非阻塞 IO 实验学习

Linux 阻塞和非阻塞 IO 实验学习 IO 指的是 Input/Output,也就是输入/输出,是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候,如果不能获取到设备资源,那么阻塞式 IO 就会将应用程序对应的线程挂起&…...

JuiceFS 社区版 v1.2 发布,新增企业级权限管理、平滑升级功能

JuiceFS 社区版 v1.2 今天正式发布,这是自 2021 年开源以来的第三个大版本。v1.2 也是一个长期支持版本(LTS)。我们将持续维护 v1.2 以及 v1.1 这两个版本,v1.0 将停止更新。 JuiceFS 是为云环境设计的分布式文件系统,…...

虚拟3D沉浸式展会编辑平台降低了线上办展的门槛

在数字化浪潮的引领下,VR虚拟网上展会正逐渐成为企业展示品牌实力、吸引潜在客户的首选平台。我们与广交会携手走过三年多的时光,凭借优质的服务和丰富的经验,赢得了客户的广泛赞誉。 面对传统展会活动繁多、企业运营繁忙的挑战,许…...

泛微E9开发 查询页面添加按钮,完成特定功能

查询页面添加按钮,完成特定功能 1、关联知识(查询页面实现新增按钮)2、功能实现2.1. 点击按钮,输出选中的checkbox的值2.2. 点击按钮,打开一个自定义对话框 3、实现方法 1、关联知识(查询页面实现新增按钮&…...

初学51单片机之数字秒表

不同数据类型间的相互转换 在C语言中,不同数据类型之间是可以混合运算的。当表达式中的数据类型不一致时,首先转换为同一类型,然后再进行计算。C语言有两种方式实现类型转换。一是自动类型转换,另外一种是强制类型转换。 转换的主…...

SpringBoot整合justauth实现多种方式的第三方登陆

目录 0.准备工作 1.引入依赖 2.yml文件 3. Controller代码 4.效果 参考 0.准备工作 你需要获取三方登陆的client-id和client-secret 以github为例 申请地址&#xff1a;Sign in to GitHub GitHub 1.引入依赖 <?xml version"1.0" encoding"UTF-8&quo…...

【Java算法】滑动窗口

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【算法工作坊】算法实战揭秘 &#x1f456;一. 长度最小的子数组 题目链接&#xff1a;209.长度最小的子数组 算法原理 滑动窗口 滑动窗口算法常用于处理数组/字符串等序列问题&#xff0c;通过定义一…...

C# —— 属性和字段

属性和字段的区别 1.都是定义在一个类中&#xff0c;属于类成员变量 2.字段一般都是私有的private&#xff0c;属性一般是公开的Public 3.字段以小驼峰命名方式 age&#xff0c;属性一般是以大驼峰命名 Age 4.字段可以存储数据&#xff0c;属性不能存储数据&#xff0c;通过属性…...

【计算机视觉】人脸算法之图像处理基础知识(四)

图像的几何变换 图像的几何变换是指在不改变图像内容的前提下对图像的像素进行空间几何变换。主要包括图像的平移变换、镜像变换、缩放和旋转等。 1.插值算法 插值通常用来放缩图像大小&#xff0c;在图像处理中常见的插值算法有最邻近插值法、双线性插值法、二次立方、三次…...

探索 Spring Boot 集成缓存功能的最佳实践

在线工具站 推荐一个程序员在线工具站&#xff1a;程序员常用工具&#xff08;http://cxytools.com&#xff09;&#xff0c;有时间戳、JSON格式化、文本对比、HASH生成、UUID生成等常用工具&#xff0c;效率加倍嘎嘎好用。 程序员资料站 推荐一个程序员编程资料站&#xff1a;…...

微信小程序使用方法

一.在网页注册小程序账号&#xff08;在未注册的情况下&#xff09; 1.如果你还没有微信公众平台的账号&#xff0c;请先进入微信公众平台首页&#xff0c;点击 “立即注册” 按钮进行注册。我们选择 “小程序” 即可。 接着填写账号信息&#xff0c;需要注意的是&#xff0c;…...

前后端分离的后台管理系统源码,快速开发OA、CMS网站后台管理、毕业设计项目

那有没有一款软件解-决这种现状呢?答案是肯定的。引入我们的软件——eladmin。 介绍 ELADMIN,一个简单且易上手的 Spring boot 后台管理框架,已发布 Mybatis-Plus 版本,为开发者提供了一个全-面、高-效的解-决方案。 特点 高-效率:前后端完全分离,项目简单可配,内置代码…...

[深度学习]--分类问题的排查错误的流程

原因复现&#xff1a; 原生的.pt 好使&#xff0c; 转化后的 CoreML不好使&#xff0c; 分类有问题。 yolov8 格式的支持情况 Format Argument Suffix CPU GPU 0 PyTorch - .pt True True 1 Tor…...

vscode里如何用git

打开vs终端执行如下&#xff1a; 1 初始化 Git 仓库&#xff08;如果尚未初始化&#xff09; git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

【生成模型】视频生成论文调研

工作清单 上游应用方向&#xff1a;控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...