Amazon S3#

简介#

Amazon S3 是 AWS 云上的对象存储服务。 OpenMLDB 支持使用 S3 作为离线存储引擎,用于读取和导出特征计算的数据。

配置#

配置Taskmanager#

要读写 Amazon S3 的数据,首先需要在 AWS 云服务上注册账号,申请一个可以用的 AccessKey 和 SecretKey。

然后在 TaskManager 的配置文件 taskmanager.properties 中添加下面的配置即可,注意需要修改 AccessKey 和 SecretKey 为上面申请的密钥。

spark.default.conf=spark.hadoop.fs.s3a.access.key=xxx;spark.hadoop.fs.s3a.secret.key=xxx

使用#

导入数据#

如果想要导入 S3 的数据,在上面 TaskManager 配置成功并且重启后,可直接执行下面的命令,即可导入对应 Bucket 和路径的数据。

LOAD DATA INFILE 's3a://bucket/path/' INTO TABLE t1 OPTIONS (header=true, mode='append', deep_copy=true);

S3数据源支持 deep_copy 为 true 和 false 两种导入方式,只有为 true 才会从 S3 拷贝数据到 OpenMLDB 离线存储。

注意,deep_copy 为 true 时只能用 overwrite 模式,如果前面已经有软链接导入则会被清空。如果想要既有硬拷贝又有软链接,目前只能先做硬拷贝(设置 deep_copy 为 true),然后在做软链接(设置 deep_copy 为 false),并且硬拷贝后数据格式为 parquet,因此要求软链接到数据也是相同 Schema 的 parquet 数据。