开发者社区 > PolarDB开源 > PolarDB 分布式版 > 正文

polardb-x可以使用oss作为外部表吗?

polardb-x可以使用oss作为外部表吗?

展开
收起
cuicuicuic 2023-03-22 15:10:40 293 1
6 条回答
写回答
取消 提交回答
  • 数据导入:
    首先将OSS中的数据下载到本地或者ECS(弹性计算服务)实例,然后通过数据导入工具(如DataX、DTS等)将数据导入到PolarDB-X中。

    API访问:
    通过编写应用程序代码,使用OSS SDK访问OSS中的数据,并根据需要将数据写入PolarDB-X。

    数据同步服务:
    使用阿里云数据同步服务(如数据传输服务DTS),将OSS中的数据同步到PolarDB-X数据库中。

    请注意,如果您的场景是数据分析,并且您需要查询大量静态数据,可能需要考虑使用Data Lake Analytics(DLA)之类的服务,它允许您直接在OSS上执行SQL查询,然后您可以根据查询结果决定是否需要将部分数据导入到PolarDB-X中。

    2024-02-23 17:35:38
    赞同 展开评论 打赏
  • https://zhuanlan.zhihu.com/p/477664175,此回答整理自钉群“阿里云 PolarDB-X 开源交流群”

    2023-03-22 19:49:23
    赞同 展开评论 打赏
  • PolarDB可以通过OSS外表直接查询存储在OSS上的CSV格式数据

    2023-03-22 17:27:00
    赞同 展开评论 打赏
  • 天下风云出我辈,一入江湖岁月催,皇图霸业谈笑中,不胜人生一场醉。

    连接OSS。您可以通过OSS server或者CONNECTION两种方法来连接OSS。

    方法一:通过OSS server来连接OSS

    a. 创建OSS server在PolarDB上创建OSS Server,即定义需要访问的OSS服务端。语法如下:

    CREATE SERVER <server_name> FOREIGN DATA WRAPPER oss OPTIONS ( DATABASE '<my_database_name>' EXTRA_SERVER_INFO '{"oss_endpoint": "<my_oss_endpoint>", "oss_bucket": "<my_oss_bucket>", "oss_access_key_id": "<my_oss_acess_key_id>", "oss_access_key_secret": "<my_oss_acess_key_secret>"}';

    b. 创建OSS Foreign Table定义了OSS Server之后,您需要在PolarDB上创建OSS外表,建立与OSS的连接。示例如下:

    create table t1 (id int not null) engine=csv connection="server_name"; 其中,connection可以只配置为server名;如果您希望指定OSS服务上表的名称,也可以配置为server名/表名的形式。示例如下:

    create table t1 (id int not null) engine=csv connection="server_name/t2"; 说明 如果不指定表名,则当前表对应的OSS文件为t1.CSV;如果指定表名,则当前表对应的OSS文件为t2.CSV。

    方法二:通过CONNECTION来连接OSS如果您仅希望创建一个OSS表,不想创建server的相关信息,也可以直接通过CONNECTION创建对应的OSS表来连接OSS。建表语句示例如下:

    CREATE TABLE t (id int(20) NOT NULL, name varchar(32) NOT NULL DEFAULT '' ) ENGINE=CSV DEFAULT CHARSET=utf8 CONNECTION="oss://access_key_id:access_key_secret@endpoint/bucket/database/table";其中,access_key_id和access_key_secret为OSS账号ID和账号KEY;endpoint为OSS服务的域名,域名要写全;bucket为OSS服务的bucket名称;database为CSV数据文件在OSS中的目录名称;table是CSV数据文件名,这里注意不需要写后缀.CSV。 3. 数据查询。以上述步骤示例中的t1表为例进行说明。

    #查询t1表内的数据数量 SELECT count(*) FROM t1;
    #范围查询 SELECT id FROM t1 WHERE id < 10 AND id > 1;
    #点查 SELECT id FROM t1 where id = 3;
    #多表join SELECT id FROM t1 left join t2 on t1.id = t2.id WHERE t2.name like "%er%";

    2023-03-22 16:39:46
    赞同 展开评论 打赏
  • 从事java行业8年至今,热爱技术,热爱以博文记录日常工作,csdn博主,座右铭是:让技术不再枯燥,让每一位技术人爱上技术

    可以,PolarDB-X为了降低数据存储成本,同时保证查询性能,PolarDB-X支持将查询频度低的数据(称为冷数据)归档到OSS对象存储中。

    2023-03-22 15:56:41
    赞同 展开评论 打赏
  • 可以的,PolarDB可以通过OSS外表直接查询存储在OSS上的CSV格式数据,有效地降低存储的成本

    2023-03-22 15:53:17
    赞同 展开评论 打赏
滑动查看更多

PolarDB 分布式版 (PolarDB for Xscale,简称“PolarDB-X”) 是阿里云自主设计研发的高性能云原生分布式数据库产品,为用户提供高吞吐、大存储、低延时、易扩展和超高可用的云时代数据库服务。

相关产品

  • 云原生分布式数据库 PolarDB-X
  • 热门讨论

    热门文章

    相关电子书

    更多
    OSS运维进阶实战手册 立即下载
    《OSS运维基础实战手册》 立即下载
    OSS运维基础实战手册 立即下载