• Dremio的部署搭建和JDBC-Client实战使用详解


    1.关于Dremio

    Dremio的数据湖引擎提供了闪电般的查询速度和一个直接针对数据湖存储的自服务语义层。

    • 闪电般的查询
    • 自助服务语义层
    • 灵活性和开源技术
    • 强大的连接能力

    更为详细的介绍请查阅官网文档:

    https://docs.dremio.com/
    

    UVeBAx.png

    UVZ2T0.png

    2.在Linux上部署Dremio

    ①获取Dremio安装包
    mkdir /data
    cd    /data
    wget http://download.dremio.com/community-server/3.1.8-201903290151120189-36bb2bf/dremio-community-3.1.8-201903290151120189_36bb2bf_1.noarch.rpm
    

    下载比较慢的时候,可以尝试打开浏览器输入以上网址手动下载

    ②使用rpm安装
    rpm -ivh dremio-community-3.1.8-201903290151120189_36bb2bf_1.noarch.rpm
    
    ③启动Dremio
    sudo service dremio start
    
    ④访问地址
    http://服务器IP:9047
    

    注意: 首次启动可能需要注册,按照相应的要求填写即可,主要关注用户名和密码,随后见到如下登录页面 进行登录

    UVuyCV.png

    ⑤设置数据源

    数据源的设置Sources - > 添加(点击旁边的+号),可添加的数据源如下所示,按照指示配置即可

    UVKe5q.png

    3.使用SpringBoot+Mybatis连接使用Dremio

    ​ 由于暂时没有支持Dremio的连接池,我们这里使用的是Dremio的JDBC单连接,需要提前下载好Dremio的JDBC的jar包,地址如下:

    https://www.dremio.com/drivers/
    

    UVlYIs.png

    ​ 这里我们是为了方便使用mybatis生成语句查询Dremio,当然如果你也可以选择Dremio的RestAPi来获取数据,相关介绍可以到如下网站查阅:

    https://docs.dremio.com/rest-api
    
    开始使用:
    ①引入依赖
    <dependency>
     	<groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.0</version>
    </dependency>
    
    ②加入数据配置
    @Configuration
    @MapperScan("com.demo.dao")
    public class DataSourceConfig {
        @Bean
        public DataSource dataSource() {
            SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
            dataSource.setDriverClass(com.dremio.jdbc.Driver.class);
            dataSource.setUsername("root");
            dataSource.setUrl("jdbc:dremio:direct=IP:31010;schema=test-data.TEST");
            dataSource.setPassword("*****");
            return dataSource;
        }
    
        @Bean
        public DataSourceTransactionManager transactionManager() {
            return new DataSourceTransactionManager(dataSource());
        }
    
        @Bean
        public SqlSessionFactoryBean sqlSessionFactory() throws Exception {
            SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
            sessionFactory.setDataSource(dataSource());
            sessionFactory.setTypeAliasesPackage("com.demo.model");
            return sessionFactory;
        }
    }
    
    
    ③编写DAO
    @Mapper
    public interface DemoDao {
    
    
        String SQL_COLUMN_DEMO = "  ID, NAME, AGE ";
    
        @Select("<script>" +
                "select "+SQL_COLUMN_DEMO+"from demo where id = ${id}"
                + "</script>")
        Demo SelectOne(@Param("id")Long id);
    }
    
    

    4.总结

    以上省略了其余的逻辑相关,大家可以根据相关的业务进行完善.使用Dremio确实省去了很多和大数据联调的不便,它的快速查询特性也能提高查询效率,但是有利也有弊,使用时请注意以下相关问题:

    • 暂无Dremio的连接池包,故用单连接

    • 使用Dremio不支持预编译,请使用"${}"方式查询,注意手动控制SQL注入

    • 只能用于查询,插入修改等操作暂不支持

  • 相关阅读:
    G D 3 2 预 处 理 符 号 配 置 中 定 义
    指针接收函数
    SMT(SF)
    电流高端采样问题
    简单分析一个采集交流电压平均值的电路
    i--和--i的区别
    结构体共用体的使用
    .net Filter 和 代理模式杂谈
    Spring boot 日志 Logback
    spring boot 使用 mongodb
  • 原文地址:https://www.cnblogs.com/charlypage/p/13335145.html
Copyright © 2020-2023  润新知