- Subscribe to RSS Feed
- Mark Question as New
- Mark Question as Read
- Float this Question for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
Sequence number generation in impala
- Labels:
-
Apache Impala
Created on 02-29-2016 11:44 PM - edited 09-16-2022 03:06 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I want to generate sequence number for each new record in Impala.
1. First load - am loading 100 records with sequence number starting from 1 to 100.
2. Second load - i need to load new 10 records which are not present in first load . So my sequence number has to start from 101 to 110 for these new to records.
I think there is no sequence function here and Next value cannot be used to hold the max value.
Is this possible with any other function or UDFs has to be written ?
Created 03-03-2016 09:46 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The Hive UDF won't help you. If you look at the Hive issue tracker https://issues.apache.org/jira/browse/HIVE-1304, row_sequence() was added as a workaround because they didn't support the row_number() analytic function at that point in time.
We support the row_number() analytic function in Impala, so there's no reason to try to use that UDF.
If you want to start froma particular number, can't you just add it like I suggested in my previous answer?
Created 03-01-2016 07:12 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You could possibly use the ROW_NUMBER() analytic function as part of the solution.
E.g.
select t2.last_id + 1 + row_number() over (order by table1.col1), table1.col1
from table1
inner join (select max(id) last_id from table2) t2
This wouldn't be safe if you are running multiple insert concurrently.
Created on 03-02-2016 05:15 AM - edited 03-02-2016 05:16 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks Tim for answering it. I tried using UDFrowsequence java code and it always start from 1.
Is there a way to start from max value by passing it ?
Created 03-03-2016 09:46 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The Hive UDF won't help you. If you look at the Hive issue tracker https://issues.apache.org/jira/browse/HIVE-1304, row_sequence() was added as a workaround because they didn't support the row_number() analytic function at that point in time.
We support the row_number() analytic function in Impala, so there's no reason to try to use that UDF.
If you want to start froma particular number, can't you just add it like I suggested in my previous answer?
Created on 03-03-2016 11:57 PM - edited 03-03-2016 11:57 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes Tim. That works. Here we need to join target table (table2).
If CREATE SEQUENCE function is there in impala, it would be of more useful instead of doing these tricky things.
Thanks for your reply.
Created 04-24-2017 01:02 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Tim,
Thanks for the solution but i'm not able to understand it prorperly. Can you provide a query with the below issue description. I tried using your solution query but wasn't able to map the col's. So i have a table buyers and its has one col 'id' for which every time an insert happens i want that col to get incremental value's for each insert.
Table Buyers
Col: id,name,created on
Can you provide a sample query for this table. It will be really helpful to me as i'm stcuk on this from long time.
Created 06-14-2017 06:32 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Created on 03-28-2018 09:19 AM - edited 03-28-2018 09:20 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Created 03-28-2018 09:43 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Created 02-15-2017 01:31 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Try using this hive UDF in Impala: https://github.com/manojkumarvohra/hive-hilo
