API ద్వారా యాంప్లిట్యూడ్ డేటాను తిరిగి పొందుతోంది

పరిచయం

సులభంగా ఈవెంట్ సెటప్ మరియు విజువలైజేషన్ ఫ్లెక్సిబిలిటీ కారణంగా యాంప్లిట్యూడ్ ఒక ఉత్పత్తి విశ్లేషణ సాధనంగా బాగా నిరూపించబడింది. మరియు తరచుగా మీ స్వంత అట్రిబ్యూషన్ మోడల్, క్లస్టర్ వినియోగదారులను సెటప్ చేయడం లేదా మరొక BI సిస్టమ్‌లో డాష్‌బోర్డ్‌ను రూపొందించడం అవసరం. యాంప్లిట్యూడ్ నుండి రా ఈవెంట్ డేటాతో మాత్రమే ఇటువంటి మోసం చేయడం సాధ్యమవుతుంది. కనీస ప్రోగ్రామింగ్ పరిజ్ఞానంతో ఈ డేటాను ఎలా పొందాలో ఈ వ్యాసం మీకు తెలియజేస్తుంది.

ముందస్తు అవసరాలు

  1. ఈవెంట్‌లు ఇప్పటికే సరిగ్గా కాన్ఫిగర్ చేయబడిన మరియు వాటిపై గణాంకాలు సేకరించబడిన వ్యాప్తిలో ప్రాజెక్ట్
  2. పైథాన్ ఇన్‌స్టాల్ చేయబడింది (నేను వెర్షన్ 3.8.3లో పని చేస్తున్నాను), దీనితో సంభావ్య రీడర్ ఇప్పటికే కనీసం ప్రాథమిక స్థాయిలో పని చేయగలడు.

సూచనల

దశ 1. API-కీ మరియు రహస్య కీని పొందడం

డేటాను అప్‌లోడ్ చేయడానికి, మీరు ముందుగా API కీ మరియు రహస్య కీని పొందాలి.

కింది మార్గాన్ని అనుసరించడం ద్వారా మీరు వాటిని కనుగొనవచ్చు:

  1. “డేటాను నిర్వహించండి” (స్క్రీన్ దిగువ ఎడమవైపున ఉంది)
  2. డేటా డౌన్‌లోడ్ చేయబడే కావలసిన ప్రాజెక్ట్‌ను ఎంచుకుని, దానికి వెళ్లండి
  3. తెరుచుకునే ప్రాజెక్ట్ మెనులో, "ప్రాజెక్ట్ సెట్టింగ్‌లు" ఎంచుకోండి
  4. మేము API-కీ మరియు రహస్య-కీ స్ట్రింగ్‌లను కనుగొని, వాటిని సురక్షితమైన స్థలంలో కాపీ చేసి సేవ్ చేస్తాము.

క్లిక్ చేయకుండా, మీరు లింక్‌ను అనుసరించవచ్చు, ఇది సాధారణంగా ఇలా కనిపిస్తుంది:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
ఇక్కడ $$$$$$ అనేది మీ సంస్థ యొక్క యాంప్లిట్యూడ్ లాగిన్, ****** అనేది ప్రాజెక్ట్ నంబర్

దశ 2: అవసరమైన లైబ్రరీల ఉనికిని తనిఖీ చేయడం

శుభవార్త ఏమిటంటే, మీరు దాదాపుగా ఈ లైబ్రరీలను డిఫాల్ట్‌గా ఇన్‌స్టాల్ చేసారు లేదా డౌన్‌లోడ్ చేసారు, అయితే మీరు తనిఖీ చేయాలి. నేను వ్రాసే సమయంలో ఉపయోగించిన లైబ్రరీల పూర్తి జాబితా (కుండలీకరణాల్లోని సంస్కరణలు తగిన చోట సూచించబడతాయి):

  1. అభ్యర్థనలు (2.10.0) - డేటాను స్వీకరించడానికి api ద్వారా అభ్యర్థనను పంపడం
  2. pandas (1.0.1) - jsonని చదవడం, డేటాఫ్రేమ్‌ని సృష్టించడం మరియు ఫైల్‌కి వ్రాయడం
  3. zipfile - API ద్వారా స్వీకరించబడిన ఆర్కైవ్ నుండి ఫైళ్లను సంగ్రహించండి
  4. gzip - .gz నుండి json ఫైల్‌లను అన్‌ప్యాక్ చేయడం
  5. os - ప్యాక్ చేయని ఆర్కైవ్ నుండి ఫైల్‌ల జాబితాను పొందడం
  6. సమయం - ఐచ్ఛికం, స్క్రిప్ట్ నడుస్తున్న సమయాన్ని కొలవండి
  7. tqdm - ఐచ్ఛికం, ఫైల్ ప్రాసెసింగ్ పురోగతిని సులభంగా పర్యవేక్షించడం కోసం

దశ 3. డేటా లోడింగ్ స్క్రిప్ట్ రాయడం

సూచన: పూర్తి డౌన్‌లోడ్ స్క్రిప్ట్ కథనం చివరిలో ఉంది; మీరు కోరుకుంటే, మీరు వెంటనే దాన్ని తీసుకోవచ్చు మరియు అవసరమైతే దశల వారీ వివరణలను చూడవచ్చు.

దశ 3.1. లైబ్రరీలను దిగుమతి చేస్తోంది

మేము రెండవ దశలో జాబితా చేయబడిన అన్ని లైబ్రరీలను దిగుమతి చేస్తాము.

# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm

దశ 3.2. వ్యాప్తికి అభ్యర్థనను సమర్పించడం

స్క్రిప్ట్ అమలు యొక్క ప్రారంభాన్ని గుర్తించి దానిని వేరియబుల్ aకి వ్రాస్దాం.

డేటాను డౌన్‌లోడ్ చేయడానికి ప్రారంభ తేదీ మరియు ముగింపు తేదీలు బాధ్యత వహిస్తాయి మరియు యాంప్లిట్యూడ్ సర్వర్‌కు పంపిన అభ్యర్థన యొక్క టెక్స్ట్‌లో నిర్మించబడ్డాయి; తేదీతో పాటు, మీరు అభ్యర్థనలో 'T' తర్వాత విలువను మార్చడం ద్వారా గంటను కూడా పేర్కొనవచ్చు.

api_key మరియు secret_key మొదటి దశలో పొందిన విలువలకు అనుగుణంగా ఉంటాయి; భద్రతా కారణాల దృష్ట్యా, నేను ఇక్కడ నా స్వంతానికి బదులుగా యాదృచ్ఛిక సన్నివేశాలను పేర్కొంటాను.

a = time.time()
# Параметры начальной и конечной даты
startdate = '20200627'
enddate = '20200628'

api_key = 'kldfg844203rkwekfjs9234'
secret_key = '094tfjdsfmw93mxwfek'
# Отправление запроса в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. Запрос отправлен')

దశ 3.3. డేటాతో ఆర్కైవ్‌ను డౌన్‌లోడ్ చేస్తోంది

మేము ఆర్కైవ్ కోసం ఒక పేరుతో వచ్చి దానిని ఫైల్ పేరు వేరియబుల్కు వ్రాస్తాము. నా సౌలభ్యం కోసం, నేను వ్యవధిని సూచిస్తాను + ఇది యాంప్లిట్యూడ్ డేటా అని సూచిస్తున్నాను. తరువాత, మేము యాంప్లిట్యూడ్ నుండి స్వీకరించిన ప్రతిస్పందనను ఆర్కైవ్‌లో రికార్డ్ చేస్తాము.

# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
    code.write(response.content)
print('2. Архив с файлами успешно скачан')  

దశ 3.4. మీ కంప్యూటర్‌లోని ఫోల్డర్ నుండి ఫైల్‌లను తిరిగి పొందడం

ఫైల్‌లను సంగ్రహించడంలో సహాయపడటానికి జిప్‌ఫైల్ లైబ్రరీ అమలులోకి వస్తుంది. మూడవ పంక్తిలో, జాగ్రత్తగా ఉండండి మరియు మీరు సంగ్రహించడానికి మరింత సౌకర్యవంతంగా ఉన్న మీ మార్గాన్ని వ్రాయండి.

# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)

దశ 3.5. json మార్పిడి

ఆర్కైవ్ నుండి ఫైల్‌లను సంగ్రహించిన తర్వాత, మీరు json ఫైల్‌లను .gz ఆకృతిలో మార్చాలి మరియు తదుపరి పని కోసం వాటిని డేటాఫ్రేమ్‌లో వ్రాయాలి.

దయచేసి ఇక్కడ మీరు మార్గాన్ని మళ్లీ మీ స్వంతంగా మార్చుకోవాలని మరియు 000000కి బదులుగా మీ ప్రాజెక్ట్ నంబర్‌ను యాంప్లిట్యూడ్ నుండి వ్రాయాలని దయచేసి గమనించండి (లేదా ఆర్కైవ్ సంగ్రహించబడిన మార్గాన్ని మాన్యువల్‌గా తెరిచి లోపల ఉన్న ఫోల్డర్ పేరును చూడండి).

క్రమంలో:

ఒక వేరియబుల్‌కు డైరెక్టరీని వ్రాయడం, డైరెక్టరీ నుండి ఫైల్‌ల జాబితాను పొందడం, ఖాళీ డేటాఫ్రేమ్‌ని సృష్టించడం, tqdm సరిగ్గా పని చేయడానికి time.sleep(1)ని సృష్టించడం, లూప్ లోపల మనం .gz ఫైల్‌లను తెరిచి వెంటనే jsonని చదవడానికి మరియు పూరించడానికి పాండాలను ఉపయోగిస్తాము. ఇచ్చిన డేటాఫ్రేమ్.

# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'
# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)    
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')
0000' files = os.listdir(directory) amplitude_dataframe = pd.DataFrame() print('Прогресс обработки файлов:') time.sleep(1) for i in tqdm(files): with gzip.open(directory + '\' + i) as f: add = pd.read_json(f, lines = 'True') amplitude_dataframe = pd.concat([amplitude_dataframe, add]) time.sleep(1) print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')

దశ 3.6. ఎక్సెల్ లో డేటాఫ్రేమ్ రాయడం

ఎక్సెల్‌కి అప్‌లోడ్ చేయడం ఇక్కడ ఒక ఉదాహరణ మాత్రమే. అనేక సందర్భాల్లో, పైథాన్‌లో ఫలిత డేటా ఫ్రేమ్‌తో పని చేయడం లేదా డేటాను నిల్వలో ఉంచడం మరింత సౌకర్యవంతంగా ఉంటుంది.

మీరు ఇక్కడ ఉన్న డేటా అప్‌లోడ్ పాత్‌ను కూడా మీ స్వంత మార్గంతో భర్తీ చేయాలి.

# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)

దశ 3.7. మేము స్క్రిప్ట్ యొక్క నడుస్తున్న సమయాన్ని లెక్కిస్తాము

ప్రస్తుత సమయాన్ని వేరియబుల్ bలో రికార్డ్ చేయడం, తేడా మరియు నిమిషాల సంఖ్యను గణించడం, మొత్తం నిమిషాలను ప్రదర్శిస్తుంది. ఇది చివరి దశ.

b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))

తీర్మానం

మీరు టేబుల్‌కి కాల్ చేయవచ్చు మరియు డేటా వ్రాయబడిన యాంప్లిట్యూడ్_డేటాఫ్రేమ్ వేరియబుల్‌కు కాల్ చేయడం ద్వారా దానితో పని చేయడం ప్రారంభించవచ్చు. ఇది దాదాపు 50 నిలువు వరుసలను కలిగి ఉంటుంది, వీటిలో 80% సందర్భాలలో మీరు ఉపయోగిస్తారు: event_type - ఈవెంట్ పేరు, ఈవెంట్_ప్రాపర్టీస్ - ఈవెంట్ పారామితులు, ఈవెంట్_టైమ్ - ఈవెంట్ సమయం, uuid - క్లయింట్ ఐడి, యూజర్_ప్రాపర్టీస్ - క్లయింట్ పారామితులు, మీరు ముందుగా వాటితో పని చేయడం ప్రారంభించాలి . మరియు మీ స్వంత లెక్కల నుండి గణాంకాలను యాంప్లిట్యూడ్ డాష్‌బోర్డ్‌ల నుండి సూచికలతో పోల్చినప్పుడు, ప్రత్యేకమైన క్లయింట్లు / ఫన్నెల్స్ మొదలైన వాటిని లెక్కించడానికి సిస్టమ్ దాని స్వంత పద్దతిని ఉపయోగిస్తుందని మీరు మర్చిపోకూడదు మరియు దీన్ని చేయడానికి ముందు, మీరు ఖచ్చితంగా యాంప్లిట్యూడ్ డాక్యుమెంటేషన్ చదవాలి.

మీరు ఆసక్తి చూపినందుకు ధన్యవాదములు! ఇప్పుడు మీరు రా ఈవెంట్ డేటాను యాంప్లిట్యూడ్‌కి అప్‌లోడ్ చేయవచ్చు మరియు దానిని మీ పనిలో పూర్తిగా ఉపయోగించవచ్చు.

మొత్తం స్క్రిప్ట్:

# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# Параметры начальной и конечной даты
startdate = '20200627'
enddate = '20200628'

api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# Отправление запроса в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. Запрос отправлен')

# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
    code.write(response.content)
print('2. Архив с файлами успешно скачан')  

# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)

# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'
# Импорт библиотек
import requests
import pandas as pd
import zipfile
import gzip
import os
import time
import tqdm
from tqdm import tqdm
a = time.time()
# Параметры начальной и конечной даты
startdate = '20200627'
enddate = '20200628'
api_key = 'd988fddd7cfc0a8a'
secret_key = 'da05cf1aeb3a361a61'
# Отправление запроса в Amplitude
response = requests.get('https://amplitude.com/api/2/export?start='+startdate+'T0&end='+enddate+'T0', auth = (api_key, secret_key))
print('1. Запрос отправлен')
# Скачивание архива с данными
filename = 'period_since'+startdate+'to'+enddate+'_amplitude_data'
with open(filename + '.zip', "wb") as code:
code.write(response.content)
print('2. Архив с файлами успешно скачан')  
# Извлечение файлов в папку на компьютере
z = zipfile.ZipFile(filename + '.zip', 'r')
z.extractall(path = 'C:\Users\...\'+filename)
print('3. Архив с файлами извлечен и записан в папку ' + filename)
# Преобразование json к обычному табличному формату
directory = 'C:\Users\...\'+filename+'\000000'
files = os.listdir(directory)
amplitude_dataframe = pd.DataFrame()
print('Прогресс обработки файлов:')
time.sleep(1)
for i in tqdm(files):
with gzip.open(directory + '\' + i) as f:
add = pd.read_json(f, lines = 'True')
amplitude_dataframe = pd.concat([amplitude_dataframe, add])
time.sleep(1)    
print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe')
# Записать полученной таблицы в Excel-файл
amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False)
print('5. Dataframe успешно записан в файл ' + filename)
b = time.time()
diff = b-a
minutes = diff//60
print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))
0000' files = os.listdir(directory) amplitude_dataframe = pd.DataFrame() print('Прогресс обработки файлов:') time.sleep(1) for i in tqdm(files): with gzip.open(directory + '\' + i) as f: add = pd.read_json(f, lines = 'True') amplitude_dataframe = pd.concat([amplitude_dataframe, add]) time.sleep(1) print('4. JSON файлы из архива успешно преобразованы и записаны в dataframe') # Записать полученной таблицы в Excel-файл amplitude_dataframe.to_excel('C:\Users\...\'+filename+'.xlsx',index=False) print('5. Dataframe успешно записан в файл ' + filename) b = time.time() diff = b-a minutes = diff//60 print('Выполнение кода заняло: {:.0f} минут(ы)'.format( minutes))

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి