Njupuk data Amplitudo liwat API

Pambuka

Amplitudo wis kabukten kanthi apik minangka alat analitik produk amarga persiyapan acara sing gampang lan keluwesan visualisasi. Lan asring ana perlu kanggo nyiyapake model atribusi dhewe, pangguna kluster, utawa mbangun dashboard ing sistem BI liyane. Sampeyan mung bisa nindakake penipuan kasebut kanthi data acara mentah saka Amplitude. Artikel iki bakal menehi pitutur marang kowe carane entuk data iki kanthi kawruh pemrograman minimal.

Prasyarat

  1. Proyek ing Amplitudo sing acara wis dikonfigurasi kanthi bener lan statistik diklumpukake
  2. Python wis diinstal (Aku digunakake ing versi 3.8.3), sing maca potensial wis bisa digunakake ing paling ing tingkat dhasar

Pandhuan

Langkah 1. Entuk kunci API lan kunci rahasia

Kanggo ngunggah data, sampeyan kudu entuk kunci API lan kunci rahasia.

Sampeyan bisa nemokake kanthi ngetutake dalan ing ngisor iki:

  1. "Atur data" (dumunung ing sisih kiwa ngisor layar)
  2. Pilih proyek sing dikarepake saka data sing bakal diundhuh lan pindhah menyang
  3. Ing menu proyek sing mbukak, pilih "Setelan proyek"
  4. Kita nemokake senar kunci API lan kunci rahasia, nyalin lan nyimpen ing papan sing aman.

Tanpa ngeklik, sampeyan bisa ngetutake tautan kasebut, sing umume katon kaya iki:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
ing ngendi $$$$$$ minangka login amplitudo organisasi sampeyan, ****** minangka nomer proyek

Langkah 2: Priksa manawa ana perpustakaan sing dibutuhake

Kabar apik yaiku sampeyan meh mesthi wis nginstal perpustakaan kasebut kanthi standar utawa diundhuh, nanging sampeyan kudu mriksa. Dhaptar perpustakaan lengkap sing digunakake nalika nulis (versi ing kurung dituduhake yen cocog):

  1. requests (2.10.0) - ngirim panjalukan liwat api kanggo nampa data
  2. pandas (1.0.1) - maca json, nggawe dataframe lan banjur nulis menyang file
  3. zipfile - extract file saka arsip sing ditampa liwat API
  4. gzip - mbongkar file json saka .gz
  5. os - njupuk dhaptar file saka arsip sing ora dibungkus
  6. wektu - opsional, ngukur wektu mlaku script kang
  7. tqdm - opsional, kanggo gampang ngawasi proses pangolahan file

Langkah 3. Nulis skrip loading data

Petunjuk: skrip download lengkap ana ing pungkasan artikel; yen sampeyan pengin, sampeyan bisa langsung njupuk lan deleng panjelasan langkah-langkah yen perlu.

Langkah 3.1. Ngimpor perpustakaan

Kita ngimpor kabeh perpustakaan sing kadhaptar ing langkah kapindho.

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

Langkah 3.2. Ngirim panjalukan menyang Amplitudo

Ayo ndeteksi wiwitan eksekusi script lan nulis menyang variabel a.

tanggal wiwitan lan tanggal pungkasan tanggung jawab kanggo wektu ngundhuh data lan dibangun ing teks panjalukan sing dikirim menyang server Amplitudo; saliyane tanggal, sampeyan uga bisa nemtokake jam kanthi ngganti nilai sawise 'T' ing panyuwunan.

api_key lan secret_key cocog karo nilai sing dipikolehi ing langkah pisanan; kanggo alasan keamanan, aku nemtokake urutan acak ing kene tinimbang dhewe.

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

Langkah 3.3. Ngundhuh arsip karo data

Kita nggawe jeneng kanggo arsip lan nulis menyang variabel jeneng file. Kanggo penak, aku nuduhake periode + nuduhake yen iki data amplitudo. Sabanjure, kita ngrekam respon sing ditampa saka Amplitudo menyang arsip.

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

Langkah 3.4. Njupuk file saka folder ing komputer

Pustaka zipfile dimainake kanggo mbantu ngekstrak file. Ing baris katelu, ati-ati lan tulisake dalan sing luwih trep kanggo diekstrak.

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

Langkah 3.5. konversi json

Sawise ngekstrak file saka arsip, sampeyan kudu ngowahi file json ing format .gz lan nulis menyang dataframe kanggo karya luwih lanjut.

Wigati dimangerteni menawa kene sampeyan kudu ngganti path maneh kanggo dhewe, lan tinimbang 000000 nulis nomer project saka Amplitude (utawa kanthi manual mbukak path ngendi arsip iki dijupuk lan katon ing jeneng folder nang).

Supados:

Nulis direktori menyang variabel, njupuk dhaptar file saka direktori, nggawe dataframe kosong, time.sleep(1) kanggo tqdm bisa digunakake kanthi bener, ing jero loop kita mbukak file .gz lan langsung nggunakake panda kanggo maca json lan ngisi dataframe diwenehi.

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

Langkah 3.6. Nulis dataframe ing excel

Unggahan menyang excel mung conto ing kene. Ing sawetara kasus, luwih trep kanggo nggarap pigura data sing diasilake ing python utawa nyimpen data ing panyimpenan.

Sampeyan uga kudu ngganti path upload data kene karo dhewe.

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

Langkah 3.7. We count wektu mlaku script

Ngrekam wektu saiki ing variabel b, ngitung prabédan lan jumlah menit, nampilake total menit. Iki minangka langkah pungkasan.

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

kesimpulan

Sampeyan bisa nelpon tabel lan miwiti nggarap kanthi nelpon variabel amplitude_dataframe ing ngendi data kasebut ditulis. Bakal duwe kira-kira 50 kolom, sing ing 80% kasus sampeyan bakal nggunakake: event_type - jeneng acara, event_properties - paramèter acara, event_time - wektu acara, uuid - id klien, user_properties - paramèter klien, sampeyan kudu miwiti nggarap wong-wong mau dhisik. . Lan nalika mbandhingake angka saka petungan dhewe karo pratondho saka dashboard Amplitudo, sampeyan kudu ora lali yen sistem nggunakake metodologi dhewe kanggo ngitung klien unik / corong, etc., lan sadurunge nindakake iki, sampeyan kudu maca dokumentasi Amplitudo.

Matur nuwun kanggo perhatian sampeyan! Saiki sampeyan bisa ngunggah data acara mentah menyang Amplitudo lan digunakake kanthi lengkap ing karya sampeyan.

skrip kabèh:

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