Kutora data yeAmplitude kuburikidza neAPI

Nhanganyaya

Amplitude yakazviratidza kwazvo sechigadzirwa analytics chishandiso nekuda kwekumisikidza kwayo kuri nyore chiitiko uye kuona kushanduka. Uye kazhinji pane kudikanwa kwekumisikidza yako wega yekumisikidzwa modhi, vashandisi vemapoka, kana kuvaka dashboard mune imwe BI system. Zvinongogoneka kuita hutsotsi hwakadaro nedata rechiitiko kubva kuAmplitude. Ichi chinyorwa chinokuudza nzira yekuwana iyi data neruzivo rushoma rwekuronga.

Prerequisites

  1. Iyo purojekiti muAmplitude umo zviitiko zvakatogadziriswa nemazvo uye manhamba anounganidzwa pazviri
  2. Python yakaiswa (Ndiri kushanda muvhezheni 3.8.3), iyo anogona kuverenga anogona kutoshanda nayo padanho rekutanga.

Mirayiridzo

Danho 1. Kuwana API-kiyi uye yakavanzika-kiyi

Kuti uise data, iwe unofanirwa kutanga watora kiyi yeAPI uye kiyi yakavanzika.

Unogona kuzviwana nekutevera nzira inotevera:

  1. "Tonga data" (iri pazasi kuruboshwe rwechidzitiro)
  2. Sarudza purojekiti yaunoda kubva iyo data ichatorwa uye uende kwairi
  3. Mumenu yeprojekiti inovhura, sarudza "Zvirongwa zveProjekiti"
  4. Isu tinowana iyo API-kiyi uye yakavanzika-kiyi tambo, kopi uye uchengetedze munzvimbo yakachengeteka.

Pasina kudzvanya, unogona kutevera chinongedzo, icho chinotaridzika seizvi:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
uko $$$$$$ ndiko kupindira kwesangano rako, ****** ndiyo nhamba yeprojekiti

Danho rechipiri: Kutarisa kuvepo kwemaraibhurari anodiwa

Nhau dzakanaka ndedzekuti unenge uchitova nemaraibhurari aya akaiswa nekukasira kana kudhawunirodha, asi iwe unofanirwa kutarisa. Rondedzero yakazara yemaraibhurari andakashandisa panguva yekunyora (shanduro dziri mumaparenthesi dzinoratidzwa pazvinenge zvakakodzera):

  1. zvikumbiro (2.10.0) - kutumira chikumbiro kuburikidza neapi kugamuchira data
  2. pandas (1.0.1) - kuverenga json, kugadzira dataframe uye wozonyora kune faira
  3. zipfile - bvisa mafaira kubva mudura rakagamuchirwa kuburikidza neAPI
  4. gzip - kuburitsa mafaira ejson kubva ku.gz
  5. os - kuwana runyoro rwemafaira kubva mudura risina kuvharwa
  6. nguva - ingasarudze, uyera iyo script irikumhanya nguva
  7. tqdm - inosarudzika, kuti itarise nyore kufambira mberi kwefaira kugadzirisa

Danho 3. Kunyora data loading script

Ratidzo: iyo yakazara yekurodha script iri kumagumo echinyorwa; kana uchida, unogona kuitora nekukasira uye tarisa kune nhanho-ne-nhanho tsananguro kana zvichidikanwa.

Nhanho 3.1. Kuunza maraibhurari

Isu tinopinza ma library ese akanyorwa mudanho rechipiri.

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

Nhanho 3.2. Kuendesa chikumbiro kune Amplitude

Ngationei matangiro ekuita script uye tinyore kuti ishanduke a.

kutanga uye kupera vane basa renguva yekurodha data uye akavakirwa mukati mezvinyorwa zvechikumbiro chakatumirwa kuAmplitude server; pamusoro pezuva, unogona zvakare kutsanangura awa nekuchinja kukosha mushure me 'T' muchikumbiro.

api_key uye chakavanzika_kiyi zvinoenderana nehunhu hunowanikwa mudanho rekutanga; nekuda kwezvikonzero zvekuchengetedza, ini ndinotsanangudza zvakatevedzana pano pane yangu.

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. Запрос отправлен')

Nhanho 3.3. Kudhaunirodha dura rine data

Isu tinouya nezita reiyo archive uye tinyore kune iyo filename variable. Kuti zvindiitire nyore, ini ndinoratidza nguva + inoratidza kuti iyi idata reamplitude. Tevere, tinorekodha mhinduro yakagamuchirwa kubva kuAmplitude mudura.

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

Nhanho 3.4. Kutora mafaera kubva pafolda pakombuta yako

Iyo zipfile raibhurari inouya mukutamba kubatsira kubvisa mafaera. Mumutsara wechitatu, chenjera uye nyora pasi nzira yako painokunakira iwe kutora.

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

Nhanho 3.5. json kutendeuka

Mushure mekubvisa mafaira kubva mudura, unofanirwa kushandura mafaira ejson mu .gz fomati woanyora mu dataframe kuti uwedzere basa.

Ndokumbira utarise kuti pano iwe unofanirwa kushandura nzira zvakare kune yako, uye pachinzvimbo che000000 nyora nhamba yako yepurojekiti kubva kuAmplitude (kana nemaoko vhura nzira iyo iyo archive yakabviswa uye tarisa zita reiyo folda mukati).

Kuti uzo:

Kunyora dhairekitori kune chinoshanduka, kuwana runyoro rwemafaira kubva mudhairekitori, kugadzira isina chinhu dataframe, time.sleep(1) kuti tqdm ishande nemazvo, mukati me loop tinovhura .gz mafaera uye nekukurumidza shandisa pandas kuverenga json uye kuzadza. iyo dataframe yakapihwa.

# Преобразование 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')

Nhanho 3.6. Kunyora dataframe muExcel

Iko kurodha kune excel ingori muenzaniso pano. Muzviitiko zvakawanda, zviri nyore kushanda neinoguma data data mukati mepython kana kuisa iyo data mukuchengetedza.

Iwe zvakare uchafanirwa kutsiva iyo data yekuisa nzira pano neyako.

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

Nhanho 3.7. Isu tinoverenga nguva yekumhanya ye script

Kurekodha nguva yazvino muchinjika b, kuverenga mutsauko uye nhamba yemaminitsi, kuratidza maminetsi akazara. Iri ndiro danho rekupedzisira.

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

mhedziso

Iwe unogona kufonera tafura uye wotanga kushanda nayo nekudaidza iyo amplitude_dataframe inoshanduka mairi iyo data yakanyorwa. Ichange iine makoramu makumi mashanu, ayo mu50% yezviitiko zvauchashandisa: chiitiko_type - zita rechiitiko, chiitiko_properties - chiitiko paramita, chiitiko_nguva - chiitiko nguva, uuid - client id, user_properties - client parameters, unofanira kutanga kushanda navo. . Uye kana uchienzanisa manhamba kubva kune ako ekuverenga nezviratidzo kubva kuAmplitude dashboard, haufanirwe kukanganwa kuti sisitimu inoshandisa yayo nzira yekuverenga yakasarudzika vatengi / mafaniro, nezvimwewo, uye usati waita izvi, iwe unofanirwa kuverenga iyo Amplitude zvinyorwa.

Ndinokutendai nekuteerera kwenyu! Iye zvino unogona kurodha yakabikwa chiitiko data kuAmplitude uye uishandise zvizere mubasa rako.

Chinyorwa chose:

# Импорт библиотек
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))

Source: www.habr.com

Voeg