Используйте fastavro при чтении из BigQuery с использованием Apache Beam / Dataflow - PullRequest
0 голосов
/ 19 марта 2020

Мой проект работает Python 2,7 (да, я знаю ...) с Apache Beam 2.19 в Google Dataflow. Мы подключаемся к BigQuery тем же способом, который указан в руководстве Apache Beam:

p | 'Get data from BigQuery' >> beam.io.Read(beam.io.BigQuerySource(
    query=get_query(limit),
    use_standard_sql=True)))

Однако шаг чтения этого конвейера невероятно медленный - скорее всего, из-за чтения. Avro-файлы. Похоже, что fastavro на самом деле не используется. AFAIK, вам нужно явно установить флаг use_fastavro при работе на Python <3.7. Это даже возможно с этой настройкой? Или мне нужно будет сначала вручную экспортировать в GCS? </p>

1 Ответ

1 голос
/ 19 марта 2020

Какую версию луча вы используете? В лучевой версии 2.6+ вы можете включить use_fastavro, как показано здесь:

Поток данных Python SDK Avro Source / Syn c

Похоже, что для более поздних версий Балочные SDK Fastavro по умолчанию имеет значение true, если вы используете python 3+, но вы все равно можете вручную включить его https://github.com/apache/beam/blob/4743e131edadad42555e605be803e26cb37b7ce6/sdks/python/apache_beam/io/avroio.py#L81

Я не вижу никаких предупреждений о не настройках это для предыдущие python версии, так что вы можете попробовать и посмотреть, работает ли это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...