Времето за изчакване на операцията ReadFromDatastore при четене на 200k+ обекта без филтри за неравенство, без данни, които го превръщат в конвейер

Използвам Google Cloud Dataflow за Python SDK, за да чета в 200k+ обекта от хранилище за данни, като използвам функцията ReadFromDatastore() на заявка без никакви филтри.

def make_example_entity_query():
    """
    make an unfiltered query on the `ExampleEntity` entity
    """
    query = query_pb2.Query()
    query.kind.add().name = "ExampleEntity"
    return query

След това върша малко работа в процес на работа с тази заявка

p = beam.Pipeline(options=PipelineOptions.from_dictionary(pipeline_options))
(
        p
        | 'read in the new donations from Datastore'
        >> ReadFromDatastore(project, query, None)
        |'protobuf2entity transformation'
        >> beam.Map(entity_from_protobuf)
        | 'do some work or something'
        >> beam.Map(lambda item: item[0] + item[1])
)
return p.run()

това работи добре локално, използвайки тестови данни от порядъка на няколко хиляди записа, но когато го внедря в облака и го стартирам в нашата производствена база данни с 200k+ елемента, той просто изтече след около час, без да има никакъв напредък. Изглежда, че е изцяло заседнал в прочетената част.

въведете описание на изображението тук

също така показва, че са прочетени нула елементи

въведете описание на изображението тук

и изглежда, че само един работник е бил завъртян

въведете описание на изображението тук

Така че не съм много сигурен какво става тук. Въпросите ми са

  1. има ли някакво разумно ограничение за количеството данни, които могат да бъдат прочетени от хранилището за данни като вход към тръбопровода?
  2. защо привидно изобщо няма данни, които да го направят в тръбопровода? Ако стартирам това локално, мога да видя данните, които преминават, макар и доста бавно.
  3. защо има само един работник, който се върти? Знам, че ако имате филтри за операцията за четене, това кара четенето да се извършва от един възел, но това се прави без филтри за неравенство при четенето от хранилището за данни.

person John Allard    schedule 06.04.2019    source източник
comment
Трудно е да се знае точно причината за блокиране на работата, без да се вгледате внимателно в работата. Можете ли да опитате да се свържете с поддръжката на Google Cloud с вашия идентификатор на работа? cloud.google.com/support   -  person chamikara    schedule 08.04.2019


Отговори (1)


Това се разглежда в Проблем с Github. Така че, моля, обърнете се към това.

person chamikara    schedule 08.04.2019