Sonraí Aimplitiúid á aisghabháil trí API

Réamhrá

D'éirigh go han-mhaith le aimplitiúid mar uirlis anailísíochta táirge mar gheall ar a éascaíocht a bhaineann le socrú imeachta agus solúbthacht léirshamhlaithe. Agus go minic is gá do mhúnla sannachán féin a bhunú, úsáideoirí braisle, nó painéal a thógáil i gcóras BI eile. Ní féidir calaois den sórt sin a dhéanamh ach amháin le sonraí teagmhais amh ó Amplitude. Inseoidh an t-alt seo duit conas na sonraí seo a fháil le heolas cláir íosta.

Réamhriachtanais

  1. Tionscadal in Aimplitiúid ina bhfuil imeachtaí cumraithe i gceart cheana féin agus ina mbailítear staitisticí orthu
  2. Tá Python suiteáilte (táim ag obair i leagan 3.8.3), ar féidir leis an léitheoir ionchasach oibriú leis cheana féin ag leibhéal bunúsach ar a laghad

Teagasc

Céim 1. A fháil API-eochair agus rúnda-eochair

Chun sonraí a uaslódáil, ní mór duit eochair API agus eochair rúnda a fháil ar dtús.

Is féidir leat iad a fháil tríd an cosán seo a leanas a leanúint:

  1. “Bainistigh sonraí” (suite ag bun an scáileáin ar chlé)
  2. Roghnaigh an tionscadal atá ag teastáil óna ndéanfar sonraí a íoslódáil agus téigh chuige
  3. Sa roghchlár tionscadail a osclaíonn, roghnaigh "Socruithe tionscadail"
  4. Faighimid na teaghráin API-eochair agus rúnda-eochair, a chóipeáil agus a shábháil in áit shábháilte.

Gan cliceáil, is féidir leat an nasc a leanúint, a bhreathnaíonn mar seo go ginearálta:
analytics.amplitude.com/$$$$$$/manage/project/******/settings,
áit arb é $$$$$$ logáil isteach aimplitiúid d’eagraíochta, is é ****** uimhir an tionscadail

Céim 2: Seiceáil láithreacht na leabharlanna riachtanacha

Is é an dea-scéal ná gur beagnach cinnte go bhfuil na leabharlanna seo suiteáilte agat cheana féin nó go bhfuil siad íoslódáilte, ach ní mór duit seiceáil. Liosta iomlán na leabharlann a d’úsáid mé agus mé á scríobh (léirítear leaganacha i lúibíní nuair is cuí):

  1. iarratais (2.10.0) - iarratas a sheoladh trí api chun sonraí a fháil
  2. pandas (1.0.1) - json a léamh, fráma sonraí a chruthú agus ansin scríobh chuig comhad
  3. zipfile - sliocht comhaid ó chartlann a fuarthas tríd an API
  4. gzip - comhaid json á ndíphacáil ó .gz
  5. os - liosta comhad a fháil ó chartlann neamhphacáilte
  6. am - roghnach, tomhas am rith an script
  7. tqdm - roghnach, chun monatóireacht éasca a dhéanamh ar dhul chun cinn próiseála comhaid

Céim 3. Scríobh script luchtaithe sonraí

Leid: tá an script íoslódála iomlán ag deireadh an ailt; más mian leat, is féidir leat é a ghlacadh láithreach agus tagairt a dhéanamh do na míniúcháin céim ar chéim más gá.

Céim 3.1. Leabharlanna a allmhairiú

Allmhairímid na leabharlanna go léir atá liostaithe sa dara céim.

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

Céim 3.2. Iarratas a chur isteach chuig Amplitude

A ligean ar a bhrath tús fhorghníomhú script agus é a scríobh chuig athróg a.

tá startdate agus enddate freagrach as an tréimhse chun sonraí a íoslódáil agus tá siad ionsuite i dtéacs an iarratais a cuireadh chuig an bhfreastalaí Aimplitiúid; chomh maith leis an dáta, is féidir leat an uair a shonrú freisin tríd an luach a athrú tar éis 'T' san iarraidh.

api_key agus secret_key fhreagraíonn do na luachanna a fuarthas sa chéad chéim;

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

Céim 3.3. Íoslódáil cartlann le sonraí

Tagann muid suas le hainm don chartlann agus scríobhaimid chuig an athróg ainm comhaid é. Ar mhaithe le mo chaoithiúlacht, cuirim an tréimhse + in iúl gur sonraí aimplitiúid é seo. Ansin, déanaimid taifead ar an bhfreagra a fuarthas ó Amplitude isteach sa chartlann.

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

Céim 3.4. Comhaid a aisghabháil ó fhillteán ar do ríomhaire

Tagann an leabharlann zipfile i bhfeidhm chun cabhrú le comhaid a bhaint. Sa tríú líne, bí cúramach agus scríobh síos do chosán áit a bhfuil sé níos áisiúla duit a bhaint.

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

Céim 3.5. comhshó json

Tar éis duit na comhaid a bhaint as an gcartlann, ní mór duit comhaid json a thiontú i bhformáid .gz agus iad a scríobh isteach i bhfráma sonraí le haghaidh tuilleadh oibre.

Tabhair faoi deara le do thoil gur gá duit an cosán a athrú arís chuig do cheann féin, agus in ionad 000000 scríobh uimhir do thionscadail ó Aimplitiúid (nó oscail de láimh an cosán inar baineadh an chartlann agus féach ar ainm an fhillteáin taobh istigh).

In ord:

Comhadlann a scríobh chuig athróg, liosta comhad a fháil ó eolaire, fráma sonraí folamh a chruthú, time.sleep(1) le go n-oibreoidh tqdm i gceart, laistigh den lúb osclaíonn muid comhaid .gz agus úsáidimid pandas láithreach chun json a léamh agus a líonadh an fráma sonraí a thugtar.

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

Céim 3.6. Scríobh fráma sonraí i excel

Níl sa uaslódáil go excel ach sampla anseo. I go leor cásanna, tá sé níos áisiúla oibriú leis an bhfráma sonraí taobh istigh de python nó na sonraí a chur i stóráil.

Beidh ort freisin do chonair uaslódála sonraí a athsholáthar le do chuid féin.

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

Céim 3.7. Déanaimid am reatha na scripte a chomhaireamh

An t-am reatha a thaifeadadh san athróg b, ríomh an difríocht agus líon na nóiméad, ag taispeáint na miontuairiscí iomlána. Is é seo an chéim dheireanach.

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

Conclúid

Is féidir leat an tábla a ghlaoch agus tosú ag obair leis trí ghlao a chur ar an athróg amplitude_dataframe inar scríobhadh na sonraí. Beidh thart ar 50 colún ann, agus úsáidfidh tú i 80% de na cásanna: event_type - ainm an imeachta, event_properties - paraiméadair imeachta, event_time - am imeachta, uuid - aitheantas an chliaint, user_properties - paraiméadair chliaint, ba cheart duit tosú ag obair leo ar dtús . Agus tú ag déanamh comparáide idir figiúirí ó do ríomh féin agus táscairí ó na deais Aimplitiúid, ní mór duit dearmad a dhéanamh go n-úsáideann an córas a mhodheolaíocht féin chun cliaint / tonnadóirí uathúla, etc. a ríomh, agus sula ndéanann tú é seo, ba cheart duit an doiciméadú Aimplitiúid a léamh go cinnte.

Go raibh maith agat as do aird! Anois is féidir leat sonraí imeachta amh a uaslódáil chuig Aimplitiúid agus iad a úsáid go hiomlán i do chuid oibre.

Script iomlán:

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

Foinse: will.com