Amplitude datuak API bidez berreskuratzen

Sarrera

Amplitude oso ondo frogatu da produktuen analisirako tresna gisa, gertaeren konfigurazio errazaren eta bistaratze malgutasunaren ondorioz. Eta askotan zure atribuzio-eredua konfiguratu beharra dago, erabiltzaileen clusterrak edo beste BI sistema batean aginte-panela bat eraikitzea. Amplitude-ren gertaeren datu gordinarekin soilik da posible iruzurra egitea. Artikulu honek datu hauek programazio gutxieneko ezagutzarekin nola lortu esango dizu.

Aurrebaldintzak

  1. Amplitude-ko proiektu bat, ekitaldiak dagoeneko behar bezala konfiguratuta dauden eta horien gaineko estatistikak biltzen diren
  2. Python instalatuta dago (3.8.3 bertsioan ari naiz lanean), irakurle potentzialak dagoeneko lan egin dezakeen oinarrizko mailan gutxienez.

Instrukzio

1. urratsa. API-gakoa eta gako sekretua lortzea

Datuak kargatzeko, lehenik eta behin API gakoa eta gako sekretua lortu behar dituzu.

Bide hau jarraituz aurki ditzakezu:

  1. "Kudeatu datuak" (pantailaren beheko ezkerrean dago)
  2. Hautatu zein proiektutik deskargatuko diren datuak eta joan bertara
  3. Irekitzen den proiektuaren menuan, hautatu "Proiektuaren ezarpenak"
  4. API-gako eta gako sekretuaren kateak aurkitzen ditugu, kopiatu eta leku seguru batean gorde.

Klik egin gabe, esteka jarraitu dezakezu, orokorrean itxura hau duena:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
non $$$$$$ zure erakundearen anplitude-saioa den, ****** proiektuaren zenbakia da

2. urratsa: beharrezko liburutegien presentzia egiaztatzea

Berri ona da ia ziur dagoeneko liburutegi hauek lehenespenez instalatuta edo deskargatuta dituzula, baina egiaztatu behar duzula. Idazteko unean erabili nuen liburutegien zerrenda osoa (bertsioak parentesi artean adierazten dira, hala badagokio):

  1. eskaerak (2.10.0) - eskaera bat bidaltzea api bidez datuak jasotzeko
  2. pandas (1.0.1) - json irakurtzen, datu-markoa sortu eta gero fitxategi batean idazten
  3. zipfile - atera fitxategiak API bidez jasotako artxibo batetik
  4. gzip - .gz-etik json fitxategiak deskonprimitzen ditu
  5. os - paketatu gabeko artxibo batetik fitxategien zerrenda lortzea
  6. denbora - aukerakoa, neurtu script-aren exekuzio-denbora
  7. tqdm - aukerakoa, fitxategien prozesamenduaren aurrerapena erraz kontrolatzeko

3. urratsa. Datuak kargatzeko gidoia idaztea

Aholkua: deskargatzeko script osoa artikuluaren amaieran dago; nahi izanez gero, berehala hartu dezakezu eta beharrezkoa izanez gero urratsez urratseko azalpenetara jo dezakezu.

3.1 urratsa. Liburutegiak inportatzea

Bigarren urratsean zerrendatutako liburutegi guztiak inportatzen ditugu.

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

3.2 urratsa. Amplitude-ri eskaera bat bidaltzea

Detektatu dezagun script exekuzioaren hasiera eta idatzi a aldagaian.

hasierako data eta amaierako data datuak deskargatzeko epearen arduradunak dira eta Amplitude zerbitzariari bidalitako eskaeraren testuan sartuta daude; dataz gain, ordua ere zehaztu dezakezu eskaeran 'T'-aren ondorengo balioa aldatuz.

api_key eta secret_key lehen urratsean lortutako balioei dagozkie; segurtasun arrazoiengatik, hemen ausazko sekuentziak zehazten ditut nire ordez.

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 urratsa. Datuekin artxibo bat deskargatzea

Artxiborako izen bat ateratzen dugu eta fitxategi-izena aldagaian idazten dugu. Nire erosotasunerako, periodoa + adierazten dut anplitude-datua dela. Ondoren, Amplitude-tik jasotako erantzuna artxiboan grabatuko dugu.

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

3.4 urratsa. Zure ordenagailuko karpeta batetik fitxategiak berreskuratzen

zipfile liburutegia jokoan sartzen da fitxategiak ateratzen laguntzeko. Hirugarren lerroan, kontuz ibili eta idatzi zure bidea ateratzea komeni zaizun lekuan.

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

3.5 urratsa. json bihurketa

Artxibotik fitxategiak atera ondoren, json fitxategiak .gz formatuan bihurtu eta datu-marko batean idatzi behar dituzu lan gehiago egiteko.

Kontuan izan hemen bidea berriro zurea aldatu behar duzula, eta 000000ren ordez idatzi zure proiektuaren zenbakia Amplitude-tik (edo eskuz ireki artxiboa atera den bidea eta begiratu barruan dagoen karpetaren izena).

Ordenan:

Direktorio bat aldagai batean idaztea, direktorio batetik fitxategien zerrenda lortzea, dataframe huts bat sortzea, time.sleep(1) tqdm-k behar bezala funtziona dezan, begiztaren barruan .gz fitxategiak irekitzen ditugu eta berehala pandak erabiltzen ditugu json irakurtzeko eta betetzeko. emandako datu-markoa.

# Преобразование 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 urratsa. Excel-en datu-markoa idaztea

Excel-era kargatzea adibide bat besterik ez da hemen. Kasu askotan, erosoagoa da ondoriozko datu-markoarekin lan egitea python-en barruan edo datuak biltegian jartzea.

Hemen ere datuak kargatzeko bidea zurea ordeztu beharko duzu.

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

3.7 urratsa. Gidoiaren iraupena zenbatzen dugu

b aldagaian uneko ordua erregistratzea, aldea eta minutu kopurua kalkulatzea, minutu guztira bistaratzea. Hau da azken urratsa.

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

Ondorioa

Taula deitu eta berarekin lanean has zaitezke, datuak idatzi diren amplitude_dataframe aldagaiari deituz. 50 zutabe inguru izango ditu, eta horietatik kasuen % 80an erabiliko dituzu: event_type - gertaeren izena, event_properties - gertaeren parametroak, event_time - gertaeraren ordua, uuid - bezeroaren id, user_properties - bezeroaren parametroak, haiekin lanean hasi beharko zenuke lehenik. . Eta zure kalkuluetako zifrak Amplitude aginte-paneletako adierazleekin alderatzean, ez duzu ahaztu behar sistemak bere metodologia propioa erabiltzen duela bezero/inbutu bereziak kalkulatzeko, eta, hori egin aurretik, Amplitude dokumentazioa irakurri beharko zenuke.

Eskerrik asko zure arretagatik! Orain gertaeren datu gordinak igo ditzakezu Amplitude-ra eta guztiz erabil ditzakezu zure lanean.

Gidoi osoa:

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

Iturria: www.habr.com

Gehitu iruzkin berria