Sisipan Serial
Cara termudah adalah dengan melakukan menyisipkan
dalam Sink.foreach
.
Dengan asumsi Anda telah menggunakan pembuatan kode skema dan selanjutnya dengan asumsi tabel Anda bernama "NumberTable"
File//Tables file was auto-generated by the schema code generation
import Tables.{Numbertable, NumbertableRow}
val numberTableDB = Database forConfig "NumberTableConfig"
Kita dapat menulis fungsi yang melakukan penyisipan
def insertIntoDb(num : Int) =
numberTableDB run (Numbertable += NumbertableRow(num))
Dan fungsi itu dapat ditempatkan di Wastafel
val insertSink = Sink[Int] foreach insertIntoDb
Source(0 to 100) runWith insertSink
Sisipan Berkelompok
Anda dapat memperluas metodologi Sink lebih lanjut dengan mengelompokkan N sisipan sekaligus:
def batchInsertIntoDb(nums : Seq[Int]) =
numberTableDB run (Numbertable ++= nums.map(NumbertableRow.apply))
val batchInsertSink = Sink[Seq[Int]] foreach batchInsertIntoDb
Wastafel batch ini dapat diberi makan oleh Flow
yang melakukan pengelompokan batch:
val batchSize = 10
Source(0 to 100).via(Flow[Int].grouped(batchSize))
.runWith(batchInsertSink)