Retrieving data Amplitudo via API

perkenalan

Amplitudo parantos ngabuktikeun dirina salaku alat analitik produk kusabab pangaturan acara anu gampang sareng kalenturan visualisasi. Sareng sering aya anu peryogi nyetél modél atribusi anjeun, pangguna klaster, atanapi ngawangun dasbor dina sistem BI anu sanés. Ieu ngan mungkin pikeun ngalakukeun panipuan misalna kalawan data acara atah ti Amplitudo. Tulisan ieu bakal nyarioskeun ka anjeun kumaha kéngingkeun data ieu kalayan pangaweruh program minimal.

Prasarat

  1. Proyék dina Amplitudo dimana acara parantos dikonpigurasi leres sareng statistik dikumpulkeun dina éta
  2. Python dipasang (Abdi damel di versi 3.8.3), anu tiasa dianggo ku pamiarsa poténsial sahenteuna dina tingkat dasar.

parentah

Hambalan 1. Meunangkeun API-konci jeung rusiah-konci

Pikeun unggah data, Anjeun mimitina kudu ménta konci API jeung konci rusiah.

Anjeun tiasa mendakanana ku nuturkeun jalur ieu:

  1. "Atur data" (aya di kénca handap layar)
  2. Pilih proyék anu dipikahoyong tina data anu bakal diunduh sareng angkat ka dinya
  3. Dina menu proyék nu muka, pilih "Setélan proyék".
  4. Urang manggihan API-konci na rusiah-konci string, nyalin tur simpen aranjeunna dina tempat anu aman.

Tanpa ngaklik, anjeun tiasa nuturkeun tautan, anu sacara umum sapertos kieu:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
dimana $$$$$$ mangrupa login amplitudo organisasi anjeun, ****** nyaeta nomer proyék

Lengkah 2: Mariksa ayana perpustakaan anu diperyogikeun

Warta anu saé nyaéta yén anjeun ampir pasti parantos ngagaduhan perpustakaan ieu dipasang sacara standar atanapi diunduh, tapi anjeun kedah parios. Daptar lengkep perpustakaan anu kuring dianggo dina waktos nyerat (versi dina kurung dituduhkeun upami cocog):

  1. requests (2.10.0) - ngirim pamundut via api pikeun nampa data
  2. pandas (1.0.1) - maca json, nyieun pigura data lajeng nulis kana file
  3. zipfile - nimba file tina arsip anu ditampi via API
  4. gzip - ngabongkar file json tina .gz
  5. os - meunangkeun daptar payil ti arsip unpacked
  6. waktos - pilihan, ngukur waktu ngajalankeun naskah
  7. tqdm - opsional, pikeun gampang ngawas kamajuan ngolah file

Lengkah 3. Nulis skrip loading data

Pitunjuk: naskah unduhan lengkep aya di tungtung tulisan; upami anjeun hoyong, anjeun tiasa langsung nyandak sareng ningali katerangan léngkah-léngkah upami diperyogikeun.

Lengkah 3.1. Impor perpustakaan

Kami ngimpor sadaya perpustakaan anu didaptarkeun dina léngkah kadua.

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

Lengkah 3.2. Nepikeun pamundut ka Amplitudo

Hayu urang ngadeteksi mimiti palaksanaan Aksara jeung nulis ka variabel a.

startdate sareng enddate nanggungjawaban kanggo waktos pikeun ngunduh data sareng diwangun kana téks pamundut anu dikirim ka server Amplitudo; salian ti tanggal, anjeun ogé tiasa netepkeun jam ku cara ngarobih nilai saatos 'T' dina pamundut.

api_key sareng secret_key saluyu sareng nilai-nilai anu dicandak dina léngkah munggaran; pikeun alesan kaamanan, kuring netepkeun sekuen acak di dieu tibatan kuring sorangan.

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

Lengkah 3.3. Ngundeur arsip sareng data

Urang datang nepi ka ngaran pikeun arsip jeung nulis ka variabel Ngaran koropak. Pikeun genah kuring, kuring nunjukkeun periode + nunjukkeun yén ieu data amplitudo. Salajengna, urang ngarekam respon nampi ti Amplitudo kana arsip.

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

Lengkah 3.4. Retrieving payil ti polder dina komputer Anjeun

Perpustakaan zipfile tiasa dianggo pikeun ngabantosan nimba file. Dina baris katilu, ati-ati sareng tuliskeun jalur anjeun dimana langkung merenah pikeun anjeun nimba.

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

Lengkah 3.5. konversi json

Saatos extracting payil ti arsip, Anjeun kudu ngarobah file json dina format .gz jeung nulis kana dataframe pikeun digawé salajengna.

Punten dicatet yén di dieu anjeun kedah ngarobih deui jalur ka anjeun nyalira, sareng tibatan 000000 nyerat nomer proyék anjeun tina Amplitude (atanapi sacara manual muka jalur dimana arsip diekstrak sareng tingali nami folder di jero).

Supados:

Nulis diréktori ka variabel, meunang daptar file tina diréktori a, nyieun hiji dataframe kosong, time.sleep(1) pikeun tqdm jalan leres, di jero loop urang muka file .gz jeung langsung ngagunakeun pandas maca json jeung eusian. dataframe dibikeun.

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

Lengkah 3.6. Nulis dataframe dina Excel

Unggah ka Excel ngan ukur conto di dieu. Dina loba kasus, éta leuwih merenah pikeun digawekeun ku pigura data hasilna jero python atawa nyimpen data dina gudang.

Anjeun ogé kedah ngagentos jalur unggah data di dieu sareng anjeun nyalira.

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

Lengkah 3.7. Urang ngitung waktu ngajalankeun naskah

Ngarekam waktos ayeuna dina variabel b, ngitung bédana jeung jumlah menit, mintonkeun total menit. Ieu lengkah panungtungan.

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

kacindekan

Anjeun tiasa nelepon tabel tur mimitian gawé bareng eta ku nelepon variabel amplitude_dataframe kana nu data ieu ditulis. Bakal gaduh kira-kira 50 kolom, anu dina 80% kasus anjeun bakal nganggo: event_type - event name, event_properties - event parameters, event_time - event time, uuid - client id, user_properties - client parameters, anjeun kedah ngamimitian damel sareng aranjeunna heula. . Sareng nalika ngabandingkeun angka tina itungan anjeun sareng indikator tina dasbor Amplitudo, anjeun kedah hilap yén sistemna nganggo metodologi sorangan pikeun ngitung klien / corong unik, sareng sajabana, sareng sateuacan ngalakukeun ieu, anjeun pasti kedah maca dokuméntasi Amplitudo.

Nuhun kana perhatosanana! Ayeuna anjeun tiasa unggah data acara atah ka Amplitudo sareng sapinuhna dianggo dina padamelan anjeun.

Sakabeh naskah:

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

sumber: www.habr.com

Tambahkeun komentar