1.關於Dremio
Dremio的數據湖引擎提供了閃電般的查詢速度和一個直接針對數據湖存儲的自服務語義層。
- 閃電般的查詢
- 自助服務語義層
- 靈活性和開源技術
- 強大的連接能力
更為詳細的介紹請查閱官網文檔:
https://docs.dremio.com/
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
注意: 首次啟動可能需要注冊,按照相應的要求填寫即可,主要關注用戶名和密碼,隨后見到如下登錄頁面 進行登錄
⑤設置數據源
數據源的設置Sources - > 添加(點擊旁邊的+號),可添加的數據源如下所示,按照指示配置即可
3.使用SpringBoot+Mybatis連接使用Dremio
由於暫時沒有支持Dremio的連接池,我們這里使用的是Dremio的JDBC單連接,需要提前下載好Dremio的JDBC的jar包,地址如下:
https://www.dremio.com/drivers/
這里我們是為了方便使用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注入
-
只能用於查詢,插入修改等操作暫不支持