---
# System prepended metadata

title: Streamer

---

---
title: 'Streamer'
---

# Feature
![](https://i.imgur.com/oRswxBh.png)
![](https://i.imgur.com/tLG9dYh.png)

多個 streamer 共用同一個 SVT，並打向相同的table schema

create table 那邊要不要有一個提供測試?
不然就是在 add streamer 的時候再測試，回error

可以多個streamer 打向同一個BO 不同的 workspace嗎?

未來要檔前面起兩個一模一樣的 streamer 

# API
==Finish==
* GET /streamers
  * **list all streamer**
* POST/streamers
  * **add new streamer**
  1. Init streamer
     * name = {pipeName}_boName_{BOWorkspaceName}
     * rootPath = {pipeName}/streamer/
	 * composeName = docker-compose-{name}.yml
	 * configName = {name}.toml
  2. 建立目錄 
  3. 設定 streamer config
     * create sql 要把 \n \t ; 拿掉
  4. 將 config.toml 寫到目標機器
  5. 將 Transform.svt 寫到目標機器
  6. 將 docker-compose 寫到目標機器
  * machinePath 應該用 machine.path 代替
* GET/streamers/{streamerID:string}
  * **get streamer**
* DELETE /streamers/{streamerID:string}
  * **delete streamer**
  1. Stop extractor
  2. Remove Directory
  * 不需要把 checkpoint table 刪掉
* PUT /streamers/{streamerID:string}/start
  * **start streamer**
  * docker-compose up -d
* PUT /streamers/{streamerID:string}/stop
  * **stop streamer**
  * docker-compose doen -v

==Pending==
* PUT/streamers/{streamerID:string}
  * **edit streamer**
  * 與 extractor 的問題相同

# FAQ
**Q. streamer 的 name**
A. 用 pipeName_BOname. Ex: Pipe01_Master

**Q. streamer 設定的 table name (是"table_name_1": "sales",)**
A. 這個要跟 create table 的 name 一樣

**Q. streamer 的 check point name**
A. 用 check_point_pipenamae. Ex: check_point_Pipe01


# Testcase

**Add Streamer**
url: post /streamers


**Get Streamer**
url: get /streamers/{streamerID}

**List Streamer**
url: get /streamers

**Edit Streamer**
url: put /streamers/{streamerID}

**Delete Streamer**
url: delete /streamers/{streamerID}

