Ukufumana idatha ye-Amplitude nge-API

Intshayelelo

I-Amplitude izibonakalise kakuhle kakhulu njengesixhobo sokuhlalutya imveliso ngenxa yokuseta isiganeko esilula kunye nokubonakala okuguquguqukayo. Kwaye rhoqo kukho imfuneko yokuseta eyakho imodeli yophawu, abasebenzisi beqela, okanye ukwakha ideshbhodi kwenye inkqubo yeBI. Kunokwenzeka kuphela ukwenza ubuqhetseba obunjalo ngedatha yesiganeko ekrwada ukusuka kwi-Amplitude. Eli nqaku liza kukuxelela indlela yokufumana le datha ngolwazi oluncinci lwenkqubo.

Izinto ezifunekayo kuqala

  1. Iprojekthi ekwi-Amplitude apho iziganeko sele zicwangcisiwe ngokuchanekileyo kwaye izibalo ziqokelelwa kuzo
  2. I-Python ifakiwe (ndisebenza kwinguqulo 3.8.3), apho umfundi onokuthi asebenze naye ubuncinane kwinqanaba elisisiseko.

Imiyalelo

Inyathelo 1. Ukufumana i-API-key kunye nesitshixo esiyimfihlo

Ukulayisha idatha, kufuneka uqale ufumane isitshixo se-API kunye nesitshixo esiyimfihlo.

Ungazifumana ngokulandela le ndlela ilandelayo:

  1. "Lawula idatha" (ibekwe ezantsi ekhohlo kwesikrini)
  2. Khetha iprojekthi oyifunayo apho idatha iya kukhutshelwa kwaye uye kuyo
  3. Kwimenyu yeprojekthi evulayo, khetha "Useto lweprojekthi"
  4. Sifumana i-API-key kunye neentambo eziyimfihlo, ikopi kwaye uyigcine kwindawo ekhuselekileyo.

Ngaphandle kokucofa, unokulandela ikhonkco, elijongeka ngokubanzi ngolu hlobo:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
apho i-$$$$$$ kukungena kwe-amplitude yombutho wakho, ****** yinombolo yeprojekthi

Inyathelo 2: Ukukhangela ubukho bamathala eencwadi afunekayo

Iindaba ezimnandi zezokuba phantse ngokuqinisekileyo sele unawo la mathala eencwadi afakwe ngokungagqibekanga okanye akhutshelweyo, kodwa kufuneka ujonge. Uluhlu olupheleleyo lwamathala eencwadi endandiwasebenzisa ngexesha lokubhala (iinguqulelo kwizibiyeli zibonisiwe apho kufanelekileyo):

  1. izicelo (2.10.0) - ukuthumela isicelo nge-api ukufumana idatha
  2. pandas (1.0.1) - ukufunda i-json, ukudala i-dataframe kwaye emva koko ubhale kwifayile
  3. zipfile - khupha iifayile kwi-archive efunyenwe nge-API
  4. gzip - ukukhulula iifayile zejson kwi.gz
  5. os - ukufumana uluhlu lweefayile kwindawo yogcino olungapakishwanga
  6. ixesha - ungazikhethela, linganisa ixesha lokubhalwa kweskripthi
  7. tqdm - ungazikhethela, ukwenzela ukubeka esweni lula inkqubela phambili yokwenziwa kwefayile

Inyathelo 3. Ukubhala iskripthi sokulayisha idatha

Icebiso: iskripthi esipheleleyo sokukhuphela sisekupheleni kwenqaku; ukuba uyanqwenela, ungasithatha ngoko nangoko kwaye ubhekisele kwingcaciso ngamanyathelo ukuba kuyimfuneko.

Inyathelo 3.1. Ukuthathwa ngaphandle kwamathala eencwadi

Singenisa onke amathala eencwadi adweliswe kwinyathelo lesibini.

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

Inyathelo 3.2. Ukuhambisa isicelo kwi-Amplitude

Masichonge ukuqala kokwenziwa kwescript kwaye sikubhale ukuguquguquka a.

Umhla wokuqala kunye nomhla wokugqibela unoxanduva lwexesha lokulayisha idatha kwaye yakhelwe kwisicatshulwa sesicelo esithunyelwe kwiseva ye-Amplitude; ukongeza kumhla, ungaphinda ucacise iyure ngokutshintsha ixabiso emva kwe-'T' kwisicelo.

i-api_key kunye ne-secret_key zihambelana namaxabiso afunyenwe kwinqanaba lokuqala; ngenxa yezizathu zokhuseleko, ndixela ulandelelwano olungenamkhethe apha endaweni yeyam.

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

Inyathelo 3.3. Kuthotywa umthwalo wogcino lwedatha

Siza negama lendawo yokugcina kwaye siyibhale kuguquko lwegama lefayile. Ukulungelwa kwam, ndibonisa ixesha + libonisa ukuba le yidatha ye-amplitude. Emva koko, sirekhoda impendulo efunyenweyo kwi-Amplitude kwindawo yokugcina.

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

Inyathelo 3.4. Ukufumana kwakhona iifayile kwifolda kwikhompyuter yakho

Ilayibrari ye-zifile iyadlala ukunceda ukukhupha iifayile. Kumgca wesithathu, lumka kwaye ubhale phantsi umendo wakho apho kulungele khona ukuba ukhuphe.

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

Inyathelo 3.5. json ukuguqulwa

Emva kokukhupha iifayile kwi-archive, kufuneka uguqule iifayile ze-json kwifomathi ye-.gz kwaye uyibhale kwi-dataframe yomsebenzi oqhubekayo.

Nceda uqaphele ukuba apha kufuneka utshintshe umendo kwakhona uye kweyakho, kwaye endaweni ye-000000 bhala inombolo yeprojekthi yakho kwi-Amplitude (okanye uvule ngesandla indlela apho ugcino lukhutshwe khona kwaye ujonge igama lefolda ngaphakathi).

Ngendle:

Ukubhala uvimba weefayili ukuya kuguquko, ukufumana uluhlu lweefayile kuluhlu, ukwenza idata engenanto, ixesha.sleep(1) ukuze i-tqdm isebenze ngokuchanekileyo, ngaphakathi kwilophu sivula iifayile ze.gz kwaye kwangoko sebenzisa iipandas ukufunda ijson kwaye ugcwalise. idatha enikiweyo.

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

Inyathelo 3.6. Ukubhala uluhlu lwedatha kwi-excel

Ukulayisha ukugqwesa ngumzekelo nje apha. Kwiimeko ezininzi, kulungele ngakumbi ukusebenza kunye nesakhelo sedatha esisiphumo ngaphakathi kwepython okanye ukubeka idatha kwindawo yokugcina.

Kuya kufuneka kwakhona ubuyisele indlela yokulayisha idatha apha ngeyakho.

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

Inyathelo 3.7. Sibala ixesha lokuqhuba kweskripthi

Ukurekhoda ixesha langoku ku-variable b, ukubala umahluko kunye nenani lemizuzu, ukubonisa imizuzu iyonke. Eli linyathelo lokugqibela.

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

isiphelo

Ungabiza itafile kwaye uqale ukusebenza nayo ngokubiza i-amplitude_dataframe variable apho idatha ibhalwe khona. Iza kuba malunga nama-50 amakholomu, apho kwi-80% yamatyala uya kusebenzisa: event_type - isiganeko igama, event_properties - umcimbi parameters, event_time - event time, uuid - client id, user_properties - client parameters, kufuneka uqale ukusebenza nabo kuqala. . Kwaye xa uthelekisa amanani asuka kubalo lwakho kunye nezalathi ezisuka kwi-Amplitude dashboards, akufuneki ulibale ukuba isistim isebenzisa indlela yayo yokubala abaxumi abakhethekileyo/iifaneli, njl. njl., kwaye phambi kokwenza oku, kufuneka ngokuqinisekileyo ufunde uxwebhu lwe-Amplitude.

Enkosi ngosinaka kwakho! Ngoku ungalayisha idatha yesiganeko ekrwada kwi-Amplitude kwaye uyisebenzise ngokupheleleyo emsebenzini wakho.

Iscript esipheleleyo:

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

umthombo: www.habr.com

Yongeza izimvo