本文說明如何在管線中利用複製活動來從 PostgreSQL 複製資料。
支援的組態
若要設定複製活動下的每個標籤頁,請分別前往下述各個部分。
一般
請參閱一般設定指引,以設定一般設定索引標籤。
Source
移至 [來源] 索引標籤以設定複製活動來源。 如需詳細的組態,請參閱下列內容。
需要以下三個屬性:
- 連線:從連線清單中選取 PostgreSQL 連線。 如果沒有連線,請建立新的 PostgreSQL 連線。
- 連線類型:選取 PostgreSQL。
-
使用查詢:從 表格 或 查詢中選取。
如果您選取 [表格]:
表格:指定要讀取資料的表格名稱。 從下拉式清單中選取表格,或選取 手動輸入 以自行輸入。
如果您選取 [查詢]:
查詢:指定要讀取資料的自訂 SQL 查詢。
注意
模式名稱和表格名稱區分大小寫。 在查詢中將它們括在 “” (雙引號) 中。
在 [進階底下,您可以指定下列字段:
- 查詢逾時(分鐘):指定終止嘗試執行命令併產生錯誤之前的等候時間,預設值為 120 分鐘。 如果為此屬性設定參數,允許的值是時間範圍,例如 “02:00:00” (120 分鐘)。 如需詳細資訊,請參閱 CommandTimeout。
- 其他數據行:新增其他數據行來儲存來源檔案的相對路徑或靜態值。 表達式受到後者的支持。
目的地
以下屬性在複製活動的目的地標籤下支援 PostgreSQL 的使用。
需要下列屬性:
- 連線:從連線清單中選取 PostgreSQL 連線。
- 連線類型:選取 PostgreSQL。
- 數據表:指定要寫入資料的數據表名稱。 從下拉式清單中選取數據表,或 選取 [手動輸入 ] 以輸入架構和數據表名稱。
在 [進階底下,您可以指定下列字段:
- 預複製腳本:在每次執行中將資料寫入 PostgreSQL 前,先指定一個 SQL 查詢以執行複製活動。 您可以使用此屬性來清除預先載入的資料。
-
寫入批次超時:指定批次插入作業完成之前的等待時間。允許的值是時間跨度。 預設值為
00:02:00。 -
撰寫批次大小:指定每批次要插入 PostgreSQL 資料表的列數。 允許的值是整數(數據列數目)。 當目前批次達到寫入批次大小時,會建立新的批次。 預設值為
50000。 - 並行連線數上限:指定在活動執行期間,與資料存放區建立的並行連線數上限。 僅在想要限制並行連線時,才需要指定值。 允許的值為整數。
映射
如需設定 對應索引標籤 的配置,請參閱 在 [對應] 索引標籤下的對應設定。
設定
如需 [設定] 索引標籤配置,請移至 [設定] 索引標籤下方設定其他選項。
PostgreSQL 的資料類型對應
從 PostgreSQL 複製資料時,從 PostgreSQL 資料類型到服務內部使用的過渡資料類型,皆會使用下列對應。
| PostgreSQL 資料類型 | 過渡期服務資料類型 |
|---|---|
| smallint | Int16 |
| 整數 | Int32 |
| Bigint | Int64 |
| 小數(精度 <= 28) | Decimal |
| 十進位(精度 > 28) | 不支援 |
| numeric | Decimal |
| real | Single |
| 雙重 | Double |
| 小劇集 | Int16 |
| 連載的 | Int32 |
| 大劇集 | Int64 |
| money | Decimal |
| 字元(n) | 繩子 |
| Varchar(n) | 繩子 |
| 收發簡訊 | 繩子 |
| 比蒂亞 | Byte[] |
| 時間戳記 | DateTime |
| 具有時區的時間戳 | DateTime |
| date | DateTime |
| 時間 | TimeSpan |
| 具有時區的時間 | DateTimeOffset |
| 間隔 | TimeSpan |
| 布林值 | 布林值 |
| 學分 | 繩子 |
| 線條 | 繩子 |
| LSEG | 繩子 |
| 箱 | 繩子 |
| 路徑 | 繩子 |
| 多邊形 | 繩子 |
| 圈 | 繩子 |
| CIDR | 繩子 |
| inet | 繩子 |
| 麥卡德爾 | 繩子 |
| MacAddr8 | 繩子 |
| TSvector | 繩子 |
| tsquery | 繩子 |
| uuid | Guid |
| JSON | 繩子 |
| jsonb | 繩子 |
| 陣列 | 繩子 |
| bit | Byte[] |
| 有點變化 | Byte[] |
| Xml | 繩子 |
| 整數[] | 繩子 |
| text[] | 繩子 |
| 數值[] | 繩子 |
| 日期[] | 繩子 |
| 範圍 | 繩子 |
| BPCHAR | 繩子 |
在將資料複製到 PostgreSQL 時,會從服務內部使用的臨時資料型態,使用以下映射到 PostgreSQL 資料型態。
| 臨時資料型態 | PostgreSQL 資料類型 |
|---|---|
| Int16 | smallint |
| Int32 | 整數 |
| Int64 | Bigint |
| Single | real |
| Double | 雙精度 |
| Decimal | 數字,金錢 |
| 布林值 | 布林值 |
| 繩子 | text、char(n)、varchar(n)、name、citext、json、jsonb、xml、inet、cidr、macaddr、tsvector、tsquery、point、line、lseg、box、path、polygon、circle、int4range、int8range、numrange、daterange、tsrange、tstzrange、整數[] |
| 位元組陣列 | bytea、bit(n)、varbit |
| Date | date |
| TimeSpan | 時間、間隔 |
| DateTimeOffset | 時間點帶時區,帶時區的時間戳 |
| DateTime | 時間戳記 |
| GUID | uuid |
數據表摘要
下表包含有關 PostgreSQL 中複製活動的詳細資訊。
來源資訊
| Name | 描述 | 值 | 必需 | JSON 腳本屬性 |
|---|---|---|---|---|
| Connection | 您與源資料存放區的連線。 | < 您的PostgreSQL連線 > | Yes | 連接 |
| 連線類型 | 您的來源連線類型。 | PostgreSQL | Yes | / |
| 使用查詢 | 讀取資料的方式。 套用 表格 以從指定的表格讀取資料,或套用 查詢以 使用 SQL 查詢讀取資料。 | • 表格 • 查詢 |
Yes | • typeProperties (在 typeProperties - > - source 下)- 架構 -桌子 • 查詢 |
| 查詢逾時時間(分鐘) | 終止嘗試執行命令並產生錯誤之前的等候時間,預設值為120分鐘。 如果為此屬性設定參數,允許的值是時間範圍,例如 “02:00:00” (120 分鐘)。 如需詳細資訊,請參閱 CommandTimeout。 | timespan | 否 | queryTimeout |
| 其他數據行 | 新增其他數據行以儲存來源檔案的相對路徑或靜態值。 表達式受到後者的支持。 | •名字 •價值 |
否 | 額外欄位: •名字 •價值 |
目的地資訊
| Name | 描述 | 值 | 必需 | JSON 腳本屬性 |
|---|---|---|---|---|
| Connection | 您與目標資料存放區的連線。 | < 您的PostgreSQL連線 > | Yes | 連接 |
| 表 | 用來寫入資料的表格名稱。 從下拉式清單中選取數據表,或 選取 [手動輸入 ] 以輸入架構和數據表名稱。 | < 資料表名稱 > | Yes | typeProperties: • 架構 • 資料表 |
| 預先複製腳本 | 複製活動的 SQL 查詢會在每次執行中寫入資料到 PostgreSQL 前執行。 您可以使用此屬性來清除預先載入的資料。 | <複製前指令碼> | 否 | preCopyScript |
| 寫入行為 | 定義了寫入行為。 | 插入(預設) | 否 | writeBehavior |
| 寫入批次大小 | 每批次要插入到 PostgreSQL 資料表的列數。 允許的值是整數(數據列數目)。 |
< 整數 >50000 (預設值) |
否 | writeBatchSize |
| 寫入批次逾時 | 在逾時前等待批次插入作業完成的時間。允許的值為時間範圍。 |
< 時間跨度 >00:02:00 (預設值) |
否 | writeBatchTimeout |
| 並行連線數上限 | 在活動運行期間,與資料存放區建立的並行連線的上限值。 允許的值為整數。 | < 整數 > | 否 | maxConcurrentConnections(最大並發連線數) |