Famerenana ny angona Amplitude amin'ny alàlan'ny API

fampidirana

Ny Amplitude dia nanaporofo tsara ny tenany ho fitaovana famakafakana vokatra noho ny fametrahana hetsika mora sy ny fahafaha-mijery sary. Ary matetika dia ilaina ny manangana ny modelinao manokana, mpampiasa cluster, na manangana dashboard amin'ny rafitra BI hafa. Azo atao ihany ny manao hosoka toy izany miaraka amin'ny angona hetsika manta avy amin'ny Amplitude. Ity lahatsoratra ity dia hilaza aminao ny fomba hahazoana ity data ity miaraka amin'ny fahalalana fandaharana kely indrindra.

zavatra takiana alohan'ny

  1. Tetikasa amin'ny Amplitude izay efa voarindra tsara ny hetsika ary angonina ny antontan'isa momba azy ireo
  2. Napetraka ny Python (miasa amin'ny version 3.8.3 aho), izay efa azon'ny mpamaky mety miasa miaraka amin'ny ambaratonga fototra farafaharatsiny.

fampianarana

Dingana 1. Mahazo API-key sy secret-key

Raha te hampakatra angona dia mila maka lakile API sy lakile miafina aloha ianao.

Azonao atao ny mahita azy ireo amin'ny alàlan'ny lalana manaraka:

  1. "Tantano ny angona" (eo amin'ny farany ambany havia amin'ny efijery)
  2. Safidio ny tetikasa tiana hisintonana angona ary mandehana any
  3. Ao amin'ny lisitry ny tetikasa izay misokatra, safidio ny "Settings Project"
  4. Hitanay ny tady API-key sy secret-key, kopia ary tehirizo amin'ny toerana azo antoka.

Raha tsy kitihina ianao dia afaka manaraka ny rohy, izay amin'ny ankapobeny dia toy izao:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
izay $$$$$$ ny fidirana amplitude an'ny fikambananao, ****** ny laharan'ny tetikasa

Dingana 2: Fanamarinana ny fisian'ny tranomboky ilaina

Ny vaovao tsara dia saika azo antoka fa efa manana ireo tranomboky napetraka amin'ny alàlan'ny default na alaina ianao, saingy mila manamarina ianao. Ny lisitra feno amin'ny tranomboky nampiasaiko tamin'ny fotoana nanoratana (ny dikan-teny ao anaty fononteny dia aseho raha mety):

  1. fangatahana (2.10.0) - mandefa fangatahana amin'ny alàlan'ny api mba handraisana data
  2. pandas (1.0.1) - mamaky json, mamorona angon-drakitra ary manoratra amin'ny rakitra
  3. zipfile - manala rakitra avy amin'ny arisiva azo amin'ny API
  4. gzip - mamaha ny rakitra json amin'ny .gz
  5. os - maka lisitry ny rakitra avy amin'ny arisiva tsy voafehy
  6. fotoana - azo atao, refesina ny fotoana fandehan'ny script
  7. tqdm - azo atao, ho fanaraha-maso mora ny fivoaran'ny fanodinana rakitra

Dingana 3. Manoratra script loading data

Soso-kevitra: ny script download feno dia eo amin'ny faran'ny lahatsoratra; raha tianao dia azonao atao ny maka izany avy hatrany ary manondro ny fanazavana tsikelikely raha ilaina.

Dingana 3.1. Manafatra tranomboky

Manafatra ireo tranomboky rehetra voatanisa amin'ny dingana faharoa izahay.

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

Dingana 3.2. Mametraka fangatahana amin'ny Amplitude

Andeha hojerentsika ny fanombohan'ny famonoana script ary soraty amin'ny variable a.

Ny daty fanombohana sy ny daty farany dia tompon'andraikitra amin'ny vanim-potoana fampiakarana angon-drakitra ary natsangana tao amin'ny lahatsoratry ny fangatahana nalefa ho an'ny mpizara Amplitude; ankoatra ny daty, azonao atao koa ny mamaritra ny ora amin'ny fanovana ny sanda aorian'ny 'T' amin'ny fangatahana.

api_key sy secret_key mifanitsy amin'ny soatoavina azo tamin'ny dingana voalohany; noho ny antony fiarovana dia mamaritra ny filaharana kisendrasendra eto aho fa tsy ny ahy.

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

Dingana 3.3. Misintona arisiva misy angona

Tonga miaraka amin'ny anarana ho an'ny arisiva izahay ary soraty amin'ny fari-pitsipika anarana. Ho an'ny fahafahako, dia manondro ny vanim-potoana + aho manondro fa angon-drakitra amplitude. Avy eo, raketinay ao amin'ny tahiry ny valiny azo avy amin'ny Amplitude.

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

Dingana 3.4. Maka rakitra avy amin'ny lahatahiry iray amin'ny solosainao

Ny tranomboky zipfile dia miditra an-tsehatra hanampy amin'ny fanesorana rakitra. Eo amin'ny andalana fahatelo, mitandrema ary soraty ny lalanao izay mety kokoa ho anao.

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

Dingana 3.5. json fiovam-po

Aorian'ny fanesorana ireo rakitra ao amin'ny arisiva, dia mila manova ny rakitra json amin'ny endrika .gz ianao ary manoratra azy ireo amin'ny dataframe ho an'ny asa fanampiny.

Mariho fa eto ianao dia mila manova ny lalana mankany amin'ny anao, ary raha tokony 000000 dia soraty ny laharan'ny tetikasanao avy amin'ny Amplitude (na sokafy amin'ny tanana ny lalana nalaina ny arisiva ary jereo ny anaran'ny lahatahiry ao anatiny).

Milamina:

Manoratra lahatahiry ho an'ny variable, maka lisitry ny rakitra avy amin'ny lahatahiry iray, mamorona angon-drakitra tsy misy dikany, time.sleep(1) mba hiasa tsara ny tqdm, ao anatin'ny loop dia manokatra rakitra .gz isika ary mampiasa pandas avy hatrany hamakiana json sy hamenoana. ny dataframe nomena.

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

Dingana 3.6. Manoratra dataframe amin'ny excel

Ohatra fotsiny eto ny fampiakarana amin'ny excel. Amin'ny tranga maro dia mety kokoa ny miasa miaraka amin'ny frame data ao anaty python na mametraka ny angon-drakitra ao anaty fitahirizana.

Tsy maintsy soloinao amin'ny anao ihany koa ny lalana fampiakarana angona eto.

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

Dingana 3.7. Manisa ny fotoana fandehan'ny script izahay

Fandraketana ny ora ankehitriny ao amin'ny fari-piainana b, kajy ny fahasamihafana sy ny isan'ny minitra, mampiseho ny fitambaran'ny minitra. Ity no dingana farany.

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

famaranana

Azonao atao ny miantso ny latabatra ary manomboka miasa miaraka aminy amin'ny fiantsoana ny amplitude_dataframe variable izay nanoratana ny angona. Hanana tsanganana 50 eo ho eo izy io, ka amin'ny 80% amin'ny tranga dia hampiasainao: event_type - anaran'ny hetsika, event_properties - masontsivana hetsika, ora_hetsika - ora hetsika, uuid - ID mpanjifa, mpampiasa_properties - masontsivana mpanjifa, tokony hanomboka hiasa amin'izy ireo aloha ianao . Ary rehefa mampitaha tarehimarika avy amin'ny kajikajy manokana amin'ny tondro avy amin'ny dashboard Amplitude, dia tsy tokony hohadinoinao fa ny rafitra dia mampiasa ny fomba fiasany manokana amin'ny fanisana mpanjifa/fantsona tsy manam-paharoa, sns., Ary alohan'ny hanaovana izany dia tokony hamaky ny antontan-taratasy Amplitude ianao.

Misaotra anao noho ny fifantohanao! Ankehitriny ianao dia afaka mampakatra angon-drakitra hetsika manta any amin'ny Amplitude ary mampiasa izany amin'ny asanao.

script manontolo:

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

Add a comment