Я надеюсь, что кто-нибудь сможет прояснить связь между TensorFlow и его зависимостями (Beam, AirFlow, Flink и т. д.)
Я ссылаюсь на главную страницу TFX: https://www.tensorflow.org/tfx/guide#creating_a_tfx_pipeline_with_airflow ,так далее.
В примерах я вижу три варианта:
https://github.com/tensorflow/tfx/tree/master/tfx/examples/chicago_taxi_pipelinetaxi_pipeline_flink.py
, taxi_pipeline_kubeflow.py
, taxi_pipeline_simple.py
Нет примера "BEAM" и мало описывается его использование.
Правильно ли предположить, что taxi_pipeline_simple.py
будет работать, даже если не установлен воздушный поток? Я думаю, что нет, поскольку он использует «AirflowDAGRunner». Если нет, то можете ли вы запустить TFX только с BEAM и его бегуном? Если да, то почему нет такого примера?
В taxi_pipeline_flink.py
используется AirflowDAGRunner. Я предполагаю, что он использует AirFlow в качестве оркестратора, который, в свою очередь, использует Flink в качестве исполнителя. Правильный?
На странице указано, что BEAM является обязательной зависимостью, но у воздушного потока нет луча в качестве одного из его исполнителей. У него есть только SequentialExecutor, LocalExecutor, CeleryExecutor, DaskExecutor и KubernetesExecutor. Следовательно, BEAM нужен только тогда, когда не используется Airflow? При использовании воздушного потока, какова цель луча, если он требуется?
Спасибо за любые идеи.
Очень даже :) TensorFlow делает stackoverflow де-факто своим форумом вопросов и ответов. Я думаю, что причина отсутствия ответа в TFX довольно нова, и для многих это излишество.
Вопрос еще актуален? Прямо сейчас я вижу пример tax_pipeline_beam.py, и он НЕ использует воздушный поток (как и ожидалось). Кроме того, относительно луча и воздушного потока: tfx ВСЕГДА использует Beam, в данном случае для манипулирования данными в некоторых компонентах. Затем у вас есть инструменты оркестровки, и Beam также можно использовать в качестве одного из них, как и Airflow.
Помещая комментарий как более полный ответ ниже..
A) Для запуска конвейеров TFX вам нужны оркестраторы. Примерами являются Apache Airflow, Kubeflow Pipelines и Apache Beam.
Б) Apache Beam ТАКЖЕ (а может и в основном) используется для распределенной обработки данных в некоторых компонентах TFX. Таким образом, Apache Beam необходим с любым выбранным вами оркестратором (даже если вы не используете Apache Beam в качестве оркестратора!)
Отвечая на ваши пункты:
1) Пример BEAM. Прямо сейчас есть пример Beam по адресу https://github.com/tensorflow/tfx/blob/master/tfx/examples/chicago_taxi_pipeline/taxi_pipeline_beam.py. Как вы и предполагали, AirflowDAGRunner там нет, так как в этом примере Airflow не используется в качестве оркестратора.
2) Пример воздушного потока — BEAM является обязательной зависимостью по причине, указанной выше: BEAM всегда используется TFX для распределенной обработки данных в некоторых компонентах. Поэтому даже с Airflow (или любым другим) в качестве оркестратора вам нужен BEAM.
3) Пример Flink — на данный момент я нигде не могу найти этот пример (вероятно, из-за изменений в ссылке после того, как вы разместили), но возможно, что Flink будет использоваться в качестве бегуна, а Airflow — в качестве оркестратора. Однако я не смог найти упоминания о Flink в документации Airflow.
Надеюсь, это поможет в некоторой степени.
Разве это не причина, по которой может не быть хорошего примера Flink, потому что Beam является (или может быть) абстракцией над Flink? Поэтому любой пример Beam неявно является примером Flink (если ваш Beam настроен на использование Flink в качестве бегуна). Таким образом, такие проекты, как TF, могут просто «говорить» на Beam, но мы можем настроить его для работы на Flink, поэтому проекту не нужна документация, специфичная для Flink (таким образом подтверждая ценность выбора уровня абстракции... нет больше не нужен пример DataFlow плюс Flink, плюс Spark...)
чувствую, что это конкретный вопрос tfx, вы пробовали их группу пользователей?