Adalw data Amplitude trwy API

Cyflwyniad

Mae Amplitude wedi profi ei hun yn dda iawn fel offeryn dadansoddi cynnyrch oherwydd ei hyblygrwydd gosod digwyddiadau a delweddu hawdd. Ac yn aml mae angen sefydlu eich model priodoli eich hun, defnyddwyr clwstwr, neu adeiladu dangosfwrdd mewn system BI arall. Dim ond gyda data digwyddiad amrwd o Amplitude y mae'n bosibl cyflawni twyll o'r fath. Bydd yr erthygl hon yn dweud wrthych sut i gael y data hwn heb fawr o wybodaeth raglennu.

Rhagofynion

  1. Prosiect mewn Osgled lle mae digwyddiadau eisoes wedi'u ffurfweddu'n gywir ac ystadegau'n cael eu casglu arnynt
  2. Mae Python wedi'i osod (rwy'n gweithio yn fersiwn 3.8.3), y gall y darpar ddarllenydd weithio ag ef eisoes ar lefel sylfaenol o leiaf

Cyfarwyddyd

Cam 1. Cael API-allweddol a chyfrinach-allweddol

I uwchlwytho data, yn gyntaf mae angen i chi gael allwedd API ac allwedd gyfrinachol.

Gallwch ddod o hyd iddynt trwy ddilyn y llwybr canlynol:

  1. “Rheoli data” (wedi'i leoli ar waelod chwith y sgrin)
  2. Dewiswch y prosiect a ddymunir y bydd data'n cael ei lawrlwytho ohono ac ewch iddo
  3. Yn newislen y prosiect sy'n agor, dewiswch "Gosodiadau prosiect"
  4. Rydyn ni'n dod o hyd i'r llinynnau API-allwedd a chyfrinach, yn eu copïo a'u cadw mewn man diogel.

Heb glicio, gallwch ddilyn y ddolen, sydd yn gyffredinol yn edrych fel hyn:
analytics.amplitude.com/$$$$$$/manage/project/******/settings,
lle $$$$$$ yw mewngofnodi osgled eich sefydliad, ****** yw rhif y prosiect

Cam 2: Gwirio presenoldeb y llyfrgelloedd gofynnol

Y newyddion da yw eich bod bron yn sicr eisoes wedi gosod y llyfrgelloedd hyn yn ddiofyn neu eu llwytho i lawr, ond mae angen i chi wirio. Y rhestr gyflawn o lyfrgelloedd a ddefnyddiais ar adeg ysgrifennu hwn (nodir fersiynau mewn cromfachau lle bo’n briodol):

  1. ceisiadau (2.10.0) - anfon cais trwy api i dderbyn data
  2. pandas (1.0.1) - darllen json, creu ffrâm data ac yna ysgrifennu i ffeil
  3. zipfile - echdynnu ffeiliau o archif a dderbyniwyd trwy'r API
  4. gzip - dadbacio ffeiliau json o .gz
  5. os - cael rhestr o ffeiliau o archif heb ei bacio
  6. amser - dewisol, mesurwch amser rhedeg y sgript
  7. tqdm - dewisol, ar gyfer monitro cynnydd prosesu ffeiliau yn hawdd

Cam 3. Ysgrifennu sgript llwytho data

Awgrym: mae'r sgript lawrlwytho lawn ar ddiwedd yr erthygl; os dymunwch, gallwch ei chymryd ar unwaith a chyfeirio at yr esboniadau cam wrth gam os oes angen.

Cam 3.1. Mewnforio llyfrgelloedd

Rydym yn mewnforio'r holl lyfrgelloedd a restrir yn yr ail gam.

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

Cam 3.2. Cyflwyno cais i Amplitude

Gadewch i ni ganfod dechrau gweithredu sgript a'i ysgrifennu i newidyn a.

dyddiad cychwyn a dyddiad gorffen sy'n gyfrifol am y cyfnod ar gyfer lawrlwytho data ac maent wedi'u cynnwys yn nhestun y cais a anfonwyd i'r gweinydd Amplitude; yn ogystal â'r dyddiad, gallwch hefyd nodi'r awr trwy newid y gwerth ar ôl 'T' yn y cais.

api_key a secret_key yn cyfateb i'r gwerthoedd a gafwyd yn y cam cyntaf; am resymau diogelwch, rwy'n nodi dilyniannau ar hap yma yn lle fy rhai fy hun.

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

Cam 3.3. Lawrlwytho archif gyda data

Rydyn ni'n creu enw ar gyfer yr archif ac yn ei ysgrifennu i'r newidyn enw ffeil. Er hwylustod i mi, rwy'n nodi'r cyfnod + yn nodi mai data amplitude yw hwn. Nesaf, rydym yn cofnodi'r ymateb a dderbyniwyd gan Amplitude i'r archif.

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

Cam 3.4. Nôl ffeiliau o ffolder ar eich cyfrifiadur

Daw'r llyfrgell zipfile i mewn i helpu i echdynnu ffeiliau. Yn y drydedd linell, byddwch yn ofalus ac ysgrifennwch eich llwybr lle mae'n fwy cyfleus i chi ei dynnu.

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

Cam 3.5. trosiad json

Ar ôl echdynnu'r ffeiliau o'r archif, mae angen i chi drosi ffeiliau json mewn fformat .gz a'u hysgrifennu i ffrâm data ar gyfer gwaith pellach.

Sylwch fod angen i chi newid y llwybr eto i'ch un chi, ac yn lle 000000 ysgrifennwch rif eich prosiect o Amplitude (neu agorwch y llwybr lle cafodd yr archif ei dynnu ac edrychwch ar enw'r ffolder y tu mewn).

Mewn trefn:

Ysgrifennu cyfeiriadur i newidyn, cael rhestr o ffeiliau o gyfeiriadur, creu ffrâm data gwag, time.sleep(1) i tqdm weithio'n gywir, tu fewn i'r ddolen rydym yn agor ffeiliau .gz ac yn defnyddio pandas ar unwaith i ddarllen json a llenwi y ffrâm ddata a roddwyd.

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

Cam 3.6. Ysgrifennu ffrâm ddata yn excel

Mae'r uwchlwythiad i excel yn enghraifft yn unig yma. Mewn llawer o achosion, mae'n fwy cyfleus gweithio gyda'r ffrâm ddata canlyniadol y tu mewn i python neu roi'r data mewn storfa.

Bydd yn rhaid i chi hefyd ddisodli'r llwybr llwytho data i fyny yma gyda'ch un chi.

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

Cam 3.7. Rydyn ni'n cyfrif amser rhedeg y sgript

Cofnodi'r amser presennol yn y newidyn b, cyfrifo'r gwahaniaeth a nifer y munudau, gan ddangos cyfanswm y cofnodion. Dyma'r cam olaf.

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

Casgliad

Gallwch ffonio'r tabl a dechrau gweithio gydag ef trwy ffonio'r newidyn amplitude_dataframe yr ysgrifennwyd y data iddo. Bydd ganddo tua 50 o golofnau, ac mewn 80% o achosion byddwch yn defnyddio: event_type - enw digwyddiad, event_properties - paramedrau digwyddiad, event_time - amser digwyddiad, uuid - id cleient, user_properties - paramedrau cleient, dylech ddechrau gweithio gyda nhw yn gyntaf . Ac wrth gymharu ffigurau o'ch cyfrifiadau eich hun â dangosyddion o ddangosfyrddau Osgled, rhaid i chi beidio ag anghofio bod y system yn defnyddio ei methodoleg ei hun ar gyfer cyfrifo cleientiaid / twndis unigryw, ac ati, a chyn gwneud hyn, dylech yn bendant ddarllen y ddogfennaeth Osgled.

Diolch am eich sylw! Nawr gallwch chi uwchlwytho data digwyddiad amrwd i Amplitude a'i ddefnyddio'n llawn yn eich gwaith.

Sgript gyfan:

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

Ffynhonnell: hab.com

Ychwanegu sylw