Hi there,
First of all, I want to thank the developers for introducing auto-migrations for Redshift. This is a really useful feature, but I couldn’t get it to work. The problem is that the RDB Loader does not automatically create tables for new events. Below I describe the steps that have been taken to upgrade.
- First I upgraded to R119: https://github.com/snowplow/snowplow/wiki/Upgrade-Guide#r119
- Updated schema version and added blacklistTabular in Redshift’s target config. This is how it looks now:
{ "schema": "iglu:com.snowplowanalytics.snowplow.storage/redshift_config/jsonschema/4-0-0", "data": { "id": "5fab7395-35cb-413a-95cd-ebf7zoL9bf22", "name": "AWS Redshift enriched events storage", "host": "db-host", "database": "db-base", "port": 5439, "jdbc": { "ssl": false }, "username": "db-user", "password": "db-password", "roleArn": "role", "schema": "atomic", "maxError": 1, "compRows": 20000, "sshTunnel": null, "purpose": "ENRICHED_EVENTS", "processingManifest": null, "blacklistTabular": null } }
- Updated ami_version -> 5.19.0, rdb_loader -> 0.17.0, rdb_shredder -> 0.16.0;
- Installed personal Iglu Server, checked existing schemas using rdbms table-check utility and imported them to the Iglu Server;
- Added server URL to iglu_resolver.json, at the same time updating the schema version of the resolver to 1.0.2:
{ "schema": "iglu:com.snowplowanalytics.iglu/resolver-config/jsonschema/1-0-2", "data": { "cacheSize": 500, "repositories": [ { "name": "Iglu Central", "priority": 1, "vendorPrefixes": [ "com.snowplowanalytics" ], "connection": { "http": { "uri": "http://iglucentral.com" } } }, { "name": "Personal Iglu Repository", "priority": 0, "vendorPrefixes": [ "com.mydomain" ], "connection": { "http": { "uri": "https://iglu.mydomain.com", "apikey": "myApiKey" } } } ] } }
- Started EMR as follows:
./snowplow-emr-etl-runner run -c ./config.yml -r ./iglu_resolver.json -t ./targets
As a result, everything worked without errors, however, a table for a new event (the schema of which was previously added to Iglu Server) was not created automatically. What have I done wrong? Maybe I missed some flags or configs?
Thanks in advance for any help.