构建下一代数据解决方案: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 工作负载感兴趣,本教程都可以作为启动板。

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

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

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

相关文章

AI 大模型企业应用实战(13)-Lostinthemiddle长上下文精度处理

1 长文本切分信息丢失处理方案 10检索时性能大幅下降相关信息在头尾性能最高检索 ->> 排序 ->使用 实战 安装依赖: ! pip install sentence-transformers 演示如何使用 Langchain 库中的组件来处理长文本和检索相关信息。 导入所需的库使用指定的预训…

(4) cmake编译静态库和动态库

文章目录 静态库整体代码动态库编译整体代码执行结果(静态) 静态库整体代码 static.h #pragma onecevoid static_demo();static.cpp #include "static.h" #include <iostream>void static_demo(){std::cout<<"static demo"<<std::end…

Posix多线程编程总结

Posix在线文档&#xff1a; The Single UNIX Specification, Version 2 (opengroup.org) 本文主要参考这位大神的文章&#xff1a; Posix多线程编程学习笔记 - 凌峰布衣 - 博客园 (cnblogs.com) 线程安全问题 多线程编程中&#xff0c;经常遇到的就是线程安全问题&#xff0c;或…

PINN解偏微分方程实例4

PINN解偏微分方程实例4 一、正问题1. Diffusion equation2. Burgers’ equation3. Allen–Cahn equation4. Wave equation 二、反问题1. Burgers’ equation3. 部分代码示例 本文使用 PINN解偏微分方程实例1中展示的代码求解了以四个具体的偏微分方程&#xff0c;包括Diffusio…

第T2周:彩色图片分类

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 &#x1f449; 要求&#xff1a; 学习如何编写一个完整的深度学习程序了解分类彩色图片会灰度图片有什么区别测试集accuracy到达72% &#x1f9be;我的环境&am…

测试测量-DMM直流精度

测试测量-DMM直流精度 最近去面试&#xff0c;发现了自己许多不足&#xff0c;比如我从未考虑过万用表准或者不准&#xff0c;或者万用表有多准&#xff1f; 在过去的实验室中&#xff0c;常用的DMM有KEYSIGHT 34401A以及 KEITHLEY THD2015&#xff0c;就以这两台为例&#x…

线程C++

#include <thread> #include <chrono> #include <cmath> #include <mutex> #include <iostream> using namespace std;mutex mtx; void threadCommunicat() {int ans 0;while (ans<3){mtx.lock();//上锁cout << "ans" <…

预制直埋聚氨酯保温管

&#x1f600;宝子们&#xff0c;今天来给大家介绍一下预制聚氨酯直埋保温管&#x1f389;&#xff01; 它可是个好东西&#x1f44d;&#xff0c;具有超强的保温性能&#x1f9ca;&#xff0c;能够有效保持管道内的温度&#x1f60e;。 而且它还很耐用&#x1f4aa;&#xff0…

用 idea 启动多个实例

在学习负载均衡的时候&#xff0c;要模拟多个实例均提供一个服务&#xff0c;我们要如何用 idea 启动多个实例呢&#xff1f; 如下图&#xff0c;我们已经启动了一个 ProductService 服务&#xff0c;现在想再启动两个相同的服务 1. 选中要启动的服务,右键选择 Copy Configura…

用Java获取键盘输入数的个十百位数

这段Java代码是一个简单的程序&#xff0c;用于接收用户输入的一个三位数&#xff0c;并将其分解为个位、十位和百位数字&#xff0c;然后分别打印出来。下面是代码的详细解释&#xff1a; 导入所需类库: import java.util.Scanner;&#xff1a;导入Scanner类&#xff0c;用于从…

opencv学习笔记(3)

绘制直线 line(img, 开始点&#xff0c;结束点&#xff0c;颜色&#xff0c;线宽&#xff0c;线型(默认为8)) import cv2 import numpy as npimg np.zeros((640, 480, 3), np.uint8)#画线&#xff0c;坐标点为(x, y) cv2.line(img, (10, 20), (10, 220), (0, 0, 255), 5, 4)…

UsersGUI.java用户界面

完成效果图&#xff1a; 点击阅读按钮&#xff1a; 点击删除按钮&#xff1a; 点击新建按钮&#xff1a; Code /* This GUI application allows users to manage their diaries: ​ Read: Users can read existing diaries. Create: Users can create new diaries. Delete: Us…

ARC学习(3)基本编程模型认识(三)

笔者来介绍arc的编程模型的中断流程和异常流程 1、中断介绍 主要介绍一下中断进入的流程&#xff0c;包括需要配置的寄存器等信息。 中断号&#xff1a;16-255&#xff0c;总共240个中断。触发类型&#xff1a;脉冲或者电平触发中断优先级&#xff1a;16个&#xff0c;0最大&…

【git1】指令,commit,免密

文章目录 1.常用指令&#xff1a;git branch查看本地分支&#xff0c; -r查看远程分支&#xff0c; -a查看本地和远程&#xff0c;-v查看各分支最后一次提交, -D删除分支2.commit规范&#xff1a;git commit进入vi界面&#xff08;进入前要git config core.editor vim设一下vi模…

DVWA-XSS(Stored)-httponly分析

拿DVWA的XSS为例子 httponly是微软对cookie做的扩展。这个主要是解决用户的cookie可能被盗用的问题。 接DVWA的分析&#xff0c;发现其实Impossible的cookie都是设置的httponly1&#xff0c;samesite1. 这两个参数的意思参考Set-Cookie HttpOnly:阻止 JavaScript 通过 Documen…

Java项目:基于SSM框架实现的精品酒销售管理系统分前后台【ssm+B/S架构+源码+数据库+毕业论文】

一、项目简介 本项目是一套基于SSM框架实现的精品酒销售管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简单、功…

微信公众号 H5授权登录实现(最详细)

一、微信公众号 &#xff08;一&#xff09;基础信息 微信授权类型 自己的网站、APP等第三方&#xff0c;要实现接入微信授权登录&#xff0c;有多种方式&#xff1a;微信公众号&#xff08;网页&#xff09;、微信小程序、微信开放平台&#xff08;APP&#xff09;等等。 【…

面试:关于word2vec的相关知识点Hierarchical Softmax和NegativeSampling

1、为什么需要Hierarchical Softmax和Negative Sampling 从输入层到隐含层需要一个维度为NK的权重矩阵&#xff0c;从隐含层到输出层又需要一个维度为KN的权重矩阵&#xff0c;学习权重可以用反向传播算法实现&#xff0c;每次迭代时将权重沿梯度更优的方向进行一小步更新。但…

详细解析MATLAB和Simulink中的文件格式:mat, mdl, mexw32, 和 m 文件

matlab 探索MATLAB和Simulink中的文件格式&#xff1a;MAT, MDL, MEXW32, 和 M 文件**MAT 文件 (.mat)****MDL 文件 (.mdl)****MEX 文件 (.mexw32/.mexw64)****M 文件 (.m)****总结** 探索MATLAB和Simulink中的文件格式&#xff1a;MAT, MDL, MEXW32, 和 M 文件 当你开始使用M…

Python 虚拟环境 requirements.txt 文件生成 ;pipenv导出pip安装文件

搜索关键词: Python 虚拟环境Pipenv requirements.txt 文件生成;Pipenv 导出 pip requirements.txt安装文件 本文基于python版本 >3.9 文章内容有效日期2023年01月开始(因为此方法从这个时间开始是完全ok的) 上述为pipenv的演示版本 使用以下命令可精准生成requirement…