Wednesday, June 21, 2023

Sunday, May 7, 2023

Monday, May 1, 2023

Mengatasi Masalah "Exception in thread "Thread-2" java.lang.OutOfMemoryError: GC overhead limit exceeded" pada Talend Studio

 

Hallo bro, 

kali ini gua mau share mengenai solving masalah yang gua alamai hari ini. 

Jadi ceritanya, gua bikin job buat extract data dari manual file berupa Excel File dengan ukuran lebih dari 5 MB. 

Dan pas gua running ternyata error 

 "Exception in thread "Thread-2" java.lang.OutOfMemoryError: GC overhead limit exceeded" 

Nah,,, bagaimana cara mengatasinya ?

langkah-langkahnya : 
1. Klik ke menu debug 
2. masuk ke tab "Advanced Setting"
3. Centang Ceklis box JVM 
4. Setting Xms & Xmx nya 
    bisa ikuti gambar diatas, 
    
Kalau masih belum bisa, tinggal naikin aja :
misal dengan settingan diatas masih error yang sama ya
Nah, lu bisa naikin jadi 1024 x 8 = 8.192

jadi settingan nya : 
Xms4096M
Xmx8192M

Cobain ya,,, 
Klo trik ini bisa, infoin di komen ya biar gua tahu kalau lu pake trik ini. 
Dan gua bisa tahu kalau postingan gua ini bermanfaat. 

Terimakasih
Salam Belajar 

Share:

Tuesday, March 14, 2023

Cara Mengaktifkan Referensi Code pada Talend

 

Uploading: 14571 of 14571 bytes uploaded.
Oke gais, 
kali ini gua mau nyatet doang si sebenernya, biar gua gak lupa solusinya. 
Jadi di Talend gua gak tahu code nya, tapi butuh. 
maka lu bisa aktifkan referensinya dengan klik CTRL + Spasi 
Setelah itu akan muncul referensi code nya, lu tinggal ngetik satu atau dua huruf dia akan langsung memberikan lu refrensi



Share:

Thursday, January 19, 2023

Cara mendapatkan Tanggal Pertama pada Redshift / PostgreSQL

 



We can use the following method in PostgreSQL to return the first day of a given month.

This could be the first day of the current month, or the first day of the month based on a date that we specify.

Getting the first day of the month allows us to perform further calculations on the resulting date, like adding a certain number of days to the start of the month, etc.

Start of the Current Month

Here’s an example that returns the first day of the current month:

SELECT date_trunc('month', now());

Result:

2022-04-01 00:00:00+10

This uses PostgreSQL’s date_trunc() function to return the results we want. This function truncates a date/time value to a specified precision.

In this case I use the now() function to return the current date, and the 'month' argument modifies that date to the beginning of the month.

We can cast it to a date value if required:

SELECT date_trunc('month', now())::date;

Result:

2022-04-01

Here it is again, along with the actual date that I ran the example:

SELECT 
    now()::date AS "Current Date",
    date_trunc('month', now())::date AS "Start of Month";

Result:

+--------------+----------------+
| Current Date | Start of Month |
+--------------+----------------+
| 2022-04-09   | 2022-04-01     |
+--------------+----------------+

Start of a Specified Month

It doesn’t have to be the start of the current month. We can specify any date, and it will return the start of the month, based on that date.

Example:

SELECT date_trunc('month', date '2030-07-14')::date;

Result:

2030-07-01

We can then use the result to perform other actions on it. For example, we can add a given number of days to the result like this:

SELECT date_trunc('month', date '2030-07-14')::date + 20;

Result:

2030-07-21

Database Example

Here’s an example that uses dates from a database:

SELECT
    rental_date,
    date_trunc('month', rental_date)::date AS "The 1st of the Month",
    date_trunc('month', rental_date)::date + 19 AS "The 20th of the Month"
FROM rental WHERE customer_id = 459 LIMIT 10;

Result:

+---------------------+----------------------+-----------------------+
|     rental_date     | The 1st of the Month | The 20th of the Month |
+---------------------+----------------------+-----------------------+
| 2005-05-24 22:54:33 | 2005-05-01           | 2005-05-20            |
| 2005-06-17 02:50:51 | 2005-06-01           | 2005-06-20            |
| 2005-06-17 09:38:22 | 2005-06-01           | 2005-06-20            |
| 2005-06-17 16:40:33 | 2005-06-01           | 2005-06-20            |
| 2005-06-20 02:39:21 | 2005-06-01           | 2005-06-20            |
| 2005-06-20 12:35:44 | 2005-06-01           | 2005-06-20            |
| 2005-06-20 12:42:00 | 2005-06-01           | 2005-06-20            |
| 2005-06-21 02:39:44 | 2005-06-01           | 2005-06-20            |
| 2005-07-06 00:22:29 | 2005-07-01           | 2005-07-20            |
| 2005-07-08 02:51:23 | 2005-07-01           | 2005-07-20            |
+---------------------+----------------------+-----------------------+
Sumber : https://database.guide/get-the-first-day-of-the-month-in-postgresql/
Share:

Wednesday, January 18, 2023

Cara Membuat Parameter Variabel di Talend supaya lebih fleksibel

 


    Jadi ternyata di Talend itu bisa dibuatkan parameter. Jadi bisa lebih fleksibel. 

Contoh nya gini. Dalam job talend lu itu ada filter tahun, yang biasanya kita taruh langsung script didalam talend nya. Jadi kalau ada perubahan kita harus buka dulu talend studio nya. Ribet kan ya,,, apalagi kalau job talend nya udah banyak, pasti bakal berat tuu lu buka talend studio nya.

Jadi biar bisa dengan mudah merubah filter tanpa harus membuka talend studio, gua punya caranya sendiri nih. Semoga membantu ya ... 

Gini-gini caranya : 

1. Buka talend studio 

2. Pilih job yang akan dibuat parameter 

3. Kemudian ikuti gambar ini  

    - 1 klik contexts

    - 2 klik tanda + untuk menambahkan parameter 

    - 3 isi nama parameter sesuai dengan kemauan yang lu mau

4. Naaahhh ,,, kalau udah buka component tSetGlobalVar

    a. kllik + untuk menambahkan parameter 
    b. ubah nama parameternya sesuai dengan keinginan lu 
    c. ubah value context.parameter_cutoff 
        Nah kombinasinya 
            - context. = wajib pake aja 
            - parameter_cutoff = penamaan ini sesuaikan dengan yang lu buat di point 3 diatas 
5. Nah kalau udah sekarang lanjut buka di TMC nya, atau Talend Management Console yang ada di website nya itu loh 
 Nah,,, kalau berhasil berarti nanti disini akan ada tambahan parameter nya yang bisa kita isi sendiri. 
bebas dah terserah lu mau di isi apa saja. 

6. Oh iya lupa, jangan lupa juga agar di script talend nya itu bisa ngebaca isi yang lu tulis di TMC nya lu harus panggil parameternya itu juga. 

cara panggilnya gini : 
And POSTING_YEAR >= '" + context.parameter_cutoff + "'

Nih yang gua tandain merah cara manggil parameter nya. 

Kalau bingung kabarin di komen ya ... nanti bisa sharing-sharing lagi








Share:

Cara Delete table di Redshift

 


    Hallo mabro, kali ini gua pengen catet lagi ini pengetahuan yang baru gua dapetin. Intinya mah ini tu catatan buat gua si, biar gua gak lupa. Tapi mungkin catatan gua bisa bermafaat untuk yang lain, ya jadi gua share saja disini. 
    Okeh,,, karena sebelumnya gua lebih sering buat script SQL dan SQL Server sebagai databasenya. Nah sekarang gua lebih sering menggunakan Redshift untuk databasenya. Sehingga ada beberapa function script yang berbeda dengan SQL Server. Namun secara keseluruhan hampir sama cuma ada beda dibeberapa bagian saja. 
    Jadi saat ini gua mau share terkait logic untuk Delete table berdasarkan table yang lain untuk filternya. Nanti tulils dibawah yang jadi perbedaan nya. : 

SQL Server 

DELETE FROM EDW_FINANCESOD.T_SOD_CONFLICT SOD 
INNER JOIN (
SELECT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,COUNT(*) 'COUNT_BASELINE_DOCUMENT'
FROM (
SELECT  DISTINCT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,BASELINE_DOCUMENT  
FROM EDW_FINANCESOD.T_SOD_CONFLICT WHERE SOD_RULE IN ('R040','R140','R150')
) X
GROUP BY CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT
) DISTINCT_SOD ON SOD.CREATED_BY_NAME = DISTINCT_SOD.CREATED_BY_NAME 
AND SOD.COMPANY_CODE = DISTINCT_SOD.COMPANY_CODE 
AND SOD.PERIOD_OF_BASELINE_DOCUMENT = DISTINCT_SOD.PERIOD_OF_BASELINE_DOCUMENT 
WHERE DISTINCT_SOD.COUNT_BASELINE_DOCUMENT > 1 

Redshift : 
DELETE T_SOD_CONFLICT_STAGING 
FROM 
(
    SELECT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,COUNT(*) AS COUNT_BASELINE_DOCUMENT
    FROM (
        SELECT  DISTINCT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,BASELINE_DOCUMENT  FROM T_SOD_CONFLICT_STAGING WHERE SOD_RULE IN ('R040','R140','R150')
        ) X
    GROUP BY CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT
) DISTINCT_SOD 
Where 
(
    T_SOD_CONFLICT_STAGING.CREATED_BY_NAME = DISTINCT_SOD.CREATED_BY_NAME 
AND T_SOD_CONFLICT_STAGING.COMPANY_CODE = DISTINCT_SOD.COMPANY_CODE 
AND T_SOD_CONFLICT_STAGING.PERIOD_OF_BASELINE_DOCUMENT = DISTINCT_SOD.PERIOD_OF_BASELINE_DOCUMENT 
and DISTINCT_SOD.COUNT_BASELINE_DOCUMENT = 1
);

Nah,,, tu diatas bedanya. 
Biar gak puyeng gua tandain warna merah di script nya. 
1. Beda di cara delete nya 
2. beda dicara join table utama dengan table lain nya

kalo masih bingung kabarin gua di komen ya ...



Share: