antony_henao
08/27/2019, 2:31 PMyannis_roussos
08/27/2019, 4:42 PMtap-postgres to a Meltano postgres:
https://www.meltano.com/docs/tutorial.html#advanced-using-tap-postgres-with-meltanoyannis_roussos
08/27/2019, 4:43 PMyannis_roussos
08/27/2019, 4:45 PMantony_henao
08/27/2019, 7:28 PMantony_henao
08/30/2019, 1:38 PMyannis_roussos
08/30/2019, 1:38 PMantony_henao
08/30/2019, 1:39 PMantony_henao
08/30/2019, 1:39 PMexport TAP_PG_DATABASE=my_source_db
export TAP_PG_ADDRESS=localhost
export TAP_PG_PORT=5432
export TAP_PG_USERNAME=source_username
export TAP_PG_PASSWORD=source_passwordantony_henao
08/30/2019, 1:40 PMantony_henao
08/30/2019, 1:40 PMantony_henao
08/30/2019, 1:41 PMantony_henao
08/30/2019, 1:41 PMTAP_MS_DATABASE=""
TAP_MS_ADDRESS=""
TAP_MS_PASSWORD=""
TAP_MS_PORT=33306
TAP_MS_USERNAME=""antony_henao
08/30/2019, 1:42 PMantony_henao
08/30/2019, 1:42 PMERROR Giving up connect_with_backoff(...) after 5 tries (pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)"))antony_henao
08/30/2019, 1:43 PMyannis_roussos
08/30/2019, 1:49 PMtap-postgresyannis_roussos
08/30/2019, 1:49 PMtap-postgres to workyannis_roussos
08/30/2019, 1:49 PMyannis_roussos
08/30/2019, 1:50 PMantony_henao
08/30/2019, 1:53 PMantony_henao
08/30/2019, 1:53 PMFLASK_ENV=development
SQLITE_DATABASE=meltano
PG_PASSWORD=warehouse
PG_USERNAME=warehouse
PG_ADDRESS=localhost
PG_SCHEMA=meltano
PG_PORT=5502
PG_DATABASE=warehouse
TAP_MS_DATABASE=""
TAP_MS_ADDRESS=""
TAP_MS_PASSWORD=""
TAP_MS_PORT=33306
TAP_MS_USERNAME=""yannis_roussos
08/30/2019, 1:54 PMyannis_roussos
08/30/2019, 1:55 PMyannis_roussos
08/30/2019, 1:56 PMtap-postgresyannis_roussos
08/30/2019, 1:56 PM.envyannis_roussos
08/30/2019, 1:56 PMantony_henao
08/30/2019, 1:57 PMantony_henao
08/30/2019, 1:58 PMantony_henao
08/30/2019, 1:59 PMyannis_roussos
08/30/2019, 1:59 PMantony_henao
08/30/2019, 1:59 PMantony_henao
08/30/2019, 2:00 PMantony_henao
08/30/2019, 2:02 PMantony_henao
08/30/2019, 2:02 PMERROR Giving up connect_with_backoff(...) after 5 tries (pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)"))yannis_roussos
08/30/2019, 2:03 PMyannis_roussos
08/30/2019, 2:03 PMantony_henao
08/30/2019, 2:04 PMyannis_roussos
08/30/2019, 2:05 PMantony_henao
08/30/2019, 2:06 PMyannis_roussos
08/30/2019, 2:07 PMantony_henao
08/30/2019, 2:08 PMantony_henao
08/30/2019, 2:12 PMantony_henao
08/30/2019, 2:13 PMyannis_roussos
08/30/2019, 2:13 PMconfig.yml you are using to make it work? (replace user and password with *)antony_henao
08/30/2019, 2:15 PMantony_henao
08/30/2019, 2:15 PMyannis_roussos
08/30/2019, 2:15 PMantony_henao
08/30/2019, 2:16 PMantony_henao
08/30/2019, 2:17 PMantony_henao
08/30/2019, 2:17 PMextractors:
- config:
default_replication_method: FULL_TABLE
include_schemas_in_destination_stream_name: true
executable: tap-mysql
name: tap-mysql
namespace: tap-mysql
pip_url: tap-mysql
settings:
- env: TAP_MS_DATABASE
name: dbname
- env: TAP_MS_ADDRESS
name: host
- env: TAP_MS_PASSWORD
name: password
- env: TAP_MS_PORT
name: port
- env: TAP_MS_USERNAME
name: userantony_henao
08/30/2019, 2:17 PMantony_henao
08/30/2019, 2:17 PMyannis_roussos
08/30/2019, 2:17 PMantony_henao
08/30/2019, 2:18 PM{
"host": "***",
"port": "33306",
"user": "***",
"password": "***"
}antony_henao
08/30/2019, 2:19 PMyannis_roussos
08/30/2019, 2:19 PMyannis_roussos
08/30/2019, 2:25 PMmeltano add --custom extractor tap-mysql
(namespace): tap-mysql
(pip_url): tap-mysql
(executable) [tap-postgres]: tap-mysql
STEP 2: update meltano.yml
...
extractors:
- executable: tap-mysql
name: tap-mysql
namespace: tap-mysql
pip_url: tap-mysql
settings:
- name: host
env: TAP_MS_HOST
- name: password
env: TAP_MS_PASSWORD
- name: port
env: TAP_MS_PORT
- name: user
env: TAP_MS_USERNAME
....
You do not need the rest I have in the tutorial for Postgres, only what is required by tap-mysql to work
STEP 3: update your .env
...
export TAP_MS_HOST=*****
export TAP_MS_PORT=33306
export TAP_MS_USERNAME=*****
export TAP_MS_PASSWORD=*****
...
STEP 4: load the .env and test
source .env
meltano config tap-mysql
meltano invoke tap-mysqlyannis_roussos
08/30/2019, 2:26 PMyannis_roussos
08/30/2019, 2:26 PMyannis_roussos
08/30/2019, 2:26 PMmeltano elt tap-mysql target-postgresyannis_roussos
08/30/2019, 2:29 PMantony_henao
08/30/2019, 2:35 PMantony_henao
08/30/2019, 2:36 PMantony_henao
08/30/2019, 2:36 PMException: only INCREMENTAL, LOG_BASED, and FULL TABLE replication methods are supportedyannis_roussos
08/30/2019, 2:38 PMtap-mysql error?antony_henao
08/30/2019, 2:38 PMantony_henao
08/30/2019, 2:38 PMextractors:
- executable: tap-mysql
name: tap-mysql
namespace: tap-mysql
pip_url: tap-mysql
settings:
- name: host
env: TAP_MS_HOST
- name: password
env: TAP_MS_PASSWORD
- name: port
env: TAP_MS_PORT
- name: user
env: TAP_MS_USERNAME
config:
default_replication_method: FULL_TABLE
include_schemas_in_destination_stream_name: trueantony_henao
08/30/2019, 2:39 PMyannis_roussos
08/30/2019, 2:39 PMtap-mysqlyannis_roussos
08/30/2019, 2:39 PMyannis_roussos
08/30/2019, 2:41 PMtap-mysql endantony_henao
08/30/2019, 2:41 PMantony_henao
08/30/2019, 2:41 PMyannis_roussos
08/30/2019, 2:42 PMyannis_roussos
08/30/2019, 2:42 PMyannis_roussos
08/30/2019, 2:42 PMyannis_roussos
08/30/2019, 2:42 PMmeltano invoke tap-mysql --discover > .meltano/run/tap-mysql/tap.properties.jsonyannis_roussos
08/30/2019, 2:43 PMyannis_roussos
08/30/2019, 2:44 PM"replication-method" do they generate those entries?antony_henao
08/30/2019, 2:44 PMantony_henao
08/30/2019, 2:45 PMantony_henao
08/30/2019, 2:45 PMTraceback (most recent call last):
File "/home/aj/Servex/meltano/meltano-dev/.meltano/extractors/tap-mysql/venv/bin/tap-mysql", line 10, in <module>
sys.exit(main())
File "/home/aj/Servex/meltano/meltano-dev/.meltano/extractors/tap-mysql/venv/lib/python3.7/site-packages/singer/utils.py", line 225, in wrapped
return fnc(*args, **kwargs)
File "/home/aj/Servex/meltano/meltano-dev/.meltano/extractors/tap-mysql/venv/lib/python3.7/site-packages/tap_mysql/__init__.py", line 713, in main
args = utils.parse_args(REQUIRED_CONFIG_KEYS)
File "/home/aj/Servex/meltano/meltano-dev/.meltano/extractors/tap-mysql/venv/lib/python3.7/site-packages/singer/utils.py", line 176, in parse_args
args.catalog = Catalog.load(args.catalog)
File "/home/aj/Servex/meltano/meltano-dev/.meltano/extractors/tap-mysql/venv/lib/python3.7/site-packages/singer/catalog.py", line 82, in load
return Catalog.from_dict(json.load(fp))
File "/home/aj/anaconda3/lib/python3.7/json/__init__.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/home/aj/anaconda3/lib/python3.7/json/__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "/home/aj/anaconda3/lib/python3.7/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/home/aj/anaconda3/lib/python3.7/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)yannis_roussos
08/30/2019, 2:51 PMyannis_roussos
08/30/2019, 2:52 PMmeltano invoke tap-mysql --discover ?antony_henao
08/30/2019, 2:53 PMyannis_roussos
08/30/2019, 2:53 PMtap-mysql --discover wherever you were running the tap by itself?antony_henao
08/30/2019, 2:54 PMyannis_roussos
08/30/2019, 2:54 PMyannis_roussos
08/30/2019, 2:54 PMantony_henao
08/30/2019, 2:55 PMyannis_roussos
08/30/2019, 2:56 PMyannis_roussos
08/30/2019, 2:56 PMtap-mysql do not generate those entries by default (let's say with a default value of FULL_TABLE)yannis_roussos
08/30/2019, 2:57 PMyannis_roussos
08/30/2019, 2:58 PMyannis_roussos
08/30/2019, 2:58 PMmeltano selectyannis_roussos
08/30/2019, 3:00 PMreplication-method and replication-key)antony_henao
08/30/2019, 3:01 PMyannis_roussos
08/30/2019, 3:01 PMyannis_roussos
08/30/2019, 3:02 PMyannis_roussos
08/30/2019, 3:04 PMantony_henao
08/30/2019, 3:04 PMantony_henao
08/30/2019, 3:04 PMantony_henao
08/30/2019, 3:05 PMyannis_roussos
08/30/2019, 3:06 PMantony_henao
08/30/2019, 3:07 PMantony_henao
08/30/2019, 3:07 PMyannis_roussos
08/30/2019, 3:08 PM