导出表数据至MiniO

EXPORT TABLE users  
TO "s3://backup/"
WITH BROKER
(
    "aws.s3.endpoint" = "http://192.168.8.197:9000",
    "aws.s3.access_key" = "backup",
    "aws.s3.secret_key" = "backup1111"
);

users: 是tables名字
s3://backup/:Bucket名字
aws.s3.endpoint :对象存储地址
aws.s3.access_key:访问对象存储时所用到的AK(Access Key)
aws.s3.secret_key:访问对象存储时所用到的SK(Secret Key)

从MiniO中导入表数据

1、先创建表结构

找研发要创建表结构的SQL语句

2、使用LOAD BROKER方式导入minio中的CSV格式的表数据

LOAD LABEL prod
(
    DATA INFILE("s3://greenpioneeriotuat/data_b38cbe2a-4a27-11ef-9277-0242ac180003_0_0.csv")
    INTO TABLE total_combine_active_energy
 )
 WITH BROKER
 (
    "aws.s3.endpoint" = "http://10.84.3.128:9000",
    "aws.s3.enable_ssl" = "false",
    "aws.s3.access_key" = "backup",
    "aws.s3.secret_key" = "backup1111",
    "aws.s3.use_aws_sdk_default_behavior" = "false",
    "aws.s3.use_instance_profile" = "false",
    "aws.s3.enable_path_style_access" = "true"
 )
PROPERTIES
(
    "timeout" = "72000"
);

3、检查是否导入成功或者导入进度

SELECT * FROM information_schema.loads;

total_combine_active_energy: 导入数据后生成的表名字
aws.s3.endpoint :对象存储地址
DATA INFILE:数据源路径,上方例子是从对象存储的greenpioneeriotuat桶中导入data_b38cbe2a-4a27-11ef-9277-0242ac180003_0_0.csv文件
aws.s3.enable_ssl:是否启用ssl加密方式传输
aws.s3.access_key:访问对象存储时所用到的AK(Access Key)
aws.s3.secret_key:访问对象存储时所用到的SK(Secret Key)
aws.s3.use_aws_sdk_default_behavior:不使用AWS SDK的默认行为,AWS SDK有其预设的认证和配置机制
aws.s3.use_instance_profile:是否使用EC2实例的IAM角色(Instance Profile)作为认证来源
aws.s3.enable_path_style_access:使用路径样式访问S3
timeout:导入数据时的超时时间,单位s

从本地导入表数据

curl --location-trusted -u root -H "label:label1" \
    -H "Expect:100-continue" \
    -H "column_separator:|" \
    -H "max_filter_ratio:0.2" \
    -T ./data_dir/lineorder.tbl -XPUT \
    -H "timeout: 86400" \
    http://192.168.8.198:8030/api/ssb/lineorder/_stream_load

注意:本地导入,前提是表结构提前准备好
--location-trusted:curl信任重定向,为了处理可能的重定向请求,通常在内部网络中使用。
-u root: HTTP基本认证,其中root是用于认证的用户名。密码通常在-u之后用冒号分隔,或者curl会提示输入密码。
-H "label:label1": HTTP头,其中label是流式加载任务的唯一标识符。它可以帮助追踪和管理导入任务的状态。
-H "Expect:100-continue": 这个HTTP头告诉服务器客户端准备好发送数据体,等待服务器确认后再继续发送数据。这在发送大文件时有助于节省带宽和处理时间。
-H "column_separator:|": 这个头指定了数据文件中列与列之间的分隔符。在这个例子中,列是用竖线|分隔的。
-H "max_filter_ratio:0.2": 这个头设置了一个过滤比率,用于控制数据加载过程中数据过滤的程度。例如,0.2意味着最多可以过滤掉20%的数据行。
-T ./data_dir/lineorder.tbl: 这个选项指定了要上传的本地文件。在这里,文件是./data_dir/lineorder.tbl。
-XPUT: 这个选项指定了HTTP方法为PUT,这意味着客户端希望替换或更新服务器上的资源。
-H "timeout: 86400": 这个头设置了请求的超时时间,单位是秒。86400秒等于一天,这意味着请求将在一天后超时。
http://192.168.8.198:8030/api/ssb/lineorder/_stream_load: 这是目标URL,指向数据导入的API端点。在这个例子中,数据将被发送到IP地址192.168.8.198上的8030端口,具体到/api/ssb/lineorder/_stream_load路径,这通常是用于处理SSB(Star Schema Benchmark)数据的流式加载接口。

最后修改:2024 年 07 月 30 日
如果觉得我的文章对你有用,请随意赞赏