В настоящее время у меня есть функция, которая читает файл SQL для выполнения запроса в Google BigQuery.
import pandas as pd
def func1(arg1,arg2):
with open('query.sql', 'r') as sqlfile:
sql_query= sqlfile.read()
df = pd.read_gbq(sql_query.format(arg1=arg1,arg2=arg2)
query.sql
SELECT *
FROM bigquery.dataset
WHERE col1= {arg1}
AND col2 = {arg2}
Расположение набора данных жестко закодировано в самом файле SQL и, как таковое, усложняет его.внести изменения, если бы я изменил расположение набора данных (то есть, мне нужно было бы по отдельности перейти к каждому файлу SQL и вручную изменить предложение «От». Поскольку у меня много файлов SQL, становится неудобно вручную редактировать каждый отдельный файл SQL изпредложение)
Итак, мои вопросы: каков наилучший способ сделать динамическое расположение набора данных?В идеале местоположение набора данных должно быть переменной, но вопрос в том, где разместить переменную.Если это переменная, лучше ли передавать ее как аргумент функции?IE func1 будет иметь еще один аргумент, называемый dataset_loc
import pandas as pd
def func1(arg1,arg2,dataset_loc):
with open('query.sql', 'r') as sqlfile:
sql_query= sqlfile.read()
df = pd.read_gbq(sql_query.format(arg1=arg1,arg2=arg2,dataset_loc=dataset_loc)
query.sql
SELECT *
FROM {dataset_loc}
WHERE col1 = {arg1}
AND col2 = {arg2}
Хотелось бы узнать, каков наилучший способ сделать это.Спасибо