Hello team :wave: We have an offline table in Pino...
# troubleshooting
n
Hello team πŸ‘‹ We have an offline table in Pinot with ~ 1 month of prod data that we initially started as a POC for checking partition based segment pruning. We want to extend the table (with same table name) to re-load all of our prod data with a different replication in table config (2 -> 3) & data type change to a column in the schema (string -> long). We are fine to overwrite the existing data in this table. What are the options to delete/drop & recreate with same table name (or) update existing table with the updated table config & schema config before reloading all the data? Not sure if the Swagger APIs like Table/updateTableConfig or Table/deleteTable will solve this. Appreciate any thoughts/recommendations regarding this πŸ™‡β€β™€οΈ
m
Changing String to Long will likely be flagged as a backward incompatible change and won’t be allowed. Other than re-creating the table, you may add a new column of long type and stop populating the String column.
n
We are fine with re-creating the table but how to do that with the same table name? Can we drop the existing table? we don't need the data in the existing table as we are going to load them again. We just want the same table name with new table config & schema config.
m
Yeah, drop the table and re-create with same name will work
thankyou 1
n
What is the right Swagger API for this operation? will dropping the table also drop the associated data?
m
It will
n
is
Table/deleteTable
the right API for this?
m
Yes it is. If there is real-time table here, then you want to wait for the table to be removed from ExternalView in ZK browser before creating the new table with the same name
n
It is an
offline
table & planning to use
Table/deleteTable
through Swagger API GUI (from our Pinot UI)
1. Dropping existing table with associated data using
Table/deleteTable
API 2. Creating the table again with same name & updated configs using
Table/addTable
API
m
You can also use the Pinot UI for delete and create. Both will call the same underlying code.
πŸ‘ 1