1、准备Spark程序目录结构。
2、编辑build.sbt配置文件添加依赖。
3、创建WriteToCk.scala数据写入程序文件。
4、编译打包。
5、运行。
参数说明:your-user-name:目标ClickHouse集群中创建的数据库账号名。
your-pasword:数据库账号名对应的密码。
your-url:目标ClickHouse集群地址。
/your/path/to/test/data/a.txt:要导入的数据文件的路径,包含文件地址和文件名。说明文件中的数据及schema,需要与ClickHouse中目标表的结构保持一致。
your-table-name:ClickHouse集群中的目标表名称。
scala arraybuffer的数据怎么插入数据库差异比较明显 Array是定长的,按照文档说明为: Array[T] is Scala's representation for Java's T[]. Array存在下标越界访问的风险 而List是变长的 从效率上看,按下标访问Array快,List慢。 在头部插入,Array慢,List快。
1、首先创建一个工程,名字为:HelloWorld;不建议用IDE创建,因为现在IntelliJ idea和Eclipse做的Scala插件还不够好用,开发中会出现很多问题,建议用typeSafe魔板创建。
2、打开工程的bulid.sbt文件;加上这么一句:
3、然后将mysql的驱动也加上
在sbt中加入了新的依赖以后,一定要记得refresh一下,这样sbt才能将新加的东西加入。
4、接下来,我们打开conf/application.conf文件,
将自己的数据库链接信息添上去。
注意,如果想链接多个数据源,只需要修改“db.default.driver”就可以,注意“db.default.driver”中“default”是数据源的名字,可以修改。例如,你想创建一个“abc”数据源,就可以写成“db.abc.driver”
,在代码中获取数据源的时候,就写成DB.getDataSource("abc"),如果想获取默认数据源(default),可以直接写成DB.getDataSource(),因为:
这是源码,显而易见了吧。而且通过源码,可以知道,play用的数据库链接池是BoneCP,这是一个很棒的数据库连接池,比DBCP和C3P0要快很多,但是没有HikariCP快,BoneCP的官方文档是这么说的:“It beats older connection pools such as C3P0 and DBCP but should now be considered deprecated in favour of HikariCP”不知道play以后会不会使用HikariCP作为数据库连接池。而且,play的数据库连接池是写死的,没法通过application.conf扩展数据库连接池(可以用其他途径扩展,如自己在sbt中依赖数据库连接池,然后不通过配置文件,用数据库本身的方法来获取数据源实现连接。),个人感觉应该改良一下。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)