Tüm Ürünler
Search
Belge Merkezi

DataWorks:Oracle veri kaynağı

Son Güncelleme:Oct 09, 2026

Oracle veri kaynağı, verileri Oracle'dan okumanıza ve Oracle'a yazmanıza olanak tanır. Sihirbaz veya betik modunda senkronizasyon görevleri yapılandırabilirsiniz. Bu konu, DataWorks tarafından desteklenen Oracle senkronizasyon özelliklerini açıklar.

Desteklenen sürümler

Toplu okuma ve yazma


Sürüm


Toplu okuma (Oracle Reader)


Toplu yazma (Oracle Writer)


Oracle 11.2 veya 11gR2


Desteklenir


Desteklenir


Oracle 12.1 veya 12cR1


Desteklenir


Desteklenir


Oracle 12.2 veya 12cR2


Desteklenir (yeni sürüm özellikleri desteklenmez)


Desteklenir (yeni sürüm özellikleri desteklenmez)


Oracle 18.3


Desteklenir (yeni sürüm özellikleri desteklenmez)


Desteklenir (yeni sürüm özellikleri desteklenmez)


Oracle 19.x


Desteklenir (yeni sürüm özellikleri desteklenmez)


Desteklenir (yeni sürüm özellikleri desteklenmez)


Oracle 21.1


Desteklenir (yeni sürüm özellikleri desteklenmez)


Desteklenir (yeni sürüm özellikleri desteklenmez)

Önemli

Oracle Writer, ojdbc6-12.1.1.jar sürücüsünü kullanır.

Gerçek zamanlı okuma

  • Desteklenenler:

    11g R2 and later, 12c non cdb, 18c non cdb, 19c non cdb veya 19c cdb veritabanları.

  • Desteklenmeyenler:

    12c cbd ve 18c cbd veritabanları.

  • Oracle bir tam veritabanı gerçek zamanlı görevin kaynağı olduğunda arşiv günlük kaydını etkinleştirin. Ayrıntılar için bkz. Oracle ortamını hazırlama.

Not

Kapsayıcı veritabanı (CDB), birden çok takılabilir veritabanı (PDB) içeren Oracle 12c ve sonraki sürümlerin bir özelliğidir.

Sınırlamalar

  • Oracle örneği için NLS_CHARACTERSET ve NLS_NCHAR_CHARACTERSET değerlerinden biri AL32UTF8, AL16UTF16, ZHS16GBK veya UTF8 olmalıdır.

  • Bir Oracle örneği, günde en fazla 500 GB'lık artımlı verinin gerçek zamanlı olarak senkronize edilmesini destekler.

  • DataWorks, bir Oracle fiziksel standby'dan yalnızca gerçek zamanlı okuma yapar. Arşivlenmiş günlükleri okuduğu için gecikme süresi, birincil sunucudan okumaya göre daha fazladır ve arşiv günlüklerinin oluşturulma hızına bağlıdır.

  • Gerçek zamanlı senkronizasyon görünümleri desteklemez; toplu senkronizasyon görünümlerin okunmasını destekler.

  • DataWorks gerçek zamanlı Oracle okumaları Oracle LogMiner kullanır. Birincil veya standby okuma için birincil sunucuda ek günlük kaydı ve arşivleme günlüğünü etkinleştirin.

  • Dizin düzenli tablolar desteklenmez.

  • Tüm sütunları LOB türlerinde (BLOB, CLOB veya NCLOB) olan tablolar desteklenmez.

  • Oracle tablo veya sütun adlarında Çince karakterler desteklenmez.

  • 30 bayttan uzun Oracle tablo adları desteklenmez.

Desteklenen alan türleri


Alan türü


Toplu okuma (Oracle Reader)


Toplu yazma (Oracle Writer)


Gerçek zamanlı okuma


NUMBER


Desteklenir


Desteklenir


Desteklenir


BINARY FLOAT


Desteklenir


Desteklenir


Desteklenir


BINARY DOUBLE


Desteklenir


Desteklenir


Desteklenir


CHAR


Desteklenir


Desteklenir


Desteklenir


NCHAR


Desteklenir


Desteklenir


Desteklenir


VARCHAR2


Desteklenir


Desteklenir


Desteklenir


NVARCHAR2


Desteklenir


Desteklenir


Desteklenir


DATE


Desteklenir


Desteklenir


Desteklenir


TIMESTAMP


Desteklenir


Desteklenir


Desteklenir


TIMESTAMP WITH TIME ZONE


Desteklenir


Desteklenir


Desteklenmez


TIMESTAMP WITH LOCAL TIME ZONE


Desteklenir


Desteklenir


Desteklenmez


CLOB


Desteklenir


Desteklenir


Desteklenir


BLOB


Desteklenir


Desteklenir


Desteklenir


RAW


Desteklenir


Desteklenir


Desteklenir


ROWID


Desteklenmez


Desteklenmez


Desteklenir


UROWID


Desteklenmez


Desteklenmez


Desteklenir


FLOAT


Desteklenir


Desteklenir


Desteklenir


INTERVAL DAY TO SECOND


Desteklenmez


Desteklenmez


Desteklenir


INTERVAL YEAR TO MONTH


Desteklenmez


Desteklenmez


Desteklenir


BFILE


Desteklenmez


Desteklenmez


Desteklenmez


LONG


Desteklenmez


Desteklenmez


Desteklenmez


LONG RAW


Desteklenmez


Desteklenmez


Desteklenmez


NCLOB


Desteklenir


Desteklenir


Desteklenmez


STRUCT


Desteklenir


Desteklenir


Desteklenmez


Kullanıcı Tanımlı Türler


Desteklenmez


Desteklenmez


Desteklenmez


AnyType


Desteklenmez


Desteklenmez


Desteklenmez


AnyData


Desteklenmez


Desteklenmez


Desteklenmez


AnyDataSet


Desteklenmez


Desteklenmez


Desteklenmez


XmlType


Desteklenmez


Desteklenmez


Desteklenmez


Mekansal Türler


Desteklenmez


Desteklenmez


Desteklenmez


Medya Türleri


Desteklenmez


Desteklenmez


Desteklenmez

Aşağıdaki tabloda Oracle Reader için Oracle tür eşlemeleri listelenmiştir.


Tür kategorisi


Oracle veri türü


Tamsayı


NUMBER, RAWID, INTEGER, INT ve SMALLINT


Kayan nokta


NUMERIC, DECIMAL, FLOAT, DOUBLE PRECISIOON ve REAL


Dize


LONG, CHAR, NCHAR, VARCHAR, VARCHAR2, NVARCHAR2, CLOB, NCLOB, CHARACTER, CHARACTER VARYING, CHAR VARYING, NATIONAL CHARACTER, NATIONAL CHAR, NATIONAL CHARACTER VARYING, NATIONAL CHAR VARYING ve NCHAR VARYING


Tarih ve saat


TIMESTAMP ve DATE


Boole


BIT ve BOOL


İkili


BLOB, BFILE, RAW ve LONG RAW

Senkronizasyondan önce: Oracle ortamını hazırlama

DataWorks'te Oracle verilerini senkronize etmeden önce görevlerin normal şekilde yapılandırılıp çalıştırılabilmesi için Oracle ortamını hazırlayın.

Oracle veritabanı sürümünü kontrol etme

Desteklenen Oracle sürümleri senkronizasyon senaryosuna göre değişir. Sürümünüzün desteklendiğinden emin olun.

  1. Sürümü kontrol etmek için aşağıdaki deyimlerden birini kullanın:

    • Deyim 1:

      select * from v$version;
    • Deyim 2:

      select version from v$instance;
  2. Oracle sürümü 12c veya 18c ise bunun bir cdb veritabanı olup olmadığını kontrol etmek için bu deyimi kullanın. Veri Entegrasyonu gerçek zamanlı senkronizasyonu şu anda 12c ve 18c sürümlerindeki cdb Oracle veritabanlarını desteklemez.

    select name,cdb,open_mode,con_id from v$database;

Hesap oluşturma ve izin verme

Sonraki işlemler için bir veritabanı oturum açma hesabı planlayın. Bu hesabın ilgili Oracle izinlerine sahip olması gerekir.

  1. Hesap oluşturun. Yordam için bkz. Oracle hesabı oluşturma.

  2. İzin verin.

    İzin vermek için bu komutları kullanın. Yukarıda oluşturulan hesapla değiştirmek için 'sync_user' ifadesini değiştirin.

    grant create session to 'sync_user';  //Allow the synchronization account to log on to the database.
    grant connect to 'sync_user';  //Allow the synchronization account to connect to the database.
    grant select on nls_database_parameters to 'sync_user';  //Allow the synchronization account to query the nls_database_parameters system settings.
    grant select on all_users to 'sync_user';  //Allow the synchronization account to query all database users.
    grant select on all_objects to 'sync_user';  //Allow the synchronization account to query all database objects.
    grant select on DBA_MVIEWS to 'sync_user';  //Allow the synchronization account to view materialized views.
    grant select on DBA_MVIEW_LOGS to 'sync_user';  //Allow the synchronization account to view materialized view logs.
    grant select on DBA_CONSTRAINTS to 'sync_user';  //Allow the synchronization account to view constraints on all database tables.
    grant select on DBA_CONS_COLUMNS to 'sync_user';  //Allow the synchronization account to view columns in specified constraints on all database tables.
    grant select on all_tab_cols to 'sync_user';  //Allow the synchronization account to view column information for tables, views, and clusters.
    grant select on sys.obj$ to 'sync_user';  //Allow the synchronization account to view objects. sys.obj$ is the Oracle dictionary base table containing all objects.
    grant select on SYS.COL$ to 'sync_user';  //Allow the synchronization account to view column definitions. SYS.COL$ stores table column definitions.
    grant select on sys.USER$ to 'sync_user';  //Allow the synchronization account to view system tables. sys.USER$ is the default service for user sessions.
    grant select on sys.cdef$ to 'sync_user';  //Allow the synchronization account to view system tables.
    grant select on sys.con$ to 'sync_user';  //Allow the synchronization account to view constraints. sys.con$ records Oracle constraint information.
    grant select on all_indexes to 'sync_user';  //Allow the synchronization account to view all indexes.
    grant select on v_$database to 'sync_user';  //Allow the synchronization account to view v_$database.
    grant select on V_$ARCHIVE_DEST to 'sync_user';  //Allow the synchronization account to view V_$ARCHIVE_DEST.
    grant select on v_$log to 'sync_user';  //Allow the synchronization account to view v_$log, which shows log file information in the control file.
    grant select on v_$logfile to 'sync_user';  //Allow the synchronization account to view v_$logfile, which contains redo log file information.
    grant select on v_$archived_log to 'sync_user';  //Allow the synchronization account to view v$archived_log, which contains archive log information.
    grant select on V_$LOGMNR_CONTENTS to 'sync_user';  //Allow the synchronization account to view V_$LOGMNR_CONTENTS.
    grant select on DUAL to 'sync_user';   //Allow the synchronization account to view DUAL, a one-row virtual table used in SELECT syntax.
    grant select on v_$parameter to 'sync_user';  //Allow the synchronization account to view v_$parameter, a dynamic dictionary view of database parameter values.
    grant select any transaction to 'sync_user';  //Allow the synchronization account to view any transaction.
    grant execute on SYS.DBMS_LOGMNR to 'sync_user';  //Allow the synchronization account to use LogMiner for transaction analysis and data recovery.
    grant alter session to 'sync_user';  //Allow the synchronization account to alter the database session.
    grant select on dba_objects to 'sync_user';  //Allow the synchronization account to view all database objects.
    grant select on v_$standby_log to 'sync_user';  //Allow the synchronization account to view v_$standby_log, which contains standby archive log information.
    grant select on v_$ARCHIVE_GAP to 'sync_user';  //Allow the synchronization account to query missing archive logs.
    grant select on sys.ICOL$ to 'sync_user';  //Allow the synchronization account to view objects. sys.obj$ is the Oracle dictionary base table containing all objects.
    grant select on V_$THREAD to 'sync_user';  //Allow the synchronization account to view instance thread information. V_$THREAD is an Oracle dynamic performance view of RAC instance thread status used to identify instance state and log sources for incremental parsing.

    Tam verilerin toplu senkronizasyonu için ayrıca hesaba tüm tabloları sorgulama izni verin:

    grant select any table to 'sync_user';

    Oracle 12c ve sonraki sürümler, hesabın LogMiner'ı kullanması için bu komutu gerektirir. Önceki sürümler yerleşik LogMiner sağlar ve bunu gerektirmez.

    grant LOGMINING TO 'sync_user';

Arşiv ve ek günlük kaydını etkinleştirme ve redo günlük dosyalarını değiştirme

  1. Arşivleme günlüğünü etkinleştirin:

    shutdown immediate;
    startup mount;
    alter database archivelog;
    alter database open;
  2. Ek günlük kaydını etkinleştirin.

    İhtiyaca göre ek günlük kaydını seçin. Örnek SQL:

    //Enable supplemental logging to capture complete changes for real-time synchronization. For database-level logging, run:
    alter database add supplemental log data(primary key) columns; //Enable supplemental logging for primary key columns in the database.
    alter database add supplemental log data(unique) columns; //Enable supplemental logging for unique-index columns in the database.
    
    //You can instead enable it at the table level:
    alter schema.table add supplemental log data(primary key) columns; //Enable supplemental logging for primary key columns in the specified table.
    alter schema.table add supplemental log data(unique) columns; //Enable supplemental logging for unique-index columns in the specified table.
  3. Redo günlük dosyalarını değiştirin.

    Ek günlük kaydını etkinleştirdikten sonra redo günlük dosyalarını değiştirmek için aşağıdaki komutu birkaç kez (genellikle beş kez önerilir) çalıştırın.

    alter system switch logfile;
    Not

    Birkaç kez değiştirmek, geçerli günlük dosyasının dolduktan sonra devredilmesini sağlayarak sonraki kurtarma için işlem kayıtlarının korunmasını garanti eder.

Veritabanı karakter kodlamasını kontrol etme

Veritabanının karakter kodlamasını kontrol etmek için veritabanında aşağıdaki komutu çalıştırın:

select * from v$nls_parameters where PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
  • v$nls_parameters veritabanı parametre ayarlarını depolar.

  • NLS_CHARACTERSET ve NLS_NCHAR_CHARACTERSET veritabanı ve ulusal karakter kümeleridir ve iki kategori Oracle karakter verisi için depolama biçimlerini belirtir.

Not

Veri Entegrasyonu şu anda veri senkronize ederken UTF8, AL32UTF8, AL16UTF16 ve ZHS16GBK'yı destekler. Senkronizasyondan önce desteklenmeyen karakter kodlamalarını değiştirin.

Tablo veri türlerini kontrol etme

Tablo sütunlarının türlerini sorgulamak için bir SQL SELECT deyimi kullanın. 'tablename' öğesini incelemek için şunu çalıştırın:

select COLUMN_NAME,DATA_TYPE from all_tab_columns where TABLE_NAME='tablename'; 
  • COLUMN_NAME: Tablo sütun adı.

  • DATA_TYPE: Sütunun veri türü.

  • all_tab_columns: Tüm tablo sütunlarıyla ilgili bilgileri içeren görünüm.

  • TABLE_NAME: Hedef tablonun adı. Deyimde 'tablename' ifadesini gerçek tablo adıyla değiştirin.

Ayrıca select * from 'tablename'; çalıştırarak tüm verileri sorgulayabilir ve hedef tablo için türleri elde edebilirsiniz.

Veri kaynağı ekleme

DataWorks'te bir senkronizasyon görevi geliştirmeden önce gerekli veri kaynağını Veri kaynağı yapılandırma içindeki talimatları izleyerek DataWorks'e eklemeniz gerekir. Bir veri kaynağı eklerken parametrelerin anlamlarını anlamak için DataWorks konsolunda parametre açıklamalarını görüntüleyebilirsiniz.

Senkronizasyon görevleri geliştirme: Oracle iş akışı

Bir senkronizasyon görevini yapılandırmaya giriş noktası ve yordamı hakkında bilgi için aşağıdaki yapılandırma kılavuzlarına bakın.

Tek tablo toplu senkronizasyon görevini yapılandırma

Tek tablo gerçek zamanlı senkronizasyon görevini yapılandırma

Yordam için bkz. Gerçek zamanlı senkronizasyon görevini yapılandırma (eski).

Tam veritabanı toplu, tam ve artımlı gerçek zamanlı ve parçalı tablo gerçek zamanlı senkronizasyonunu yapılandırma

Yordam için bkz. Gerçek zamanlı tam veritabanı senkronizasyon görevlerini yapılandırma.

SSS

  • Oracle, PolarDB ve MySQL için gerçek zamanlı senkronizasyon görevleri tekrar tekrar hata bildiriyor

  • Birincil-standby kurulumunda veri kurtarma

    Birincil-standby olağanüstü durum kurtarma kurulumunda, birincil sunucu bir standby'a yük devrettikten sonra standby, binloglar aracılığıyla birincilden sürekli olarak verileri kurtarır. Özellikle ağ gecikmesi nedeniyle çoğaltma gecikebilir. Bu nedenle, standby verileri birinciden önemli ölçüde farklı olabilir ve geçerli zamanda tam bir anlık görüntü olmayabilir.

  • Tutarlılık kısıtlamaları

    Oracle, güçlü tutarlı sorgu arabirimleri sağlayabilen bir RDBMS'dir. Örneğin, bir senkronizasyon görevi başladıktan sonra başka bir yazıcı veritabanını güncellerse Oracle Reader, veritabanı anlık görüntüsü davranışı nedeniyle yeni verileri yakalamaz.

    Bu tutarlılık davranışı tek iş parçacıklı bir Oracle Reader için geçerlidir. Yapılandırmanıza göre eşzamanlı çıkarma kesinlikle tutarlılığı garanti edemez.

    Oracle Reader verileri splitPk ile böldüğünde birden çok eşzamanlı görev başlatır. Bunlar bir okuma işlemi paylaşmaz ve farklı zamanlarda başlar, bu nedenle ortaya çıkan veriler tam, tutarlı bir anlık görüntü değildir.

    Birden çok iş parçacığı arasında tutarlı bir anlık görüntü şu anda teknik olarak mümkün değildir. Aşağıdaki mühendislik seçenekleri ödünleşimler içerir; ihtiyaçlarınıza göre birini seçin.

    • Veri bölme olmadan tek iş parçacığı senkronizasyonu kullanın. Daha yavaştır ancak iyi tutarlılık sağlar.

    • Verilerin statik kalması için diğer yazıcıları durdurun, örneğin tabloyu kilitleyerek veya standby çoğaltmayı durdurarak. Bu çevrimiçi hizmetleri etkileyebilir.

  • Veritabanı kodlaması

    Oracle Reader verileri JDBC kullanarak çıkarır. JDBC farklı kodlamaları dahili olarak işler ve dönüştürür, bu nedenle bir kodlama belirtmeniz gerekmez.

  • Artımlı senkronizasyon

    Oracle Reader verileri JDBC SELECT deyimleriyle çıkarır. Artımlı çıkarma için SELECT…WHERE… kullanabilirsiniz:

    • Çevrimiçi bir uygulama veritabanına yazdığında ekleme, güncelleme ve mantıksal silme işlemleri için modify değerini değişiklik zaman damgasına ayarlar. Oracle Reader, önceki senkronizasyon zaman damgasından sonra bir WHERE koşulu kullanabilir.

    • Yalnızca ekleme yapan kayıtlar için önceki aşamadaki maksimum otomatik artış ID'sine dayalı bir WHERE koşulu kullanın.

    Ekleme ve güncellemeleri ayıran hiçbir iş alanı yoksa Oracle Reader artımlı olarak senkronize edemez ve tüm verileri senkronize etmelidir.

  • SQL güvenliği

    Oracle Reader, bir SELECT çıkarma deyimi yazmanıza olanak tanıyan querySql sağlar. Oracle Reader, querySql güvenliğini doğrulamaz.

Ek: Örnek betikler ve parametreler

Kod düzenleyiciyi kullanarak toplu senkronizasyon görevini yapılandırma

Kod düzenleyiciyi kullanarak bir toplu senkronizasyon görevi yapılandırmak istiyorsanız betikteki ilgili parametreleri birleşik betik biçimi gereksinimlerine göre yapılandırmanız gerekir. Daha fazla bilgi için bkz. Betik modu yapılandırma. Aşağıdaki bilgiler, kod düzenleyiciyi kullanarak bir toplu senkronizasyon görevi yapılandırırken veri kaynakları için yapılandırmanız gereken parametreleri açıklar.

Reader örnek betiği

{
    "type": "job",
    "version": "2.0",
    "steps": [
        {
            "stepType": "oracle",
            "parameter": {
                "selectedDatabase": "AUTOTEST",
                "indexes": [],
                "datasource": "oracle_test",
                "envType": 0,
                "useSpecialSecret": true,
                "column": [
                    "id"
                ],
                "where": "",
                "splitPk": "id",
                "encoding": "UTF-8",
                "table": "AUTOTEST.table01"
            },
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "odps",
            "parameter": {
            },
            "name": "Writer",
            "category": "writer"
        },
        {
            "name": "Processor",
            "stepType": null,
            "category": "processor",
            "copies": 1,
            "parameter": {
                "nodes": [],
                "edges": [],
                "groups": [],
                "version": "2.0"
            }
        }
    ],
    "setting": {
        "executeMode": null,
        "errorLimit": {
            "record": ""
        },
        "speed": {
            "concurrent": 2,
            "throttle": false
        }
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Reader betik parametreleri

Parametre

Açıklama

Gerekli

Varsayılan değer

datasource

Veri kaynağı adı. Betik modunda bir veri kaynağı ekleyebilirsiniz. Değer, eklenen veri kaynağının adıyla eşleşmelidir.

Evet

Yok

selectedDatabase

Senkronize edilecek veritabanının şeması.

Evet

Yok

table

schema.tableName biçiminde senkronize edilecek tablonun adı.

Not

Örneğin, selectedDatabase değeri AUTOTEST ve tablo adı table01 ise table parametresini AUTOTEST.table01 olarak yapılandırın.

Evet

Yok

column

Yapılandırılan tablodan senkronize edilecek sütunlar, JSON dizisi olarak açıklanır. Varsayılan olarak tüm sütunlar seçilir, örneğin ["*"].

  • Yalnızca seçilen sütunları dışa aktarabilirsiniz.

  • Sütunları tablo şemasından farklı bir sırayla dışa aktarabilirsiniz.

  • Sabitleri JSON biçiminde yapılandırabilirsiniz.

    ["id", "1", "'mingya.wmy'", "null", "to_char(a + 1)", "2,3" , "true"]
    • id düzenli bir sütun adıdır.

    • 1 bir tamsayı sabitidir.

    • 'mingya.wmy' bir dize sabitidir. Tek tırnak işaretlerini dahil edin.

    • null bir null göstergesidir.

    • to_char(a + 1) bir ifadedir.

    • 2,3 bir kayan nokta sayıdır.

    • true bir Boole değeridir.

  • column Açıkça boş olmayan bir liste belirtin.

Evet

Yok

splitFactor

Veri parçası sayısını ayarlayan bir bölme faktörü. Eşzamanlı görevlerle veriler concurrency × splitFactor parçaya bölünür. Örneğin, concurrency = 5 ve splitFactor = 5, beş eşzamanlı iş parçacığı arasında 5 × 5 = 25 parça üretir.

Not

Önerilen aralık: 1 ila 100. Aşırı büyük bir değer bellek yetersizliği hatasına neden olabilir.

Hayır

5

splitMode

Bölme modu seçenekleri:

  • averageInterval: Ortalama örnekleme. Maksimum ve minimum değerleri bulmak için splitPK kullanın, ardından yapılandırılan parça sayısına eşit şekilde bölün.

  • randomSampling: Rastgele örnekleme. Tüm verilerden rastgele değerleri bölme noktaları olarak seçin.

Not

splitMode'u splitPk ile birlikte kullanın.

  • splitPk sayısal ise splitMode değerini averageInterval olarak ayarlayın.

  • splitPk bir dize ise splitMode değerini randomSampling olarak ayarlayın.

Hayır

randomSampling

splitPk

Oracle Reader veri çıkarırken splitPk belirtmek, verileri splitPk tarafından temsil edilen alana göre bölmek istediğiniz anlamına gelir. Senkronizasyon, verimliliği artırmak için eşzamanlı görevler başlatır.

  • splitPk için tablo birincil anahtarını öneririz çünkü birincil anahtar değerleri genellikle eşit dağıtılır ve veri sıcak noktalarını azaltır.

  • splitPk Yalnızca sayısal veya dize değerleri desteklenir. splitPk ile splitMode kullanın.

    • splitPk sayısal ise splitMode değerini averageInterval olarak ayarlayın.

    • splitPk bir dize ise splitMode değerini randomSampling olarak ayarlayın.

  • splitPk atlanırsa Oracle Reader tabloyu bölmeyip tüm verileri tek bir kanal üzerinden senkronize eder.

Not

Bir görünüm için ROWID, splitPk olarak kullanılamaz.

Hayır

Yok

where

Filtre koşulu. Oracle Reader, belirtilen column, table ve where koşuluna göre SQL'i birleştirir ve verileri bu SQL ile çıkarır. Test için WHERE değerini row_number() olarak ayarlayın.

  • WHERE koşulu artımlı senkronizasyonu etkinleştirebilir.

  • WHERE yoksa veya boşsa tüm tablo verileri senkronize edilir.

Hayır

Yok

querySql (yalnızca gelişmiş mod; sihirbaz modu desteklenmez)

WHERE koşulu filtrenizi açıklayamadığında özel SQL yazmak için querySql kullanın. Veri Entegrasyonu daha sonra table ve column ve diğer ayarları yoksayar, verileri doğrudan querySql ile filtreler. Örneğin, birden çok tabloyu birleştirmek için select a,b from table_a join table_b on table_a.id = table_b.id kullanın. querySql yapılandırdığınızda Oracle Reader table, column ve where koşulunu yoksayar.

Hayır

Yok

fetchSize

Eklenti ve veritabanı sunucusu tarafından her partide alınan kayıt sayısı. Bu, ağ etkileşimlerini kontrol eder ve çıkarma performansını önemli ölçüde artırabilir.

Not

Aşırı büyük bir fetchSize (> 2.048) senkronizasyon sırasında bellek yetersizliği (OOM) hatasına neden olabilir.

Hayır

1.024

Writer örnek betiği

{ "type":"job", "version":"2.0",//Sürüm numarası. "steps":[ { "stepType":"stream", "parameter":{}, "name":"Reader", "category":"reader" }, { "stepType":"oracle",//Eklenti adı. "parameter":{ "postSql":[],//Senkronizasyondan sonra çalıştırılacak SQL deyimleri. "datasource":"", "session":[],//Veritabanı bağlantı oturumu parametreleri. "column":[//Alanlar. "id", "name" ], "encoding":"UTF-8",//Kodlama biçimi. "batchSize":1024,//Tek partide gönderilen kayıt sayısı. "table":"",//Tablo adı. "preSql":[]//Senkronizasyondan önce çalıştırılacak SQL deyimleri. }, "name":"Writer", "category":"writer" } ], "setting":{ "errorLimit":{ "record":"0"//Hatalı kayıt sayısı. }, "speed":{ "throttle":true,//Throttle false olduğunda mbps yoksayılır ve aktarım hızı sınırsızdır; true olduğunda aktarım hızı sınırlıdır. "concurrent":1, //Görev eşzamanlılığı. "mbps":"12"//Hız sınırı. Burada 1 mbps = 1 MB/s'ye eşittir. } }, "order":{ "hops":[ { "from":"Reader", "to":"Writer" } ] } }

Writer betik parametreleri


Parametre


Açıklama


Gerekli


Varsayılan değer


datasource


Veri kaynağı adı. Betik modunda bir veri kaynağı ekleyebilirsiniz. Değer, eklenen veri kaynağının adıyla eşleşmelidir.


Evet


Yok


table


Hedef tablo adı. Tablo şeması yapılandırılan kullanıcı adından farklıysa tablo biçimi olarak schema.table kullanın.


Evet


Yok


writeMode


İçe aktarma modunu seçin. Yalnızca INSERT INTO desteklenir. Birincil anahtar veya benzersiz dizin çakışmasında satır yazılmaz ve kirli veri olarak raporlanır.


Hayır


insert into


column


Virgülle ayrılmış olarak yazılacak hedef tablo alanları. Örnek:"column": ["id","name","age"]. Tüm sütunları sırayla yazmak için * kullanın, örneğin "column":["*"].


Evet


Yok


preSql


Senkronizasyon görevinden önce çalıştırılacak SQL deyimleri. Sihirbaz modu bir deyime izin verir; betik modu eski verileri temizleme gibi birden çok deyimi destekler.


Hayır


Yok


postSql


Senkronizasyon görevinden sonra çalıştırılacak SQL deyimleri. Sihirbaz modu bir deyime izin verir; betik modu zaman damgası ekleme gibi birden çok deyimi destekler.


Hayır


Yok


batchSize


Tek partide gönderilen kayıt sayısı. Bu, Veri Entegrasyonu ile Oracle arasındaki ağ etkileşimlerini büyük ölçüde azaltır ve aktarım hızını artırır. Aşırı büyük bir değer senkronizasyon sırasında bellek yetersizliği (OOM) hatasına neden olabilir.


Hayır


1.024