參數 | 說明 | 資料類型 | 是否必填 | 預設值 | 備忘 |
useStreamTunnel | 是否使用MaxCompute Stream Tunnel上傳資料。 | Boolean | 否 | false | |
flushIntervalMs | MaxCompute Tunnel Writer緩衝區flush間隔。 | Long | 否 | 30000(30秒) | MaxCompute Sink寫入記錄時,先將資料存放區到MaxCompute的緩衝區中,等緩衝區溢位或者每隔一段時間(flushIntervalMs),再把緩衝區裡的資料寫到目標MaxCompute表。 對於Stream Tunnel,flush的資料立即可見;對於Batch Tunnel,資料flush後仍需要等待checkpoint完成後才可見,建議設定該參數為0來關閉定時flush。 單位為毫秒。 說明 本參數可以與batchSize一同使用,滿足任一條件即會Flush資料。 |
batchSize | MaxCompute Tunnel Writer緩衝區flush的大小。 | Long | 否 | 67108864(64 MB) | MaxCompute Sink寫入記錄時,先將資料存放區到MaxCompute的緩衝區中,等緩衝區達到一定大小(batchSize),再把緩衝區裡的資料寫到目標MaxCompute表。 單位為位元組。 |
numFlushThreads | MaxCompute Tunnel Writer緩衝區flush的線程數。 | Integer | 否 | 1 | 每個MaxCompute Sink並發將建立numFlushThreads個線程用於flush資料。當該值大於1時,將允許不同分區的資料並發Flush,提升Flush的效率。 說明 僅Realtime Compute引擎VVR 4.0.14及以上版本支援該參數。 |
dynamicPartitionLimit | 寫入動態分區的最大數量。 | Integer | 否 | 100 | 當結果表在兩次Checkpoint之間寫入的動態分區數量超過了dynamicPartitionLimit,則會出現報錯Too many dynamic partitions 。 重要 由於一次性寫入大量分區會給MaxCompute服務帶來一定壓力,同時也會導致結果表flush和作業Checkpoint變慢。因此當報錯出現時,您需要確認是否需要寫入這麼多分區。如果確實需要,需要手動調大dynamicPartitionLimit參數。 |
retryTimes | 向MaxCompute伺服器請求最大重試次數。 | Integer | 否 | 3 | 建立session、提交session、flush資料時可能存在短暫的MaxCompute服務停用情況,會根據該配置進行重試。 |
sleepMillis | 稍候再試時間。 | Integer | 否 | 1000 | 單位為毫秒。 |
enableUpsert | 是否使用MaxCompute Upsert Tunnel上傳資料。 | Boolean | 否 | false | 參數取值如下: |
upsertAsyncCommit | Upsert模式下在提交session時是否使用非同步模式。 | Boolean | 否 | false | 參數取值如下: 說明 僅Realtime Compute引擎VVR 8.0.6及以上版本支援該參數。 |
upsertCommitTimeoutMs | Upsert模式下提交session逾時時間。 | Integer | 否 | 120000 (120秒) | 僅Realtime Compute引擎VVR 8.0.6及以上版本支援該參數。 |
sink.operation | 寫入Delta Table時的寫入模式。 | String | 否 | insert | 參數取值如下: insert: 寫入資料模式為追加 upsert:寫入資料模式為更新
說明 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
sink.parallelism | 寫入Delta Table時的並行度 | Integer | 否 | None | 重要 確保Delta Table表屬性 write.bucket.num 是該配置值的整數倍,這樣可以獲得最佳的寫入效能,並且能夠最有效地節省 Sink 節點記憶體。 |
sink.file-cached.enable | 寫入Delta table動態分區時,是否使用檔案快取模式。 | Boolean | 否 | false | 參數取值如下: true:使用檔案快取模式 false:不使用檔案快取模式
使用檔案快取模式能夠減少寫入服務端的小檔案數量,但是寫出資料的延遲更高。在結果表並行度較高時建議使用檔案快取模式。 說明 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
sink.file-cached.writer.num | 檔案快取模式下,單個Task上傳資料的並發數。 | Integer | 否 | 16 | 僅在設定了 sink.file-cached.enable 為 true 的情況下生效。 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 建議不要大幅提升該參數值,因為當同時寫入的分區數量過多時,容易導致記憶體溢出(OOM)。
|
sink.bucket.check-interval | 檔案快取模式下,檢查檔案大小的周期,單位:毫秒(ms)。 | Integer | 否 | 60000 | |
sink.file-cached.rolling.max-size | 檔案快取模式下,單個快取檔案的最大值。 | MemorySize | 否 | 16 M | |
sink.file-cached.memory | 檔案快取模式下,寫入檔案使用的最大堆外記憶體大小。 | MemorySize | 否 | 64 M | |
sink.file-cached.memory.segment-size | 檔案快取模式下,寫入檔案的使用的buffer大小。 | MemorySize | 否 | 128 KB | |
sink.file-cached.flush.always | 檔案快取模式下,寫入檔案是否使用緩衝。 | Boolean | 否 | true | |
sink.file-cached.write.max-retries | 檔案快取模式下,上傳資料的重試次數。 | Integer | 否 | 3 | |
upsert.writer.max-retries | Upsert Writer寫入Bucket失敗後的重試次數。 | Integer | 否 | 3 | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
upsert.writer.buffer-size | 單個Upsert Writer資料在Flink中的緩衝大小。 | MemorySize | 否 | 64 m | 說明 一個upsert writer裡會同時寫入多個Bucket,建議提高該值,以提升寫入效率。 若寫入分區較多時,會存在引發記憶體OOM風險,可考慮降低該參數值。 |
upsert.writer.bucket.buffer-size | 單個Bucket資料在Flink中的緩衝大小。 | MemorySize | 否 | 1 m | |
upsert.write.bucket.num | 寫入表的bucket數量。 | Integer | 是 | None | |
upsert.write.slot-num | 單個Session使用Tunnel slot數量。 | Integer | 否 | 1 | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
upsert.commit.max-retries | Upsert Session Commit重試次數。 | Integer | 否 | 3 | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
upsert.commit.thread-num | Upsert Session Commit的並行度。 | Integer | 否 | 16 | |
upsert.commit.timeout | Upsert Session Commit等待逾時時間,單位:秒(s)。 | Integer | 否 | 600 | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
upsert.flush.concurrent | 限制單個分區允許同時寫入的最大Bucket數。 | Integer | 否 | 2 | |
insert.commit.thread-num | Commit Session的並行度。 | Integer | 否 | 16 | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
insert.arrow-writer.enable | 是否使用Arrow格式。 | Boolean | 否 | false | 參數取值如下: true:使用Arrow模式 false:不使用Arrow模式
說明 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
insert.arrow-writer.batch-size | Arrow Batch的最大行數。 | Integer | 否 | 512 | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
insert.arrow-writer.flush-interval | Writer Flush間隔,單位毫秒(ms)。 | Integer | 否 | 100000 | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
insert.writer.buffer-size | 使用Buffered Writer的緩衝大小。 | MemorySize | 否 | 64 M | 僅Realtime Compute引擎VVR 8.0.10及以上版本支援該參數。 |
upsert.partial-column.enable | 是否僅更新部分列。 | Boolean | 否 | false | 只在結果表類型為Delta Table時生效,詳情請參見部分列更新。 參數取值如下: 根據結果表是否存在更新資料的主鍵,資料寫入分以下幾種情況: 說明 僅Realtime Compute引擎VVR 8.0.11及以上版本支援該參數。 |