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!