We are trying to evaluate Flex table functionality for our game data analytics pipeline. Input JSON data change frequently, e.g. keys get added/modified on a daily basis, and we need to load the data on a daily basis. Because Flex table compute_keys function does not seem to infer data type of keys correctly and it is expensive, we need to infer "metadata" daily ourselves and then follow two possible scenarios:
1) Infer metadata. Not to use Flex table functionality at all, use conventional Vertica table(s) Generate "ALTER TABLE.." statement based on metadata changes, run the statement, load the data.
2) Use Flex table functionality. Infer metadata and generate "UPDATE/INSERT INTO public.some_table_keys TABLE..." statement Load data into Flex table. Run the statement above. Rebuild Flex table view and tell our customers to use the view. This is, probably, faster than altering table in the first scenario. So far so good. But Flex table documentation insists that for fast querying it is necessary to materialize flex table columns.
So, from data load performance point of view, is there any advantage of using the second scenario: updating flex table view and materializing new columns over using the first scenario of altering conventional table? And if there is no advantage, then is there any point in using Flex tables in our use case?
Thanks.
Sign up
Already have an account? Login
Welcome to the Rocket Forum!
Please log in or register:
Employee Login | Registration Member Login | RegistrationEnter your E-mail address. We'll send you an e-mail with instructions to reset your password.