大数据分析——Apache Doris(四十五)

130 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第30天,点击查看活动详情

 案例演示

操作步骤说明
1查询site_visit表数据,将site_visit表的数据导入到hdfs中
 select   *  from site_visit ;
2执行导出作业
 EXPORT TABLE test_db . site_visitTO "hdfs://node1:8020/datas/output" WITH BROKER "broker_name"  ("username"="root" ,  "password"="123456");
3查看导出作业

 其他导出案例参考

-将testTbl表中的分区p1,p2导出到hdfs上,broker使用kerberos 认证方式,同时配置 namenode HA

EXPORT TABLE testTbl    PARTITION  ( p20200101 )    TO "hdfs://my_cluster/user/platform/miuiads/stat_event_cube_bak2017/date=20200101"    WITH BROKER "broker1" (    "hadoop.security.authentication"="kerberos" ,    "kerberos_principal"="" ,    "kerberos_keytab"="" ,    "dfs.nameservices"="my_cluster" ,    "dfs.ha.namenodes.my_cluster"="nn1,nn2" ,    "dfs.namenode.rpc-address.my_cluster.nn1"="node1:8020" ,    "dfs.namenode.rpc-address.my_cluster.nn2"="node2:8020" ,    "dfs.client.failover.proxy.provider"="org.apache.hadoop.hdfs.server.namenode.ha.ZkConfiguredFailoverProxyProvider");

l 将testTbl表中的所有数据导出到hdfs上,以","作为列分隔符

EXPORT TABLE testTblTO "hdfs://hdfs_host:port/a/b/c" PROPERTIES ( "column_separator"="," )  WITH BROKER "broker_name"  ("username"="xxx" ,  "password"="yyy");

 注意事项

  • 不建议一次性导出大量数据,一个 Export 作业建议的导出数据量最大在几十 GB,过大的导出会导致更多的垃圾文件和更高的重试成本,如果表数据量过大,建议按照分区导出。

  • 如果 Export 作业运行失败,在远端存储中产生的临时目录tmp,以及已经生成的文件不会被删除,需要用户手动删除。

  • 如果 Export 作业运行成功,在远端存储中产生的tmp目录,根据远端存储的文件系统语义,可能会保留,也可能会被清除,如果该目录没有被清除,需要手动清除。

  • Export 作业只会导出 Base 表的数据,不会导出 Rollup Index 的数据。

  • Export 作业会扫描数据,占用 IO 资源,可能会影响系统的查询延迟。

 Colocation Join

Colocation Join 是在 Doris 0.9 版本中引入的新功能。旨在为某些 Join 查询提供本地性优化,来减少数据在节点间的传输耗时,加速查询。

 原理

Colocation Join 功能,是将一组拥有相同 CGS 的 Table 组成一个 CG。并保证这些 Table 对应的数据分片会落在同一个 BE 节点上。使得当 CG 内的表进行分桶列上的 Join 操作时,可以通过直接进行本地数据 Join,减少数据在节点间的传输耗时。

一个表的数据,最终会根据分桶列值 Hash、对桶数取模的后落在某一个分桶内。假设一个 Table 的分桶数为 8,则共有 [0, 1, 2, 3, 4, 5, 6, 7] 8 个分桶(Bucket),我们称这样一个序列为一个 BucketsSequence。每个 Bucket 内会有一个或多个数据分片(Tablet)。当表为单分区表时,一个 Bucket 内仅有一个 Tablet。如果是多分区表,则会有多个。

使用限制:

  • 建表时两张表的分桶列和数量需要完全一致,并且桶的个数也需要一致

  • 副本数,两张表的所有分区和副本数需要一致