Move the data from the partitions again tablespace - direct table filled by ETL

Hello

We have a large composite table date-range/hash partitioned table (using time partitioning 11.2.0.3 range)

1 partition for each month and each such partition 4 under separate partitions.

We want to move some data from most significant storage but also direct table and inserted in all the days as part of the data warehouse and large table want to ensure

operations below result in errors in the data loading procedure

Suppose also should not take long to run lines 40 million or more each month.

Select *.

Of user_tab_partitions

Where table_name = 'CUSTOMER_TRANSACTION '.

And nom_partition like 'SYS % '.

  1. (1) Alter table retailer_transaction and rename partition < nom_partition > CUST_PART_ < YYYYMM >

  1. (2) tablespace create dedicated for the month of the affected partition

  1. ((3) alter table retailer_transaction move tablespace subpartition < sys... > < partition_tablespace > created in 2) above

ALTER table retailer_transaction change the default attributes for the partition < CUST_PART < YYYYMM > < tablespace in 2 above > tablespace)

4 global index which would eventually rebuild afterwards due to the transition if movement makes no valid.

Several local bitmap indexes that belong to partitions.

Thoughts?

Thank you

I agree in a good store of data, everything should be according to the best practices ETL or guideline. I guess it is a FACT table, because it's big enough. A method that I can share (followed in the real world big DW) is "ELP" IE Partition Exchange loading. You can find the basic architecture of the Internet.

The basic architecture is as

The source (in your case partitioned) Table--> (unpartitioned) intermediate Table--> Table possible target (partitioned)--> the cleaning activities (and overtime).

You can use any ETL tool for this (I won't mention any other reasons).

Later, you can delete the original table and use that new table as your FACT table, your application will be available all the time. There are drawbacks as most uses of double-spaced, other than normal ETL these work will take certain amount of resources so that other ALS etc. In addition, if you load a few current days during these activities you plan / program accordingly.

Your demo is also fine, but regular ETL may fail because you rename the partitions (some uses of ETL tool partition name, in case you ever ELP) also unusable global indexes can cause failure (you have local too?).

Tags: Database

Similar Questions

  • Cannot add the partition to an existing table.

    Hello

    I don't add the partition to an existing table that is not partitioned, get the error as a type of data not valid, then I'm not find syntax errors.

    ALTER TABLE MESSAGEX_XCHANGE

    ADD THE PARTITION OF RANGE (LAST_MODIFY_TIMESTAMP)

    (

    PARTITION old_data VALUES LESS THAN (To_TIMESTAMP('27/02/2014','DD/MM/YYYY')),

    You see for VALUES LESS THAN (To_TIMESTAMP('28/02/2014','DD/MM/YYYY')) of the PARTITION

    );

    Error report:

    SQL error: ORA-00902: invalid data type

    1. 00000 - "invalid data type".

    * Cause:

    * Action:

    Thank you

    Manon...

    You get this error because your edit statement has an invalid syntax. In addition, you cannot partition a table that is not already configured for partitioning!

    You have to physically re-create the partitioned table in order to add new partitions to it.

  • How to migrate data from a source to multiple targets (tables)?

    How to migrate data from a source to multiple targets (tables)? Describe the General steps, please or point me to a tutorial

    Yes, a table in a mapping element can be source and target at the same time (i.e. a target can be reused as a source for the rest of the map on the right side of the table).

    Don't forget to check the order of loading (in the property map), to ensure that the reused as source is loaded before the final table target table.

    I tested it and it works. However, the documentation is not said in the link I gave you above:

    "Each element of data store that has entries but no exits in the logical diagram is considered a target."

    Usually, I tend not to do. I am in favour of a Divide and Conquer approach and try to have my mapping as simple as possible. It is easier to debug and maintain.

  • How to move free space from one Partition to the other?

    I first got this computer (Dell, Windows 7) I had two I had two partitions, a C drive which had 50 GB and a D drive that had the rest of my 500 GB (approximately 397). now my c drive it filled and I can't get it all files to move on go drive D, then it's like I don't have any space left on my computer. I tried to reduce the amount of GB that were in the D drive, but it won't let me expand the fill c. and I can not just delete the D drive eather because I have files on there that I had to move to the course. is there a simple why i can shrink the D drive and extend the C drive?

    Another option would be to leave the scores they were and redirect your Documents, photos etc to the bigger partition (I think that's what you were trying to do it before you tried to change the partitions) as described in the following link: http://windows.microsoft.com/en-US/windows7/Redirect-a-folder-to-a-new-location

  • Move the partition of the table and get ORA-14006: invalid partition name

    I'm using oracle 11.2.0.4 and I am trying to move a partitioned table to one tablespace to another.  I checked may times and I have the correct table name and the name of the partition.  However, I get the error ora-14006.

    Can see everything what could be the problem?

    SQL > ALTER TABLE GWPROD. QRY_TES_ROLLINGCUREDITS MOVE PARTITION 201112 TABLESPACE GW_PROD_T2 PARALLEL (DEGREE 4) NOLOGGING;

    ALTER TABLE GWPROD. QRY_TES_ROLLINGCUREDITS MOVE PARTITION TABLESPACE GW_PROD_T2 PARALLEL (DEGREE 4) NOLOGGING 201112

    *

    ERROR on line 1:

    ORA-14006: invalid partition name

    Thanks in advance.

    Names that begin with numbers are not legal partition names. A fool created by placing them between double quotes. You will need to do the same.

  • Load the data from a text file into a table using pl/sql

    Hi Experts,

    I want to load the data from a text file (sample1.txt) to a table using pl/sql

    I used the pl/sql code below

    ***********************************
    declare
    f utl_file.file_type;
    s varchar2 (200);
    c number: = 0;
    Start
    f: = utl_file.fopen('TRY','sample1.txt','R');
    loop
    UTL_FILE.get_line (f, s);
    insert into sampletable (a, b, c) values (s, s, s);
    c: = c + 1;
    end loop;
    exception
    When NO_DATA_FOUND then
    UTL_FILE.fclose (f);
    dbms_output.put_line('No. deles de lignes insérées: ' || c);
    end;

    ***************************************

    and my sample1.txt file looks like

    ***************************************
    1
    2
    3
    ***************************************

    Gets the data inserted, with way below

    Select * from sampletable;

    A, B AND C

    1-1-1
    2-2-2
    3 3 3

    I want that data to get inserted as

    A, B AND C

    1 2 3

    The text file I have is to have three lines, and the first value of each line should go to each column

    Help, please...

    Thank you
    declare
    f utl_file.file_type;
    s1 varchar2(200);
    s2 varchar2(200);
    s3 varchar2(200);
    c number := 0;
    begin
    f := utl_file.fopen('TRY','sample1.txt','R');
    utl_file.get_line(f,s1);
    utl_file.get_line(f,s2);
    utl_file.get_line(f,s3);
    insert into sampletable (a,b,c) values (s1,s2,s3);
    c := c + 1;
    utl_file.fclose(f);
    exception
    when NO_DATA_FOUND then
    if utl_file.is_open(f) then utl_file.fclose(f); ens if;
    dbms_output.put_line('No. of rows inserted : ' || c);
    end;
    

    SY.

  • arrows move the object in opposite directions - default type in vertical orientation

    Hi Illustrator community.

    Two questions were really annoys me and so far I've been unable to find a solution:

    On my Macbook Pro 13, 2012 ", in this version of Illustrator CC (not a problem for other products CC), the arrows are somehow put out: using the left/right arrows moves objects vertically, and using up/down arrow keys moves objects to the left and right." Even if I tried to get used to it, it's really slow me down I checked the preferences and keyboard shortcuts, and unless I'm missing something, there seems to be a setting for this?

    Also when using the standard tool (not the vertical type tool), initially type is placed rotate 90 degrees counterclockwise, and after that I flip back to a horizontal position, I can move and edit fine. Any suggestions?

    Thanks in advance,

    Mark

    Mark,

    Edit > preferences > General > constrain Angle should be 0 degrees.

    If this is the case, Illy may think, it is not, and then she made a mess of things (and perhaps other things, too). In this case, it may be time for the list below.

    Unless you subscribe to the vertical version.

    The list:

    Sometimes, (some) things may fail or stop working for no apparent reason. When (other) possible reasons/remedies do not work, it is perhaps a kind corruption (temporary or permanent), or even preference settings which disturbs, which can be cured with something on the following list put in place in order to provide a catch-all solution for otherwise intractable cases. It starts with a few easy suggestions and safe) 1 and 2) for cases less serious and goes two ways 3) and 4) to reset the default preferences (easily but irreversibly and more laboriously but more completely and also reversible), then follows a list 5) various other possibilities, and it ends with a complete reinstallation 6). If no other suggestion doesn't work, or if no other suggestion appears, you can start on the list and decide how to go or who can apply.

    The following is a general list of things, try when

    (A) the question is not in a specific file,

    (B) you have a printer installed, connected and turned on if it's a physical printer (you can use Adobe PDF/Acrobat Distiller as a printer by default without the need to have a printer on, of course you will need to specify when you really need print on paper), and

    (C) It is not caused by problems with opening a file from external media (see below).

    You tried/made some of them already; 1 and 2) are easier for temporary strangenesses and 3) and 4) specifically may be corrupted/inconvenient preferences); ((5) is a list in itself and 6) is the last resort.

    If possible / there is, you must record a current work first, of course.

    (1) close Illy and open again.

    (2) restart the computer (you can make up at least 5 times);

    (3) close Illy and press Ctrl + Alt + Shift / Cmd + Option + shift during startup (easy, but irreversible);

    4) move the folder (follow the link with this name) with closed Illy (more tedious but also more thorough and reversible), for CS3 - CC you can find the file here:

    https://helpx.Adobe.com/Illustrator/KB/preference-file-location-Illustrator.html

    5 look through and try the relevant among the other options (click on the link with that name, item 7) is a list of the usual suspects among other applications which can disturb and confuse Illy, point 15) applies to the maybe CS5, CS6 and CC);

    Even worse, you can:

    6 (A) uninstall (check the box to delete the preferences, if any), B) run the cleanup tool (if you have CS3/CS4/CS5/CS6/CC) and C) reinstall. It is important to use this step three way: otherwise, things may persist.

    http://www.Adobe.com/support/contact/cscleanertool.html

  • Importing data from a text file in a table

    Hi Experts,

    I have the following flat file
    weekly_eft_repo  1.0                                                                                                       Page: 1
    CDC:00304 / Sat Oct-31-2009     Weekly EFT Sweep for 25/10/09 - 31/10/09  Effective Date 03/11/09         Sat Oct-31-2009 22:06:14
    ----------------------------------------------------------------------------------------------------------------------------------
    
    Bill to
    Retailer Retailer Name                  Name on Bank Account           Bank ABA   Bank Acct            On-line Amount  Instant Amount  Total Amount
    ======== ============================== ============================== ========== ==================== =============== =============== ===============
     0200101 Triolet Popular Store          Triolet Popular Store          111111111  62030100130659            10,868.00            0.00       10,868.00
     0200103 Le Cacharel Snack              Le Cacharel Snack              111111111  62030100130813             9,728.00            0.00        9,728.00
     0200104 Advanced Co-operative Self Ser Advanced Co-operative Self Ser 111111111  111111111                  7,334.00            0.00        7,334.00
     0200105 Chez Popo Supermarket          Chez Popo Supermarket          111111111  61030100044898            30,932.00            0.00       30,932.00
     0200106 Vana Supermarket               Vana Supermarket               111111111  111111111                 17,775.00            0.00       17,775.00
     0200107 Mont Choisy Store              Mont Choisy Store              111111111  62030100130804             8,840.00            0.00        8,840.00
     0200108 Vijay Store                    Vijay Store                    111111111  62030100131229            16,416.00            0.00       16,416.00
     0200109 Neptune Confection             Neptune Confection             111111111  62030100130931            11,077.00            0.00       11,077.00
     0200110 Antoine Store                  Antoine Store                  111111111  111111111                  2,470.00            0.00        2,470.00
     0200111 P.S.C Cold Storage             P.S.C Cold Storage             111111111  111111111                 10,431.00            0.00       10,431.00
     0200113 Mini Prix Boutique             Mini Prix Boutique             111111111  62030100131501            26,315.00            0.00       26,315.00
     0200114 Hotel Cassim                   Hotel Cassim                   111111111  111111111                135,147.00            0.00      135,147.00
     0200116 Aman Snack                     Aman Snack                     111111111  62030100129481             7,334.00            0.00        7,334.00
     0200117 Best For Less Company Ltd      Best For Less Company Ltd      111111111  111111111                  3,325.00            0.00        3,325.00
     0200118 Central Way                    Central Way                    111111111  111111111                 25,137.00            0.00       25,137.00
    I need to insert the data that it contains in the following table
    TABLE weekly_eft_report_temp
     Name                                      Null?    Type                        
     ----------------------------------------- -------- ----------------------------
     BILL_TO_RETAILER                          NOT NULL VARCHAR2(15)                
     RETAILER_NAME                                      VARCHAR2(100)               
     NAME_ON_BANK_ACCOUNT                               VARCHAR2(100)               
     BANK_ABA                                           VARCHAR2(1)                 
     BANK_ACCT                                          VARCHAR2(1)                 
     ON_LINE_AMOUNT                                     NUMBER                      
     INSTANT_AMOUNT                                     NUMBER                      
     TOTAL_AMOUNT                                       NUMBER 
    What is the easiest and best to proceed on this?

    Thank you
    Kevin

    If that's what you're looking for, then you can do

    with t
    as
    (
    select 'BILL_TO_RETAILER' col1 from dual union all
    select 'Some unwanted info' from dual union all
    select 'Some unwanted info' from dual union all
    select '==============' from dual union all
    select 'Actual Data' from dual union all
    select 'Actual Data' from dual union all
    select 'BILL_TO_RETAILER' from dual union all
    select 'Some unwanted info' from dual union all
    select 'Some unwanted info' from dual union all
    select '==============' from dual union all
    select 'Actual Data' from dual union all
    select 'Actual Data' from dual
    )
    select col1
      from (
             select col1, last_value(val ignore nulls) over(order by rno) val1
               from (
                     select t.*,
                            case when col1 = 'BILL_TO_RETAILER' then 1 when regexp_like(col1,'=+') then 0 else null end val,
                            rownum rno
                       from t
                    )
           )
     where val1 = 0
       and not regexp_like(col1,'=+')
    
  • move old data from the mysql table

    I have a Web page that retrieves the content in a database. The table are filled via a restricted page that was created for the data entry. I just want to know is anyway we can push the old data to another table after so long. For example if the data was created in table1 for seven days, the eighth day, I like the data that have been put on the day 1 to table2 kind that table1 will have room for the data that will be created to update 8. I would like to only 7 days worth of data in table1. Also how to remove completely from table2 data after 90 days. Also, what must you do to have the last entry in the table of row1.of

    Thank you

    keramatali wrote:

    what I need to do to display the data of the day 2 to day 7 instead of shoiwng given from day 1 to day 7

    It's a simple matter of logic. Get the last seven days is to retrieve dates that have overtaken less seven. To get days 2 to 7, you need to dates that are less than or equal to today less than 1 AND greater than or equal to 7 today.

    SELECT column1, column2, column3FROM myTableWHERE date_created <= SUBDATE(NOW(), 1) AND date_created >= SUBDATE(NOW(), 7)ORDER BY date_created DESC
    
  • How to reinstall the old photoshop in a new mac from apple. (Cannot transfer data from old phone again)

    Is it possible to reinstall photoshop bought in 2013 in a new cell phone from Apple? How do you do that?

    Sally,

    You can download and install the software from here:

    Suites and programs CC 2014 | CC | CS6 | CS5.5 | CS5 | CS4 , CS4 Web Standard | CS3 | CS2

    You can check the system requirements for your version here: system requirements | Photoshop

    Guinot

  • Moving the partitions to tablespace diffreent marking unusable indexes

    Hello

    I use 11.2.0.3 oracle on IBM PoWER sERIES 7 ON aix

    and have a routine to move partitions greater n days in a dedicated tablespace, but when that move these old partitions of the index are marked as unusable.

    How can I avoid this, what am I doing wrong?
      execute immediate ('alter table '||i.table_name||' move partition '||i.partition_name
                                 ||' tablespace '||v_archive_partition_tspace);
    move works very well but the indexes show also unusable and not want to re-create the index each time that would take nearly an hour.

    Table partitioned by day_num (NUMBER)

    each partition belongs to the same tablespace BI_DATA and index belong to the BI_IDX.

    When moving the old question of partitions above the command - t - it not unlcude the index - thera is an index option?

    Thank you

    It is up to you; storage spaces are for administrative convenience.

    My preference would be to place them in a tablespace - you would never restore without the table index or vice versa, so put in a single tablespace would be convenient administratively.

  • I want to move the partition

    not enough space in my hard disk usage

    partition let me use more space

    Hello

    You can use Partition Wizard Home (free software) to do this.

    Check tutorial here .

    • You want someone to say 'thank you '? Click"Vote as helpful" located on the left under each avatar of the user.
    • Make it easier for others to find solutions, marking my answer with Mark as'reply' button if it solves your problem.
  • This table contains data from underlying metric for Tablespace free space (MB)?

    10.2.0.4; 64-bit Windows

    I guess that's in the SYSMAN schema? I can see in DBConsole and can see the average, high and low values for the last 31days - but want to query the raw data themselves.

    See you soon

    Gary

    See the reference guide: DBA_HIST_TBSPC_SPACE_USAGE

    I suspect the average and these are the values calculated in Oracle queries.

    Published by: Centinul on July 12, 2012 11:08

  • move the left border of a table

    I have a few tables in a single story (and not in separate text blocks). While I can easily change the width of columns, I can't move some tables to their left margin (of the type area). There is no problem with the right margin, however. -Am I missing something?

    Tables are contained within a paragraph and obey the alignment of paragraphs and Medallion options you have set. In other words, if the table is in a paragraph left, he's going to kiss all insert left or left margin applied, but it can grow beyond the right margin. If you want to extend beyond the two margins, it must be in a centered paragraph.

  • Inserting data from a query to an existing table

    How do I change my code to make it work correctly? It currently compiles I think because the program believes that the size of v_stats_5d_1 can be different from c_stats_5d_1. I have these errors:

    LINE/COL ERROR

    -------- ------------------------------------

    30/10 PL/SQL: statement ignored

    30/23 PL/SQL: ORA-00947: not enough values

    CREATE OR REPLACE PACKAGE IN THE PKG_RISK_MONITOR

    PROCEDURE CREATE_STATS_5D)

    P_CONTEXT_DATE IN VARCHAR2

    );

    END PKG_RISK_MONITOR;

    /

    CREATE OR REPLACE PACKAGE BODY PKG_RISK_MONITOR AS

    PROCEDURE CREATE_STATS_5D)

    P_CONTEXT_DATE IN VARCHAR2

    )

    IS

    l_ct NUMBER;

    CURSOR c_stats_5d_1

    IS

    SELECT MIND_ACCOUNTS. CLIENT_ID, MIND_ACCOUNTS. CLIENT_NAME, SUM (DATA. CREATED_TRANSACTIONS_NUMBER) AS SUM_CREATED_TRX_NUMBER, SUM (DATA. CREATED_refunds_NUMBER) SUM_CREATED_REFUNDS_NUMBER, SUM (DATA. CREATED_TRANSACTIONS_value * Conversion_rate) CREATED_TRX_EUR_VALUE, DATA. PROCESSING_DATE

    OF (MIND_ACCOUNTS INNER JOIN DATA ON MIND_ACCOUNTS. ACCOUNT_ID = DATA. CURRENCY_conversion INNER JOIN MERCHANT_CID) ON THE DATA. CURRENCY = CURRENCY_conversion. CURRENCY

    GROUP OF MIND_ACCOUNTS. CLIENT_ID, MIND_ACCOUNTS. CLIENT_NAME, DATA. PROCESSING_DATE

    (DATA. PROCESSING_DATE > = TO_DATE (P_CONTEXT_DATE, 'dd-mm-yyyy')-4) and DATA. PROCESSING_DATE < = TO_DATE (P_CONTEXT_DATE, ' dd-mm-yyyy "")

    ;

    v_stats_5d_1 "TMP_STATS_5D_1" % rowtype;

    BEGIN

    -Insert subquery data into an empty table

    OPEN c_stats_5d_1.

    LOOP

    SEEK c_stats_5d_1 INTO v_stats_5d_1;

    EXIT WHEN c_stats_5d_1% NOTFOUND;

    INSERT INTO 'TMP_STATS_5D_1 '.

    VALUES (v_stats_5d_1);

    END LOOP;

    END CREATE_STATS_5D;

    END PKG_RISK_MONITOR;

    /

    DISPLAY ERRORS

    THX. Managed to get there in the end:

    CREATE OR REPLACE PACKAGE IN THE PKG_RISK_MONITOR

    PROCEDURE CREATE_STATS_5D)

    P_CONTEXT_DATE IN VARCHAR2

    );

    END PKG_RISK_MONITOR;

    /

    CREATE OR REPLACE PACKAGE BODY PKG_RISK_MONITOR AS

    PROCEDURE CREATE_STATS_5D)

    P_CONTEXT_DATE IN VARCHAR2

    )

    IS

    l_ct NUMBER;

    v_sql VARCHAR2 (1000);

    BEGIN

    -Determine whether the table exists.

    Select count (*) in l_ct

    from user_tables

    where table_name = 'TMP_STATS_5D_1 ';

    -Remove the table if it exists.

    If l_ct = 1 then

    run immediately "drop table TMP_STATS_5D_1;

    end if;

    v_sql: = q'[CREATE TABLE 'TMP_STATS_5D_1' AS

    SELECT m.client_id,

    m.client_name,

    Sum (d.created_transactions_number) AS sum_created_trx_number,

    Sum (d.created_refunds_number) AS sum_created_refunds_number,

    Sum(d.created_transactions_value * conversion_rate) AS created_trx_eur_value,

    d.processing_date

    M 'MIND_ACCOUNTS '.

    INNER JOIN 'DATA' m.account_id d = d.merchant_cid

    INNER JOIN 'CURRENCY_CONVERSION' c ON d.currency = c.currency

    WHERE (d.processing_date > = To_date ('] '))

    || P_CONTEXT_DATE |

    q'[(', ' dd-mm-yyyy') (-4) AND d.processing_date]<=>

    || P_CONTEXT_DATE |

    q'[',' dd-mm-yyyy ")"]

    GROUP OF m.client_id, m.client_name, d.processing_date] ";

    immediately run v_sql;

    END CREATE_STATS_5D;

    END PKG_RISK_MONITOR;

    /

    DISPLAY ERRORS

Maybe you are looking for