Python que obtem detalhes dos cliques no Short.io e insere no BigQuery
flowchart
subgraph log
input_log(mensagem: string)
end
subgraph ultima_data ["obter_ultima_data_bigquery"]
out_ulitma_data(return: str)
end
subgraph browsers_bq ["obter_browsers_bigquery"]
out_browsers_bq(return: list)
end
limite_lote("limite_lote")
list_dominio("id_dominio: list [:2]")
ultima_data --> ult_data_bigquery
ult_data_bigquery --> data_vazia{ult_data_bigquery está vazia?}
data_vazia-->|Sim|data_vazia_sim[data_inicio == D-365]
data_vazia-->|Não|data_vazia_nao[data_inicio == ult_data_bigquery]
data_vazia_sim-->fim_intervalo[fim_intervalo == D-1]
data_vazia_nao-->fim_intervalo
fim_intervalo-->data_atual[data_atual == data_inicio]
data_atual-->loop_data
subgraph loop_data["loop data_atual"]
list_dominio -->loop_dominio
subgraph loop_dominio["loop id_dominio"]
subgraph obter1 ["obter_clicks_data_dominio"]
in_obter1(id_dominio: str
data: str
limite_lote: int)
out_obter1(return: dict)
end
subgraph inserir_bq ["inserir_dados_bigquery"]
int_inserir_bq(df: DataFrame)
end
df_click(df_click)
obter1 --> df_click
df_click-->check_click{"len(df_click)==0"}
check_click-->|Sim|check_click_sim[Sem cliques localizados]
check_click_sim-->incrementar_data
check_click-->|Não|check_limit_click{"len(df_click)==limite_lote"}
limite_lote-->check_limit_click
check_limit_click-->|Não|check_limit_click2{"len(df_click)<=limite_lote"}
limite_lote-->check_limit_click2
check_limit_click2-->|Sim|insere_registros
insere_registros-->inserir_bq
check_limit_click-->|Sim|loop_browsers
browsers_bq-->loop_browsers
subgraph loop_browsers
subgraph obter2["obter_clicks_data_dominio_browser"]
in_obter2(id_dominio: ste
browser: strg
data: str
limite_lote: int)
out_obter2(return: dict)
end
df_click2(df_click)
obter2 --> df_click2
df_click2-->check_click2{"len(df_click)==0"}
check_click2-->|Sim|check_click2sim[Sem cliques localizados]
check_click2sim-->incrementar_data
check_click2-->|Não|check_click3{"len(df_click)>0"}
check_click3-->|Sim|insere_registros2("insere registros")
insere_registros2-->inserir_bq
inserir_bq-->incrementar_data("data_atual = data_atual+1")
incrementar_data-->reinicia_loop("reinicia o 'loop data_atual'")
end
end
end