Я пытаюсь запустить очень простой пример конвейера с расширенным тензорным потоком и с метаданными ML.
metadata_connection_config=metadata.mysql_metadata_connection_config(
host="10.124.128.3", database="ml_metadata", port=3306, username='root', password='****')
Но конвейер не работает. Конвейер луча проходит в области us-central1
(без параметров сети или подсети). Облако SQL находится в том же регионе. Я также пробовал авторизацию через частный IP. Я получаю эту ошибку:
RuntimeError: Failed to establish connection to Metadata storage with error: mysql_real_connect failed: errno: 2002, error: Can't connect to MySQL server on '10.124.128.3' (36) [while running 'Run[CsvExampleGen]']
И я не знаю, что еще попробовать. Я не могу использовать SSL-сертификаты, это единственное, что поддерживает Cloud SQL:
https://www.tensorflow.org/tfx/api_docs/python/tfx/orchestration/metadata
Конвейер работает со следующим:
DATAFLOW_BEAM_PIPELINE_ARGS = [
'--project=' + 'ml-experiments-z',
'--runner=DataflowRunner',
'--temp_location=' + 'gs://taxi_dataset/tmp',
'--staging_location=' + 'gs://taxi_dataset/staging',
'--region=' + 'us-central1',
'--maxNumWorkers=' + '1',
'--experiments=shuffle_mode=service',
'--job-name=' + 'schemagen',
]
def create_pipeline():
no_eval_config = example_gen_pb2.Input(splits=[
example_gen_pb2.Input.Split(name='train', pattern='taxi_pipeline.csv'),
])
example_gen = CsvExampleGen(input=external_input(
'gs://taxi_dataset/'), input_config=no_eval_config)
statistics_gen = StatisticsGen(examples=example_gen.outputs['examples'])
schema_gen = SchemaGen(statistics=statistics_gen.outputs['statistics'])
return pipeline.Pipeline(
pipeline_name='ml-experiments-taxi-schema-gen',
pipeline_root='gs://taxi_dataset',
components=[example_gen, statistics_gen, schema_gen],
beam_pipeline_args=DATAFLOW_BEAM_PIPELINE_ARGS,
metadata_connection_config=metadata.mysql_metadata_connection_config(
host="10.124.128.3", database="ml_metadata", port=3306, username='root', password='<removed for security>')
)
if __name__ == '__main__':
BeamDagRunner().run(create_pipeline()) # from tfx.orchestration.beam.beam_dag_runner import BeamDagRunner
Компонент метаданных ml является необязательным, и конвейер может успешно работать без него.