• 备份StarRocks数据到对象存储minio中/外表查minio中的数据


    1.部署minio环境

    docker pull minio/minio
    

    宿主机与容器挂在映射

    宿主机位置容器位置
    /data/minio/config/data
    /data/minio/data/root/.minio

    拉起环境:

    1. docker run -p 9000:9000 -p 9090:9090 --name minio \
    2. -d --restart=always \
    3. -e "MINIO_ACCESS_KEY=admin" \
    4. -e "MINIO_SECRET_KEY=admin123456" \
    5. -v /data/minio/data:/data \
    6. -v /data/minio/config:/root/.minio \minio/minio \
    7. server /data --console-address ":9090

    2.准备starrocks环境

    参考docker部署starrocks 使用 Docker 部署 StarRocks @ deploy_with_docker @ StarRocks Docs

    3.minio文件查询/全库备份·实操

    借助python生成parquet文件

    1. xiuchenggong@xiuchengdeMacBook-Pro ~ % python3
    2. Python 3.9.10 (main, Jan 15 2022, 11:48:04)
    3. [Clang 13.0.0 (clang-1300.0.29.3)] on darwin
    4. Type "help", "copyright", "credits" or "license" for more information.
    5. >>> import pandas as pd;
    6. >>> pf = pd.read_csv("/Users/xiuchenggong/test.csv")
    7. >>> pf.to_parquet("/Users/xiuchenggong/test.parquet",engine="pyarrow")

     3.1 去查存在minio上的parquet数据(支持查parquet或orc格式数据):

    1. StarRocks > CREATE EXTERNAL TABLE table_1
    2. -> (
    3. -> name string,
    4. -> id int
    5. -> )
    6. -> ENGINE=file
    7. -> PROPERTIES
    8. -> (
    9. -> "path" = "s3a://starrocks/test.parquet",
    10. -> "format" = "parquet",
    11. -> "aws.s3.enable_ssl" = "false",
    12. -> "aws.s3.enable_path_style_access" = "true",
    13. -> "aws.s3.endpoint" = "172.17.0.3:9000",
    14. -> "aws.s3.access_key" = "0OnU8H9YwTNTJUBC2r7F",
    15. -> "aws.s3.secret_key" = "vFQ3fIcs90woUS4200L0BYfxelE86iF6cI4vVzYC"
    16. -> );
    17. Query OK, 0 rows affected (0.009 sec)
    18. StarRocks > show tables;
    19. +-------------------+
    20. | Tables_in_test_db |
    21. +-------------------+
    22. | table_1 |
    23. | test1 |
    24. | test2 |
    25. +-------------------+
    26. 3 rows in set (0.003 sec)
    1. StarRocks > select * from table_1;
    2. +--------------+------+
    3. | name | id |
    4. +--------------+------+
    5. | gongxiucheng | 1 |
    6. | gongzixi | 2 |
    7. +--------------+------+
    8. 2 rows in set (0.073 sec)

    3.2 全量备份到minio(外表不能备份)

    创建repository:

    1. StarRocks > create repository starrocks_backup_01
    2. -> with broker
    3. -> on location "s3a://starrocks"
    4. -> properties(
    5. -> "aws.s3.enable_ssl" = "false",
    6. -> "aws.s3.enable_path_style_access" = "true",
    7. -> "aws.s3.access_key" = "0OnU8H9YwTNTJUBC2r7F",
    8. -> "aws.s3.secret_key" = "vFQ3fIcs90woUS4200L0BYfxelE86iF6cI4vVzYC",
    9. -> "aws.s3.endpoint" = "172.17.0.3:9000"
    10. -> )
    11. -> ;

    开始备份: 

    1. StarRocks > drop table table_1;
    2. Query OK, 0 rows affected (0.010 sec)
    3. StarRocks > backup snapshot test_db.snapshot_minio to starrocks_backup_01 properties("type"="full");
    4. Query OK, 0 rows affected (0.024 sec)
    5. StarRocks > show backup\G;
    6. *************************** 1. row ***************************
    7. JobId: 11047
    8. SnapshotName: snapshot_minio
    9. DbName: test_db
    10. State: SAVE_META
    11. BackupObjs: [test_db.test1], [test_db.test2]
    12. CreateTime: 2023-09-05 01:58:42
    13. SnapshotFinishedTime: 2023-09-05 01:58:48
    14. UploadFinishedTime: 2023-09-05 01:58:54
    15. FinishedTime: NULL
    16. UnfinishedTasks:
    17. Progress:
    18. TaskErrMsg:
    19. Status: [OK]
    20. Timeout: 86400
    21. 1 row in set (0.003 sec)
    22. ERROR: No query specified
    23. StarRocks > show backup\G;
    24. *************************** 1. row ***************************
    25. JobId: 11047
    26. SnapshotName: snapshot_minio
    27. DbName: test_db
    28. State: FINISHED
    29. BackupObjs: [test_db.test1], [test_db.test2]
    30. CreateTime: 2023-09-05 01:58:42
    31. SnapshotFinishedTime: 2023-09-05 01:58:48
    32. UploadFinishedTime: 2023-09-05 01:58:54
    33. FinishedTime: 2023-09-05 01:59:00
    34. UnfinishedTasks:
    35. Progress:
    36. TaskErrMsg:
    37. Status: [OK]
    38. Timeout: 86400
    39. 1 row in set (0.004 sec)
    40. ERROR: No query specified

    查看minio上文件:

    备份成功;

  • 相关阅读:
    freemarker+yml介绍 以及freemarker与JSP的区别
    代码优化~隔离接口实现类
    计算机毕业设计JAVA二手物品置换平台mybatis+源码+调试部署+系统+数据库+lw
    虚拟环境中使用的Python不是当前虚拟环境的,解决方法
    Eclipse使用教程
    Unable to parse response body for Response...
    Verilog 数据类型
    从永远到永远-吉他和弦替代原理
    Java整合EasyExcel实战——3(上下列相同合并单元格策略)
    IDEA创建项目失败提示 Failed to create directory 或 “项目初始化失败”
  • 原文地址:https://blog.csdn.net/gongxiucheng/article/details/132675927