adam_roderick
07/08/2019, 1:57 PMadam_roderick
07/08/2019, 2:22 PMben_hong
07/08/2019, 2:23 PMben_hong
07/08/2019, 2:23 PMadam_roderick
07/08/2019, 3:01 PMadam_roderick
07/08/2019, 4:45 PMmurilo_tavolaro_de_nigris
09/16/2020, 4:03 PMdouwe_maan
09/16/2020, 4:36 PMmeltano.yml is the way to go, but I'll gladly accept a contribution to add the new meltano remove command πmurilo_tavolaro_de_nigris
09/16/2020, 5:03 PMdouwe_maan
09/16/2020, 5:05 PMmani
09/16/2020, 8:25 PMmani
09/16/2020, 8:25 PMCRITICAL (snowflake.connector.errors.ProgrammingError) 251001: Account must be specifieddouwe_maan
09/16/2020, 8:47 PMaccount setting isn't set correctly. Does it show when you run meltano config target-snowflake ?mani
09/16/2020, 8:48 PMdouwe_maan
09/16/2020, 8:53 PMtarget-snowflake plugin definition from meltano.yml ? Feel free to remove any sensitive config, of coursemani
09/16/2020, 8:56 PMversion: 1
send_anonymous_usage_stats: true
project_id: 6ae4b82a-f776-418d-b773-90598b8e3bde
plugins:
extractors:
- name: tap-ga360
namespace: tap_ga360
pip_url: tap-ga360
executable: tap-ga360
capabilities:
- catalog
- discover
- state
config:
start_date: β20200915β
project_id: peupnportal
dataset_id: 228768660
service_account_json: β{..}β
loaders:
- name: target-jsonl
pip_url: target-jsonl
config:
do_timestamp_file: true
- name: target-snowflake
pip_url: git+https://gitlab.com/meltano/target-snowflake.git
config:
account: xxxx.us-east-1.snowflakecomputing.com
database: xxxx
role: LOADER
schema: GA360
username: xxxx
warehouse: xxxxmani
09/16/2020, 8:59 PMmani
09/16/2020, 9:00 PMdouwe_maan
09/16/2020, 9:05 PMaccount shows up in meltano config target-snowflake it should be making its way to the target's config.json file as well.douwe_maan
09/16/2020, 9:05 PMaccount : https://github.com/snowflakedb/snowflake-connector-python/blob/0cf126e0791787d9841bb4849feb781597e8671f/src/snowflake/connector/connection.py#L730-L736douwe_maan
09/16/2020, 9:06 PMaccount setting is making its way to snowflake_connector through this line here: https://gitlab.com/meltano/target-snowflake/-/blob/master/target_snowflake/snowflake_loader.py#L113douwe_maan
09/16/2020, 9:07 PMhttps:// on that account URL; can you try adding that?douwe_maan
09/16/2020, 9:20 PMregion (us-east-1) specified as part of the account , but I'd expect that to result in a connection failure rather than self._account not being set at all in src/snowflake/connector/connection.py:730-736douwe_maan
09/16/2020, 9:24 PMaccount , not the entire hostname?mani
09/17/2020, 3:40 PMdouwe_maan
09/17/2020, 4:01 PMmani
09/17/2020, 4:03 PMmani
09/17/2020, 4:03 PMdouwe_maan
09/17/2020, 4:04 PMmani
09/17/2020, 4:05 PMmani
09/17/2020, 4:06 PMdouwe_maan
09/17/2020, 4:06 PMmani
09/17/2020, 4:08 PMmani
09/18/2020, 4:58 PMmani
09/18/2020, 4:58 PMdouwe_maan
09/18/2020, 5:24 PMmeltano select --list <tap> and look under "Selected attributes", do the listed attributes match the ones that end up in Snowflake?mani
09/18/2020, 5:54 PMmani
09/18/2020, 5:54 PMmani
09/18/2020, 5:54 PMmani
09/18/2020, 5:56 PMmani
09/18/2020, 5:56 PMmani
09/18/2020, 5:56 PMdouwe_maan
09/18/2020, 6:52 PMmeltano --log-level=debug elt , so that we can see each RECORD message the tap outputs? Do those contain the extra fields?douwe_maan
09/18/2020, 6:53 PMmeltano select tap-ga360 --exclude ga_sessions customDimensions , meltano select --list tap-ga360 doesn't list any attributes anymore?
Can you please share your plugin definition with the select configuration, and the full output of meltano select --list tap-ga360 ?douwe_maan
09/18/2020, 7:23 PMdouwe_maan
09/18/2020, 7:51 PM.meltano/run/tap-ga360/tap.properties.json before running meltano select tap-ga360 --list , does the result change?mani
09/18/2020, 8:32 PMmani
09/18/2020, 8:33 PM(.venv) manigovindarajulu@Manis-MBP ga360 % meltano select --list tap-ga360
Legend:
selected
excluded
automatic
Enabled patterns:
!ga_sessions.customDimensions
Selected attributes:
(.venv) manigovindarajulu@Manis-MBP ga360 %mani
09/18/2020, 8:34 PMmani
09/18/2020, 8:35 PMdouwe_maan
09/18/2020, 8:37 PM*.*, to select all entities and attributes) gets overridden by the select list in meltano.yml the moment you add the first rule of your own. And since the only pattern now is !ga_sessions.customDimensions , no entities will be selected at all.
If you want to select certain entities, you should have at least one positive (non-!) rule under select . If you want to select all entities and properties again, except for ga_sessions.customDimensions , add *.* : meltano select tap-ga360 "*" "*"douwe_maan
09/18/2020, 8:37 PMselect:
- "*.*"
- !ga_sessions.customDimensionsmani
09/18/2020, 8:38 PMdouwe_maan
09/18/2020, 8:38 PMmani
09/18/2020, 8:43 PMmani
09/18/2020, 8:43 PMmani
09/18/2020, 8:43 PMmani
09/18/2020, 8:43 PMdouwe_maan
09/18/2020, 8:43 PM!*.* won't work because (per https://meltano.com/docs/command-line-interface.html#exclude-parameter):
Exclusion takes precedence over inclusion. If an attribute is excluded, there is no way to include it back without removing the exclusion pattern first.
douwe_maan
09/18/2020, 8:44 PM!*.* at alldouwe_maan
09/18/2020, 8:44 PMselect:
- ga_sessions.visitorId.*
- ga_sessions.visitStartTime.*
- ga_sessions.userId.*
- ga_sessions.date.*
- ga_sessions.clientId.*
- ga_sessions.fullVisitorId.*
- ga_sessions.visitNumber.*
- ga_sessions.totals.*
- ga_sessions.geoNetwork.*
- ga_sessions.device.*douwe_maan
09/18/2020, 8:44 PMga_sessions.visitorId.* doesn't look quite right, with the extra .* at the enddouwe_maan
09/18/2020, 8:45 PMga_sessions and the attribute visitorId , you just need ga_sessions.visitorId , without the extra .*douwe_maan
09/18/2020, 8:45 PMmeltano select --list --all tap-ga360douwe_maan
09/18/2020, 8:46 PMmani
09/18/2020, 8:47 PMmani
09/18/2020, 8:47 PMmani
09/18/2020, 9:04 PMmani
09/18/2020, 9:04 PMmani
09/18/2020, 9:04 PMdouwe_maan
09/18/2020, 9:07 PMga_session_hits , but your patterns say ga_sessionS_hits πmani
09/18/2020, 9:07 PMdouwe_maan
09/18/2020, 9:08 PMga_sessions.trafficSource attributes (etc) are included despite your exclusion rule because they are set as inclusion: automatic in the discovered catalog, which means that they are always (automatically) selected per https://github.com/singer-io/getting-started/blob/master/docs/DISCOVERY_MODE.md#metadata:
means the field is available for selection, and the tap will only emit values for that field if it is marked withavailable."selected": true
means that the tap will emit values for the field.automatic
douwe_maan
09/18/2020, 9:09 PMinclusion isn't set at all in https://github.com/singer-io/tap-ga360/blob/master/tap_ga360/schemas/ga_sessions.json, and Meltano is assuming that means they're supposed to be automatically included: https://gitlab.com/meltano/meltano/-/blob/master/src/meltano/core/plugin/singer/catalog.py#L282douwe_maan
09/18/2020, 9:11 PMmetadata extra (https://meltano.com/docs/plugins.html#metadata-extra) to explicitly set inclusion to available for all streams and properties, so that selection will work correctly:
select:
- ...
metadata:
"*":
inclusion: available
"*":
inclusion: availablemani
09/18/2020, 9:14 PMmani
09/18/2020, 9:14 PMdouwe_maan
09/18/2020, 9:15 PMmani
10/15/2020, 7:44 PMdouwe_maan
10/15/2020, 8:07 PMmani
10/15/2020, 10:05 PMdouwe_maan
10/15/2020, 10:06 PM