The Vertica Forum recently got a makeover! Let us know what you think by filling out this short, anonymous survey.
Please take this survey to help us learn more about how you use third party tools. Your input is greatly appreciated!
export to Parquet : Error 3457
A customer is receiving Error 3457: Function ParquetExportFinalize(int) does not exist, or permission is denied for ParquetExportFinalize(int). They are on 8.1.1-6 . Any thoughts? They are using dbadmin. Does this function exist on 8.1.1-6?
thanks.
0
Comments
The "Export to Parquet" feature was introduced in Vertica 8.1.1.
See:
https://my.vertica.com/docs/8.1.x/HTML/index.htm#Authoring/NewFeatures/8.1/8.1.1/Hadoop.htm
You can check if the Parquet Export package is installed like this:
If you need to re-install it, you can first uninstall it:
Then install it:
The parquetexport package is installed. And they are still getting the error.Is this a priviliges issue? If so, what privilege does the user need to execute this? They are able to load parquet data (copy) into vertica just fine.
Hi,
I have a feeling it's not really installed, or the wrong version is installed.
For example, say I uninstall it:
I'll get the same error:
Until I reinstall:
I wonder if a previous database upgrade failed?
Check the USER_LIBRARIES system table to make sure everything looks good.
Example:
GRANT ALL ON LIBRARY public.ParquetExportLib to user;
GRANT ALL ON TRANSFORM FUNCTION public.ParquetExport(int) TO user;
GRANT ALL ON TRANSFORM FUNCTION public.ParquetExportMulti(int) TO user;
GRANT ALL ON TRANSFORM FUNCTION public.ParquetExportFinalize(int) TO user;
I have executed the grant statements, but still receive the error:
[Vertica]VJDBC ERROR: Function ParquetExportFinalize(int) does not exist, or permission is denied for ParquetExportFinalize(int)
@victoryhl7 - Can you describe the function?
Example:
If not, try reinstalling the ParquetExport package:
Example:
Make sure you see the privileges in the GRANTS system table:
I could export to parquet using dbadmin, but not another user. I still face the same error after reinstalling the ParquetExport package.
Looks like you are missing the grants for PUBLIC (your result set from GRANTS does not show "public" as a grantee).
This is what see:
Run these commands as DBADMIN:
Then try re-running the query against the GRANTS table. Do you see "public" as a grantee?
I have executed the following:
`GRANT EXECUTE ON TRANSFORM FUNCTION public.ParquetExportFinalize() TO PUBLIC;
GRANT EXECUTE ON TRANSFORM FUNCTION public.ParquetExportMulti() TO PUBLIC;
GRANT EXECUTE ON TRANSFORM FUNCTION public.ParquetExport() TO PUBLIC;`
I am able to see "public" as grantee, but I am still getting the same error.
I manage to export to parquet now. If I run the export script in "public" schema, then it works. My user has a default search_path that points to another schema.
@victoryhl7 -
Nice!
Here's a tip that you might find useful:
https://forum.vertica.com/discussion/239667/when-modifying-a-search-path-don-t-forget-to-include-public
Thanks for the tips. After adding "public" to the user's search_path, the export command can be run in other schema as well.
AWESOME!
This was a very helpful thread to me nearly two years later. Thank you team!