前不久看到朋友圈有网友在转发一些连接,其中提到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

专属连接二维码:

Logo

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

更多推荐