Google BigQuery fetchingData оптимизация - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть следующая функция, которая выполняет параметризованные запросы к таблице. В качестве входных данных я получаю список идентификаторов, выполняю запросы, и в результате получаю список строк, где каждая строка содержит идентификатор и соответствующий город.

def query_dataset(data):
    """
        query table in BigQuery - to run a parameterized quiries

        input - list of IDs [1,2,3,4,5]
        output - the fetching result ["1, aaa", "2, bbb" ...]
    """

    query = "SELECT id, city FROM <project.table> WHERE id IN UNNEST(@get_id);"

    query_params = [
        bigquery.ArrayQueryParameter(
          'get_id', 'INT64', data)
    ]

    job_config = bigquery.QueryJobConfig()
    job_config.query_parameters = query_params

    query_job = client.query(query, location='US', 
    job_config=job_config)              #API request-starts query

    results = query_job.result()        # Waits for job to complete.

    messageBody = []
    for row in results:
        res = str(row.id) + "," + row.city
        messageBody.append(res)

    return messageBody

Теперь мне нужно оптимизировать процесс выборки, потому что даже использования параметризованных запросов недостаточно для производительности.

Есть ли способы, как оптимизировать процесс извлечения (функция выше)?

...