转载

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

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

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

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

https://docs.dremio.com/
复制代码
Dremio的部署搭建和JDBC-Client实战使用详解
Dremio的部署搭建和JDBC-Client实战使用详解

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
复制代码

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

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

⑤设置数据源

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

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

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

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

https://www.dremio.com/drivers/
复制代码

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

​ 这里我们是为了方便使用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注入

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

原文  https://juejin.im/post/5f1267e05188252e8a08353f
正文到此结束
Loading...