Я хочу установить соединение с экземпляром Amazon Redshift из Scala с Slick.

Какой драйвер мне следует использовать и как его настроить с помощью sbt и Slick?

2
Xavier Guihot 11 Сен 2018 в 01:22

1 ответ

Лучший ответ

Мы можем использовать драйвер Amazon Redshift для Java < / a> и включите его в build.sbt (см. примечание к выпуску для текущей версии):

resolvers ++= Seq(
  "Redsfhit" at "http://redshift-maven-repository.s3-website-us-east-1.amazonaws.com/release"
)

libraryDependencies += "com.amazon.redshift" % "redshift-jdbc42" % "1.2.10.1009"

Давайте также включим Slick зависимости:

libraryDependencies ++= Seq(
  "com.typesafe.slick" %% "slick"          % "3.2.3",
  "org.slf4j"          %  "slf4j-nop"      % "1.6.4",
  "com.typesafe.slick" %% "slick-hikaricp" % "3.2.3"
)

Один из способов настроить соединение с Slick состоит в использовании а typesafe config. Давайте создадим application.conf в src/main/resources/ с вашими настройками Redhsift:

my_redshift {
  url = "jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev"
  user = my_user
  password = my_password
  driver = com.amazon.redshift.jdbc.Driver
  connectionPool = disabled
  keepAliveConnection = true
}

И, наконец, мы можем загрузить эту конфигурацию из Scala как таковую (my_redshift - это корень, который вы выбрали в конфигурации typeafe):

import slick.jdbc.PostgresProfile.api._

val db: Database = Database.forConfig("my_redshift")
5
Xavier Guihot 10 Сен 2018 в 22:22