GoldenGate中使用strcat和strext進行資料轉換
strcat(s1,s2,s3,,,):用於合併字串;
strext(str, start, end):用於獲取指定位置的字串。
示例如下:
源端myphone表,2個欄位:
SQL> desc myphone
Name Null? Type
----------------------------------------- -------- ----------------------------
AREA_CODE NUMBER
PHONE_NO NUMBER
目標端myphone表,只有一個欄位:
SQL> desc myphone
Name Null? Type
----------------------------------------- -------- ----------------------------
PHONE_NO VARCHAR2(30)
因此目標表在接收到資料之後,我們可以將2個欄位合併為一個,前面加上“0”,欄位間使用“-”連線,表示一個完整的電話號碼。
源端OGG捕獲及傳輸程序:
extract ext
userid ggs_owner, password ggs_owner
rmthost venom , mgrport 7809
rmttrail ./dirdat/gg
table ggs_owner.myphone;
目標端投遞程序:
REPLICAT rep
sourcedefs ./dirsql/myphone.sql
USERID ggs_owner, PASSWORD ggs_owner
MAP ggs_owner.myphone, TARGET ggs_owner.myphone,
COLMAP (
啟動程序並在源端插入一些資料,源端:
SQL> select * from myphone;
AREA_CODE PHONE_NO
---------- ----------
8 92471136
4 17213124
2 818188
目標端:
SQL> select * from myphone;
PHONE_NO
------------------------------
08-92471136
04-17213124
02-818188
可以看到欄位已經按我們的要求進行合併。
針對欄位拆分:
源端:
SQL> select * from myssid;
SSID
----------
123456787
123456788
123456789
將SSID表的9位數字投遞到目標端時拆分成如下格式:
SQL> select * from myssid;
SSID
--------------------
123-456-787
123-456-788
123-456-789
我們需要在目標端程序如下配置:
REPLICAT rep
sourcedefs /export/home/oracle/gg/dirsql/myssid.sql
USERID ggs_owner, PASSWORD ggs_owner
MAP ggs_owner.myssid, TARGET ggs_owner.myssid,
COLMAP (
可以看到,使用strcat, strext可以很容易的實現在實時資料同步時,進行簡單的資料轉換,從而實現部分ETL功能。
相關推薦
GoldenGate中使用strcat和strext進行資料轉換
在OGG中可以對源欄位的內容進行合併或拆分,從而實現類似於“ETL”的功能。 strcat(s1,s2,s3,,,):用於合併字串; strext(str, start, end):用於獲取指定位置的字串。 示例如下: 源端myphone表,2個欄位: SQL> d
java中string和int的相互轉換
integer chan 也會 tee tex 什麽 產生 chang details java中string和int的相互轉換 int -> String int i=12345;String s="";核心:s=i+""; String -> int s="
Python中日期和時間進行操作time和datetime
Python中提供了多個用於對日期和時間進行操作的內建模組:time模組、datetime模組和calendar模組。其中time模組是通過呼叫C庫實現的,所以有些方法在某些平臺上可能無法呼叫,但是其提供的大部分介面與C標準庫time.h基本一致。time模組相比,datetime模組提供的介面更直
使用unittest和ddt進行資料驅動
1、安裝ddt #pip install ddt 2、解除安裝ddt # coding = utf-8 # encoding = utf-8 import ddt import time import unittest import logging im
Java中如何使用Json進行格式轉換常用方法
首先要在pom.xml檔案加入以下一依賴,這是阿里巴巴的開源格式轉換技術 <dependency> <groupId>com.alibaba</groupId>
java對字串進行資料轉換
//對提交的字串進行非法字元的過濾 public String CheckReplace(String s) { try { if ((s == null) || (s.equals(""))) return ""; StringBuffer stringbuffer
1.使用spoon進行資料轉換,抽取過程如下,,,,大資料元件之ETL
轉換過程如下: 2018/11/19 17:03:43 - Spoon - Using legacy execution engine 2018/11/19 17:03:43 - areacheckdaily - 轉換已經從資源庫預先載入. 2018/11/19 17:03:43 - Sp
Java中String和byte[]間的轉換淺析
Java語言中字串型別和位元組陣列型別相互之間的轉換經常發生,網上的分析及程式碼也比較多,本文將分析總結常規的byte[]和String間的轉換以及十六進位制String和byte[]間相互轉換的原理及實現。 1. String轉byte[] 首先我們來分析一下常規的Strin
java中NaN和Infinity基本資料型別和包裝類(double,Double)
java浮點數運算中有兩個特殊的情況:NAN、INFINITY。 1、INFINITY: 在浮點數運算時,有時我們會遇到除數為0的情況,那java是如何解決的呢? 我們知道,在整型運算中,除數是不能為0的,否則直接執行異常。但是在浮點數運算中,引入了無
Java8中 Date和LocalDateTime的相互轉換
一.在Java 8中將Date轉換為LocalDateTime 方法1: 將Date轉換為LocalDatetime,我們可以使用以下方法: 1.從日期獲取ZonedDateTime並使用其方法toLocalDateTime()獲取LocalDateTime 2.使用L
Spark 中RDD和DataSet之間的轉換
什麼是RDD:Spark提供了一個抽象的彈性分散式資料集,是一個由叢集中各個節點以分割槽的方式排列的集合,用以支援平行計算。RDD在驅動程式呼叫hadoop的檔案系統的時候就建立(其實就是讀取檔案的時候就建立),或者通過驅動程式中scala集合轉化而來,使用者也可以用spar
利用R語言的dplyr包進行資料轉換
library(tidyverse) library(nycflights13) #利用該包中的flights資料 flights #### R語言中的變數型別 # int——整數型變數 # dbl——雙精度浮點數型變數,或稱實數 # chr——字串 # dttm——日期時間型變數 # l
spark高階資料分析系列之第二章用 Scala 和 Spark 進行資料分析
2.1資料科學家的Scala spark是用scala語言編寫的,使用scala語言進行大資料開發的好處有 1、效能開銷小 減少不同環境下傳遞程式碼和資料的錯誤和效能開銷 2、能用上最新的版
Java中String和Int類相互轉換的方法
String Sch_No = "1707020410"; int output = Integer.parseInt(Sch_No); 這樣就將學號“1707020410” 轉換成了純數字1707020410 其他的也是類似的 double d = Double.p
python在lxml中使用XPath語法進行#資料解析
在lxml中使用XPath語法: 獲取所有li標籤: from lxml import etree html = etree.parse('hello.html') print type(html) # 顯示etree.parse() 返回型別 result = html.xpath('//li')
C++中static_cast和dynamic_cast強制型別轉換
轉載地址:http://blog.csdn.net/qq_26849233/article/details/62218385 一、static_cast關鍵字(編譯時型別檢查) 用法:static_cast < type-id > (expression
Oracle中date和timestamp之間的轉換
前幾天,gf的專案中用到了timestamp型別欄位,轉換了幾次,都報錯,今天有時間,就把date與timestamp型別的轉換做以測試,總結如下: 一、首先說下date和timestamp的不同吧。 大家知道,date型別能夠儲存月,年,日,世紀,時,分和秒,而經常的格式
Extjs中grid採用json進行資料繫結的例項
剛開始學習extjs,真是摸不著頭呀。 做了半天才搞出一個grid顯示資料。在網上找了個數據做了個測試。 一下是程式碼。 首先:把ext-3.1.0資料夾放到根目錄下。 新建一個Default.aspx。 view plaincopy to clipboardprint?&l
Eclipse中JSP和JavaScript進行Copy卡死,問題解決
在Eclipse中編輯JSP檔案時,對文字字元進行復制和貼上時,很卡,主要原因是Eclipse中增加了一些JSP和Javascript的校驗,將這些校驗去掉基本上就可以了,具體的如下所示: Window -> Preference -> General -&g
使用poi只能判斷2003和2007進行資料讀取
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import java.ut