这是我用过最好用的云数据库!还能白嫖一个证书!
前不久看到朋友圈有网友在转发一些连接,其中提到OceanBase分布式数据库近期推出了free-trail计划。简单的讲,就是个人用户可以在云上免费体验OceanBase 365天。作为一个数据库重度爱好者,自然是不能错过的,那必须要体验一番,这个羊毛必须要褥的呀!
前不久看到朋友圈有网友在转发一些连接,其中提到OceanBase分布式数据库近期推出了free-trail计划。简单的讲,就是个人用户可以在云上免费体验OceanBase 365天。作为一个数据库重度爱好者,自然是不能错过的,那必须要体验一番,这个羊毛必须要褥的呀!
如何注册与使用OceanBase Cloud
首先登录https://www.oceanbase.com/free-trial,注册即可开始体验!
当等于之后,就可以创建对应的OceanBase实例了,可以分别选择兼容MySQL或Oracle等模式。
大家可以看到,默认情况之下,实例规格是1C4G,对于个人用户体验而言,已经足够了!
其中在创建实例时,可以选择腾讯云、阿里云或者华为云,创建完毕之后,我们就能看到自己的实例信息了。
当然对于云上的OceanBase实例,也可以进行相关的白名单控制:
同时也可以非常方便的获取连接数据库的相关字符串。
同时从页面显示来看,支持多种连接方式,比如jdbc、python、Go等。
当然你也可以登陆sql控制台,对数据库进行相关操作,我这里尝试创建一个测试表。
这个云数据库的监控怎么样?
从我个人体验来看,我认为目前自带的监控功能足够了,比如支持会话、top SQL、慢SQL,审计;同时还支持性能监控,包括事务、存储方面的一些指标。
比较贴心的是,每个监控指标还支持下钻分析,非常的特心。
OceanBase Cloud的亮点之一
之前一直听闻OceanBase的压缩能力很强,既然是云数据库,那边能不能顺便体验一番呢?
我尝试利用控制台自带的数据导入功能,导入了部分2个规格的测试数据【分别是25MB、1GB】。
可以看到实际上存储所消耗的空间分别在0.01GiB、0.41GiB。不过需要注意的是,这里显示的GiB,实际上GiB是二进制方式;我们平常所使用的GB单位是10进制。
1 GB = 1,000,000,000 字节 1 GiB = 1,073,741,824 字节
总的来讲两者差别并不大。
因此,从大致换算一下,我们可以发现,1GB的文件,存储之后,只消耗了0.4G的空间,压缩率超过了60%,我认为还是非常给力的。
玩玩云上数据库的迁移
我在体验的过程中,发现左侧数据库服务栏还支持迁移服务、生命周期管理等服务。
我这里也尝试体验了一把跨云的数据库迁移,我这里尝试将自己的blog网站数据库【存放在某云】迁移到OceanBase。
在迁移之前你可以做类似上述的迁移评估,以此来判断从源端迁移到Oceanbase之后,兼容性究竟如何。同时评估完成之后,还可以选择查看或者下载评估报告。
从我这里了MySQL5.6的数据库来看,可以实现100%的迁移兼容;同时细心一点的朋友还会发现,评估报告中,对于不完全支持的,会将相关代码进行自动转换。
除了兼容性评估 之后,我发现还支持性能评估,这类似Oracle的RAT功能。
之前就听闻OceanBase实现了类似的功能,没想到真的可以在云上直接体验了!不得不说一声,真的牛B!
OceanBase 4.x的向量能力
这2年向量数据库比较火,因此不少数据库厂商都加入到这个行当了,向量检索结合LLM还是能玩出很多花样的。
我看了下OB cloud控制台提供的一些教程,其中有个聊天机器人、图形检索的引起了我的兴趣。
虽然OB Cloud个人版的数据库实例配置不太高,我也想试试能不能玩一把!
需要注意的是由于对python、openssl版本有要求,因此我省略掉了升级python、openssl的步骤【版本不匹配会报相关错误】
1、克隆代码仓并安装相关python依赖
[root@db2 ~]# git clone https://gitee.com/oceanbase-devhub/ai-workshop-2024
Cloning into 'ai-workshop-2024'...
remote: Enumerating objects: 330, done.
remote: Counting objects: 100% (15/15), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 330 (delta 4), reused 0 (delta 0), pack-reused 315
Receiving objects: 100% (330/330), 4.73 MiB | 1.24 MiB/s, done.
Resolving deltas: 100% (201/201), done.
[root@db2 ~]# python3 -m ensurepip
Looking in links: /tmp/tmp9jb68pls
Requirement already satisfied: setuptools in /usr/bin/python3.9/lib/python3.9/site-packages (56.0.0)
Requirement already satisfied: pip in /usr/bin/python3.9/lib/python3.9/site-packages (21.1.3)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[root@db2 ~]# python3 -m pip install poetry
Collecting poetry
Downloading poetry-1.8.5-py3-none-any.whl (249 kB)
|████████████████████████████████| 249 kB 402 kB/s
Collecting pexpect<5.0.0,>=4.7.0
Downloading pexpect-4.9.0-py2.py3-none-any.whl (63 kB)
|████████████████████████████████| 63 kB 489 kB/s
Collecting dulwich<0.22.0,>=0.21.2
Downloading dulwich-0.21.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (514 kB)
|████████████████████████████████| 514 kB 4.5 MB/s
Collecting cachecontrol[filecache]<0.15.0,>=0.14.0
Downloading cachecontrol-0.14.1-py3-none-any.whl (22 kB)
Collecting poetry-plugin-export<2.0.0,>=1.6.0
Downloading poetry_plugin_export-1.8.0-py3-none-any.whl (10 kB)
Collecting keyring<25.0.0,>=24.0.0
Downloading keyring-24.3.1-py3-none-any.whl (38 kB)
Collecting crashtest<0.5.0,>=0.4.1
Downloading crashtest-0.4.1-py3-none-any.whl (7.6 kB)
Collecting build<2.0.0,>=1.0.3
Downloading build-1.2.2.post1-py3-none-any.whl (22 kB)
Collecting packaging>=23.1
Downloading packaging-24.2-py3-none-any.whl (65 kB)
|████████████████████████████████| 65 kB 1.8 MB/s
。。。。。。
[root@db2 ~]# cd ai-workshop-2024/
[root@db2 ai-workshop-2024]# pwd
/root/ai-workshop-2024
[root@db2 ai-workshop-2024]# poetry install
Creating virtualenv ai-workshop-aLQYZfdO-py3.9 in /root/.cache/pypoetry/virtualenvs
Installing dependencies from lock file
Package operations: 81 installs, 0 updates, 0 removals
- Installing certifi (2024.8.30)
- Installing charset-normalizer (3.4.0)
- Installing exceptiongroup (1.2.2)
- Installing h11 (0.14.0)
- Installing idna (3.10)
- Installing sniffio (1.3.1)
- Installing typing-extensions (4.12.2)
- Installing urllib3 (2.2.3)
- Installing annotated-types (0.7.0)
- Installing anyio (4.6.0)
- Installing attrs (24.2.0)
- Installing httpcore (1.0.6)
- Installing pydantic-core (2.23.4)
- Installing requests (2.32.3)
- Installing rpds-py (0.20.0)
- Installing httpx (0.27.2)
- Installing jsonpointer (3.0.0)
- Installing orjson (3.10.7)
- Installing pydantic (2.9.2)
- Installing referencing (0.35.1)
- Installing requests-toolbelt (1.0.0)
- Installing frozenlist (1.4.1)
- Installing greenlet (3.1.1)
- Installing jsonpatch (1.33)
- Installing jsonschema-specifications (2024.10.1)
- Installing langsmith (0.1.132)
- Installing markupsafe (3.0.1)
- Installing mdurl (0.1.2)
- Installing multidict (6.1.0)
- Installing packaging (24.1)
- Installing propcache (0.2.0)
- Installing pymysql (1.1.1)
- Installing pyyaml (6.0.2)
- Installing six (1.16.0)
- Installing smmap (5.0.1)
- Installing tenacity (8.5.0)
- Installing aiohappyeyeballs (2.4.3)
- Installing aiomysql (0.2.0)
- Installing aiosignal (1.3.1)
- Installing async-timeout (4.0.3)
- Installing distro (1.9.0)
- Installing gitdb (4.0.11)
- Installing jinja2 (3.1.4)
- Installing jiter (0.6.1)
- Installing jsonschema (4.23.0)
- Installing langchain-core (0.3.15)
- Installing markdown-it-py (3.0.0)
- Installing narwhals (1.9.2)
- Installing numpy (1.26.4)
- Installing pygments (2.18.0)
- Installing python-dateutil (2.9.0.post0)
- Installing pytz (2024.2)
- Installing regex (2024.9.11)
- Installing sqlalchemy (2.0.35)
- Installing tqdm (4.66.5)
- Installing tzdata (2024.2)
- Installing yarl (1.14.0)
- Installing aiohttp (3.10.9)
- Installing altair (5.4.1)
- Installing blinker (1.8.2)
- Installing cachetools (5.5.0)
- Installing click (8.1.7)
- Installing gitpython (3.1.43)
- Installing langchain-text-splitters (0.3.0)
- Installing openai (1.51.2)
- Installing pandas (2.2.3)
- Installing pillow (10.4.0)
- Installing protobuf (5.28.2)
- Installing pyarrow (17.0.0)
- Installing pydeck (0.9.1)
- Installing pyobvector (0.1.17)
- Installing rich (13.9.2)
- Installing tiktoken (0.8.0)
- Installing toml (0.10.2)
- Installing tornado (6.4.1)
- Installing watchdog (5.0.3)
- Installing langchain (0.3.7)
- Installing langchain-oceanbase (0.2.0)
- Installing langchain-openai (0.2.2)
- Installing python-dotenv (1.0.1)
- Installing streamlit (1.39.0)
[root@db2 ai-workshop-2024]#
2、修改配置文件【访问obcloud实例】
[root@db2 ai-workshop-2024]# cp .env.example .env
[root@db2 ai-workshop-2024]#
[root@db2 ai-workshop-2024]# vi .env
[root@db2 ai-workshop-2024]#
[root@db2 ai-workshop-2024]# cat .env
API_KEY=sk-f69a10c31d67436382ec3e0158f60091
LLM_MODEL="qwen-turbo-2024-11-01"
LLM_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
HF_ENDPOINT=https://hf-mirror.com
BGE_MODEL_PATH=BAAI/bge-m3
OLLAMA_URL=
OLLAMA_TOKEN=
# OPENAI_EMBEDDING_API_KEY 一项请填写和 API_KEY 一样的值
OPENAI_EMBEDDING_API_KEY=sk-f69a10c31d67436382ec3e0158f60091
OPENAI_EMBEDDING_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1/embeddings"
OPENAI_EMBEDDING_MODEL=text-embedding-v3
UI_LANG="zh"
# 如果你使用的是 OB Cloud 的实例,请根据实例的连接信息更新下面的变量
DB_HOST="obmt6c7psyjz1hts-mi.aliyun-cn-hangzhou-internet.oceanbase.cloud"
DB_PORT="3306"
DB_USER="killdb"
DB_NAME="test1"
DB_PASSWORD="ENMOtech123###"
[root@db2 ai-workshop-2024]#
需要注意的是,需要提前注册好阿里云千问LLM平台,获取相关API KEY【有一定的白嫖次数】。
3、尝试连接OB cloud实例
由于自带的测试connect脚本需要用到mysql客户端,而我这个测试环境是Oracle环境,因此yum install一个mysql客户端.
[root@db2 ~]# yum install mysql
Last metadata expiration check: 0:20:33 ago on Tue 24 Dec 2024 09:35:59 AM CST.
Dependencies resolved.
===================================================================================================================================================================================================================
Package Architecture Version Repository Size
===================================================================================================================================================================================================================
Installing:
mysql x86_64 8.0.36-1.module+el8.9.0+90153+70413b10 ol8_appstream 14 M
Installing dependencies:
mariadb-connector-c-config noarch 3.1.11-2.el8_3 ol8_appstream 15 k
mysql-common x86_64 8.0.36-1.module+el8.9.0+90153+70413b10 ol8_appstream 136 k
Enabling module streams:
mysql 8.0
Transaction Summary
===================================================================================================================================================================================================================
Install 3 Packages
Total download size: 15 M
Installed size: 73 M
Is this ok [y/N]: y
Downloading Packages:
(1/3): mariadb-connector-c-config-3.1.11-2.el8_3.noarch.rpm 18 kB/s | 15 kB 00:00
(2/3): mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64.rpm 83 kB/s | 136 kB 00:01
(3/3): mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64.rpm 3.3 MB/s | 14 MB 00:04
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 3.4 MB/s | 15 MB 00:04
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : mariadb-connector-c-config-3.1.11-2.el8_3.noarch 1/3
Installing : mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64 2/3
Installing : mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64 3/3
Running scriptlet: mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64 3/3
/sbin/ldconfig: /lib64/libpython3.6m.so.1.0 is not a symbolic link
Verifying : mariadb-connector-c-config-3.1.11-2.el8_3.noarch 1/3
Verifying : mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64 2/3
Verifying : mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64 3/3
Installed:
mariadb-connector-c-config-3.1.11-2.el8_3.noarch mysql-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64 mysql-common-8.0.36-1.module+el8.9.0+90153+70413b10.x86_64
Complete!
[root@db2 ~]#
[root@db2 ai-workshop-2024]# bash utils/connect_db.sh
mysql: [Warning] Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 330626
Server version: 5.6.25 OceanBase 4.3.3.1 (r101020012024111309-bbe812c2baaf7f18c4b74511b091569f8ab457ef) (Built Nov 13 2024 10:11:15)
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> exit
Bye
[root@db2 ai-workshop-2024]#
测试成功,说明我们的配置没问题什么问题。
4、克隆文档库,将OB的文档拉到本地,因为环境访问github比较慢,因此这里我使用了镜像站
[root@db2 ai-workshop-2024]# git clone --single-branch --branch V4.3.4 https://gitee.com/oceanbase-devhub/oceanbase-doc.git doc_repos/oceanbase-doc
Cloning into 'doc_repos/oceanbase-doc'...
remote: Enumerating objects: 126520, done.
remote: Counting objects: 100% (126520/126520), done.
remote: Compressing objects: 100% (70851/70851), done.
remote: Total 126520 (delta 55338), reused 126520 (delta 55338), pack-reused 0
Receiving objects: 100% (126520/126520), 69.60 MiB | 5.80 MiB/s, done.
Resolving deltas: 100% (55338/55338), done.
Updating files: 100% (9756/9756), done.
[root@db2 ai-workshop-2024]# poetry run python convert_headings.py doc_repos/oceanbase-doc/zh-CN
[root@db2 ai-workshop-2024]#
[root@db2 zh-CN]# ls -ltr
total 132
drwxr-xr-x 3 root root 4096 Dec 24 09:59 100.learn-more-about-oceanbase
drwxr-xr-x 6 root root 4096 Dec 24 09:59 200.quickstart
drwxr-xr-x 4 root root 105 Dec 24 09:59 300.develop
drwxr-xr-x 4 root root 4096 Dec 24 09:59 400.deploy
drwxr-xr-x 14 root root 4096 Dec 24 09:59 500.data-migration
drwxr-xr-x 14 root root 4096 Dec 24 09:59 600.manage
drwxr-xr-x 7 root root 4096 Dec 24 09:59 620.obap
drwxr-xr-x 4 root root 4096 Dec 24 09:59 640.ob-vector-search
drwxr-xr-x 4 root root 128 Dec 24 09:59 650.obkv
drwxr-xr-x 9 root root 4096 Dec 24 09:59 680.ecological-integration
drwxr-xr-x 2 root root 157 Dec 24 09:59 690.practical-tutorial
drwxr-xr-x 15 root root 4096 Dec 24 09:59 700.reference
drwxr-xr-x 2 root root 4096 Dec 24 09:59 800.FAQ
drwxr-xr-x 2 root root 152 Dec 24 09:59 900.release-notes
-rw-r--r-- 1 root root 90473 Dec 24 10:00 1000.glossary.md
[root@db2 zh-CN]# pwd
5、将文档转成向量,插入到OB Cloud实例
[root@db2 ai-workshop-2024]# poetry run python embed_docs.py --doc_base doc_repos/oceanbase-doc/zh-CN/640.ob-vector-search
args Namespace(doc_base='doc_repos/oceanbase-doc/zh-CN/640.ob-vector-search', table_name='corpus', skip_patterns=['oracle'], batch_size=4, component='observer', limit=300, echo=False)
Using RemoteOpenAI
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 9/9 [00:37<00:00, 4.21s/it]
[root@db2 ai-workshop-2024]# poetry run python embed_docs.py --doc_base doc_repos/oceanbase-doc/zh-CN/700.reference
args Namespace(doc_base='doc_repos/oceanbase-doc/zh-CN/700.reference', table_name='corpus', skip_patterns=['oracle'], batch_size=4, component='observer', limit=300, echo=False)
Using RemoteOpenAI
2%|███▌ | 57/2796 [00:56<30:43, 1.49it/s] 4%|███████ | 115/2796 [01:57<53:13, 1.19s/it] 7%|███████████▍ | 188/2796 [02:58<39:28, 1.10it/s] 9%|██████████████▊ | 246/2796 [03:59<1:14:09, 1.74s/it] 11%|██████████████████▎ | 299/2796 [04:54<51:04, 1.23s/it]Limit reached: 300, exiting.
11%|██████████████████▎ | 299/2796 [04:55<41:07, 1.01it/s]
[root@db2 ai-workshop-2024]#
[root@db2 ai-workshop-2024]#
这里我本来想将几个文档都插入到OB实例,发现有有些限制,可能是配置过低的原因。可以看到向量这个doc导入成功了,另外一个reference的比较大,跑了5分钟失败了。
6、启动聊天机器人
接下来我们来玩一玩,看看好用不~~~
还是蛮好玩的~~ 有兴趣的小伙伴可以速度试一试~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
福利来了!大家登陆OceanBase为我提供的专属连接,体验OB Cloud,会有很多福利哦~~
福利说明:即日起至12月31日,通过文章的专属链接开通 OB Cloud 免费试用(个人试用版),即可获得价值600元的 【OBCA 4.0 认证】免费考试券。
温馨提示:
1、活动仅限首次开通免费试用的用户参与;
2、考试券将于 2025 年 1 月初统一发放到成功开通的用户账号中,届时会有短信提醒,请关注; 3、考试券有效期为开通之日起 3 个月,具体时间可以查看账号中针对代金券的详细描述。
专属链接地址: https://www.oceanbase.com/free-trial?utm_source=kol&utm_term=roger
专属连接二维码:

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)