ప్రోహోస్టర్ > బ్లాగ్ > ఇంటర్నెట్ వార్తలు > సాధారణ నివేదికలను రోబోట్కి ఎలా అప్పగించాలి. మేము Python మరియు Google BigQueryలో ఒక బాట్ని వ్రాస్తాము
సాధారణ నివేదికలను రోబోట్కి ఎలా అప్పగించాలి. మేము Python మరియు Google BigQueryలో ఒక బాట్ని వ్రాస్తాము
రోజు తర్వాత, వారం వారం పునరావృతమయ్యే పనులు మీకు ఉన్నాయా? ఉదాహరణకు, నివేదికలు రాయడం. మీరు డేటాను అభ్యర్థించండి, దానిని విశ్లేషించండి, దానిని దృశ్యమానం చేయండి (గ్రాఫ్లు, చార్ట్లను రూపొందించండి), ఆపై దానిని మీ యజమానికి పంపండి. అయితే ఇదంతా ఆటోమేటెడ్ అయితే?
ఈ ట్యుటోరియల్లో మేము టెలిగ్రామ్ కోసం ఒక బాట్ను సృష్టిస్తాము, అది రిపోర్టింగ్ని ఆటోమేట్ చేయడంలో సహాయపడుతుంది. మరియు చక్కని విషయం ఏమిటంటే, ప్రోగ్రామ్ మొత్తం 50 లైన్ల కోడ్ను మాత్రమే కలిగి ఉంటుంది! మీరు మొదటిసారిగా టెలిగ్రామ్ కోసం బాట్ను సృష్టిస్తున్నట్లయితే, మీరు దీన్ని కూడా చదవాలి పోస్ట్.
మేము సేవను ఉపయోగించాలనుకుంటే, మేము Google BigQuery APIని కనెక్ట్ చేయాలి. దీన్ని చేయడానికి మేము వెళ్తాము Google డెవలపర్స్ కన్సోల్ మరియు కొత్త ప్రాజెక్ట్ను సృష్టించండి (లేదా ఇప్పటికే ఉన్నదాన్ని ఎంచుకోండి).
నియంత్రణ ప్యానెల్లో, APIS మరియు సేవలను ప్రారంభించు ఎంచుకోండి మరియు BigQuery API కోసం చూడండి.
APIని కనెక్ట్ చేయడానికి ప్రారంభించు ఎంచుకోండి.
ఖాతా కీని సృష్టించండి
మళ్ళీ వెళ్దాం Google డెవలపర్స్ కన్సోల్, క్రెడెన్షియల్స్ ట్యాబ్ను ఎంచుకోండి, ఆధారాలను సృష్టించండి మరియు సేవా ఖాతా కీని సృష్టించండి.
అప్పుడు - కొత్త సేవా ఖాతా, మరియు సేవా ఖాతా పేరు ఫీల్డ్లో పేరును నమోదు చేయండి.
పాత్ర డ్రాప్-డౌన్ జాబితా నుండి, ప్రాజెక్ట్ > యజమానిని ఎంచుకుని, ఆపై సృష్టించండి.
స్వయంచాలకంగా డౌన్లోడ్ చేయబడే ఫైల్ని creds.json అంటారు.
టెర్మినల్లో creds.jsonకి మార్గాన్ని పేర్కొంటూ GOOGLE_APPLICATION_CREDENTIALSని సెట్ చేయండి.
ఎగుమతి GOOGLE_APPLICATION_CREDENTIALS='[PATH_TO_CREDS.JSON]'
ప్రతిదీ సరిగ్గా జరిగితే, ప్రోగ్రామ్ రాయడం ప్రారంభించడానికి ఇది సమయం.
అప్లికేషన్ను సృష్టిస్తోంది
ట్యుటోరియల్ కోసం మేము bigquery-public-data.stackoverflow నుండి డేటాను ఉపయోగిస్తాము, మా నివేదిక కోసం మేము రోజువారీ ప్రచురణల సంఖ్యను ఎంచుకుంటాము.
మనకు ఐదు పారామితులు అవసరం, ఇక్కడ x అనేది x-యాక్సిస్ డేటా, x_label అనేది అక్షానికి శీర్షిక, y అనేది y-యాక్సిస్ డేటా, y_label అనేది అక్షానికి శీర్షిక మరియు టైటిల్ అనేది మొత్తం విజువలైజేషన్ యొక్క శీర్షిక.
def visualize_bar_chart(x, x_label, y, y_label, title):
plt.title(title)
plt.xlabel(x_label)
plt.ylabel(y_label)
index = np.arange(len(x))
plt.xticks(index, x, fontsize=5, rotation=30)
plt.bar(index, y)
return plt
చిత్రాన్ని సేవ్ చేయండి
ఇప్పుడు విజువలైజేషన్ని సృష్టించడానికి మరియు దానిని సేవ్ చేయడానికి రెండు ఫంక్షన్లను ఉపయోగించుకుందాం.
మేము ప్రతిరోజూ ప్రచురించే పోస్ట్ల సంఖ్యను పంపుతాము. మొదట మేము ఒక అభ్యర్థనను వ్రాస్తాము.
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
ఈ ప్రశ్న డిసెంబర్ 2, 2018 నుండి రెండు వారాల పాటు డేటాను సేకరించడంలో సహాయపడుతుంది.
మేము ఈ తేదీని ఉపయోగిస్తాము ఎందుకంటే 2018-12-02 అనేది bigquery-public-data.stackoverflow.post_historyలో రికార్డ్ చేయబడిన తాజా డేటా, ఇతర సందర్భాల్లో మీరు సరికొత్త డేటాను పొందడానికి CURRENT_DATE()ని ఉపయోగించవచ్చు.
డేటాను పొందడానికి query_to_bigquery ఫంక్షన్కు కాల్ చేయండి.
డేటాఫ్రేమ్ = query_to_bigquery(query)
తర్వాత మేము x-axis కోసం తేదీ డేటా కాలమ్ని మరియు y-axis కోసం total_posts నిలువు వరుసను ఉపయోగిస్తాము.
x = డేటాఫ్రేమ్['తేదీ'].tolist()
y = డేటాఫ్రేమ్['total_posts'].tolist()
మేము Visualize_bar_chart ఫంక్షన్ని ఉపయోగించి దాన్ని దృశ్యమానం చేస్తాము మరియు దానిని చిత్రంగా సేవ్ చేస్తాము.
మేము ఈ కోడ్ని get_and_save_image అనే ఫంక్షన్లో ర్యాప్ చేస్తాము.
def get_and_save_image():
query = """
SELECT DATE(creation_date) date, COUNT(*) total_posts
FROM `bigquery-public-data.stackoverflow.post_history`
GROUP BY 1
HAVING date > DATE_SUB('2018-12-02', INTERVAL 14 DAY)
ORDER BY 1
"""
dataframe = query_to_bigquery(query)
x = dataframe['date'].tolist()
y = dataframe['total_posts'].tolist()
plt = visualize_bar_chart(x=x, x_label='Date', y=y, y_label='Total Posts', title='Daily Posts')
plt.savefig('viz.png')
ఒక చిత్రాన్ని పంపండి
గ్రహీతకు నివేదికను పంపడానికి, మీరు chat_id పరామితిని తెలుసుకోవాలి.
మేము ఉపయోగిస్తాము userinfobot మరియు టైప్ / స్టార్ట్ చేయండి. బోట్ అవసరమైన సమాచారంతో ప్రతిస్పందిస్తుంది, chat_id ఐడి ఫీల్డ్లో ఉంటుంది.
ఇప్పుడు send_image ఫంక్షన్ని క్రియేట్ చేద్దాం. ఇది ఇమేజ్ని తిరిగి పొందడానికి మరియు సేవ్ చేయడానికి get_and_save_image ఫంక్షన్ని ఉపయోగిస్తుంది. ఆపై మేము ప్రతిదీ సరైన పరిచయానికి పంపుతాము.
చివరగా, అప్లికేషన్ను ప్రారంభించడానికి మేము మరొక ఫంక్షన్ను, మెయిన్గా సృష్టిస్తాము. బాట్ కోసం YOUR_TOKENని మార్చడం మర్చిపోవద్దు.
గుర్తుంచుకోండి: మీరు పేర్కొన్న సమయంలో ఈ ప్రోగ్రామ్ స్వయంచాలకంగా చిత్రాన్ని పంపుతుంది. ఉదాహరణకు, మేము ప్రతిరోజూ ఉదయం తొమ్మిది గంటలకు ఒక నివేదికను పంపుతాము.