API ذريعي Amplitude ڊيٽا حاصل ڪرڻ

تعارف

طول و عرض پاڻ کي تمام سٺو ثابت ڪيو آهي هڪ پراڊڪٽ اينالائيٽڪس ٽول ان جي آسان ايونٽ سيٽ اپ ۽ بصري لچڪ جي ڪري. ۽ اڪثر ڪري توهان جي پنهنجي انتساب ماڊل، ڪلستر استعمال ڪندڙ، يا ڪنهن ٻئي BI سسٽم ۾ ڊيش بورڊ ٺاهڻ جي ضرورت آهي. اهو صرف ممڪن آهي ته اهڙي فريب کي انجام ڏيڻ جي خام واقعي جي ڊيٽا سان ايمپليٽيوڊ کان. هي آرٽيڪل توهان کي ٻڌائيندو ته هي ڊيٽا ڪيئن حاصل ڪجي گهٽ ۾ گهٽ پروگرامنگ جي ڄاڻ سان.

شرطون

  1. Amplitude ۾ هڪ پروجيڪٽ جنهن ۾ واقعا اڳ ۾ ئي صحيح ترتيب ڏنل آهن ۽ انهن تي انگ اکر گڏ ڪيا ويا آهن
  2. پٿون انسٽال ٿيل آهي (مان ورجن 3.8.3 ۾ ڪم ڪري رهيو آهيان)، جنهن جو امڪاني پڙهندڙ اڳ ۾ ئي ڪم ڪري سگهي ٿو گهٽ ۾ گهٽ بنيادي سطح تي

هدايتون

قدم 1. API-key ۽ secret-key حاصل ڪرڻ

ڊيٽا اپلوڊ ڪرڻ لاءِ، توھان کي پھريون ڀيرو حاصل ڪرڻ جي ضرورت آھي API ڪي ۽ ڳجھي ڪيئي.

توھان انھن کي ڳولي سگھوٿا ھيٺ ڏنل طريقي سان.

  1. "ڊيٽا منظم ڪريو" (اسڪرين جي تري ۾ کاٻي پاسي واقع)
  2. مطلوب پروجيڪٽ چونڊيو جنهن مان ڊيٽا ڊائون لوڊ ڪيو ويندو ۽ ان ڏانهن وڃو
  3. پروجيڪٽ مينيو ۾ جيڪو کلي ٿو، چونڊيو "پروجيڪٽ سيٽنگون"
  4. اسان API-key ۽ secret-key strings ڳوليون ٿا، انھن کي نقل ڪريو ۽ محفوظ جاءِ تي محفوظ ڪريو.

بغير ڪلڪ ڪرڻ جي، توهان لنڪ جي پيروي ڪري سگهو ٿا، جيڪو عام طور تي هن طرح نظر اچي ٿو:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
جتي $$$$$$ توهان جي تنظيم جي ايمپليٽيوڊ لاگ ان آهي، ****** پروجيڪٽ نمبر آهي

قدم 2: گهربل لائبريرين جي موجودگي جي جانچ ڪندي

سٺي خبر اها آهي ته توهان تقريبن ضرور اڳ ۾ ئي اهي لائبريريون ڊفالٽ يا ڊائون لوڊ ٿيل آهن، پر توهان کي چيڪ ڪرڻ جي ضرورت آهي. لائبريرين جي مڪمل فهرست جيڪا مون لکڻ جي وقت استعمال ڪئي هئي (جتي مناسب هجي قوس ۾ ورجن ڏيکاريل آهن):

  1. درخواستون (2.10.0) - ڊيٽا حاصل ڪرڻ لاءِ api ذريعي درخواست موڪلڻ
  2. پانڊا (1.0.1) - json پڙهڻ، هڪ ڊيٽا فريم ٺاهڻ ۽ پوءِ فائل ڏانهن لکڻ
  3. zipfile - API ذريعي حاصل ڪيل آرڪائيو مان فائلون ڪڍو
  4. gzip - .gz مان json فائلن کي ڪڍڻ
  5. os - اڻ ڀريل آرڪائيو مان فائلن جي لسٽ حاصل ڪرڻ
  6. وقت - اختياري، اسڪرپٽ جي هلندڙ وقت کي ماپ ڪريو
  7. tqdm - اختياري، فائل پروسيسنگ جي ترقي جي آسان نگراني لاء

قدم 3. ڊيٽا لوڊ ڪرڻ واري اسڪرپٽ لکڻ

اشارو: مڪمل ڊائون لوڊ اسڪرپٽ مضمون جي آخر ۾ آهي؛ جيڪڏهن توهان چاهيو ته، توهان ان کي فوري طور تي وٺي سگهو ٿا ۽ جيڪڏهن ضروري هجي ته قدم قدم وضاحتن جو حوالو ڏيو.

قدم 3.1. لائبريريون درآمد ڪرڻ

اسان ٻئي مرحلي ۾ درج ڪيل سڀني لائبريرين کي درآمد ڪريون ٿا.

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

قدم 3.2. Amplitude لاء درخواست جمع ڪرڻ

اچو ته اسڪرپٽ جي عمل جي شروعات کي ڳوليون ۽ ان کي متغير الف ۾ لکون.

startdate ۽ enddate ڊيٽا کي ڊائون لوڊ ڪرڻ جي مدت لاءِ ذميوار آهن ۽ Amplitude سرور ڏانهن موڪليل درخواست جي متن ۾ ٺهيل آهن؛ تاريخ کان علاوه، توهان درخواست ۾ 'T' کان پوءِ قدر کي تبديل ڪندي ڪلاڪ پڻ بيان ڪري سگهو ٿا.

api_key ۽ secret_key پهرين قدم ۾ حاصل ڪيل قدرن سان ملندڙ جلندڙ آهن؛ حفاظتي سببن جي ڪري، مان هتي پنهنجي بدران بي ترتيب ترتيب بيان ڪريان ٿو.

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. ڊيٽا سان گڏ آرڪائيو ڊائون لوڊ ڪندي

اسان آرڪائيو لاء هڪ نالو سان گڏ ايندا آهيون ۽ ان کي لکندا آهيون فائل جو نالو متغير. منهنجي سھولت لاءِ، مان اشارو ڪريان ٿو عرصو + اشارو ته ھي آھي ايمپليٽيوڊ ڊيٽا. اڳيون، اسان آرڪائيو ۾ Amplitude کان موصول ٿيل جواب کي رڪارڊ ڪيو.

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

قدم 3.4. توهان جي ڪمپيوٽر تي فولڊر مان فائلون ٻيهر حاصل ڪرڻ

زپ فائل لائبريري فائلن کي ڪڍڻ ۾ مدد لاء راند ۾ اچي ٿو. ٽئين لڪير ۾، محتاط رهو ۽ پنھنجو رستو لکو جتي اھو توھان لاءِ وڌيڪ آسان آھي ڪڍڻ لاءِ.

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

قدم 3.5. json تبديلي

آرڪائيو مان فائلن کي ڪڍڻ کان پوء، توهان کي json فائلن کي .gz فارميٽ ۾ تبديل ڪرڻ جي ضرورت آهي ۽ وڌيڪ ڪم لاء انهن کي ڊيٽا فريم ۾ لکڻو پوندو.

مهرباني ڪري نوٽ ڪريو ته هتي توهان کي ٻيهر پنهنجو رستو تبديل ڪرڻ جي ضرورت آهي، ۽ 000000 جي بدران پنهنجو پروجيڪٽ نمبر Amplitude مان لکو (يا دستي طور اهو رستو کوليو جتي آرڪائيو ڪڍيو ويو هو ۽ اندر فولڊر جو نالو ڏسو).

جي لاءِ:

ڊاريڪٽري کي متغير ۾ لکڻ، ڊاريڪٽري مان فائلن جي لسٽ حاصل ڪرڻ، خالي ڊيٽا فريم ٺاهڻ، ٽائم ڊي ايم صحيح ڪم ڪرڻ لاءِ time.sleep(1)، لوپ جي اندر اسين .gz فائلون کوليندا آهيون ۽ فوري طور تي json پڙهڻ ۽ ڀرڻ لاءِ پنڊاس استعمال ڪندا آهيون. ڏنل ڊيٽا فريم.

# Преобразование 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. Excel ۾ ڊيٽا فريم لکڻ

ايڪسل تي اپلوڊ صرف هڪ مثال آهي هتي. ڪيترين ئي صورتن ۾، اهو وڌيڪ آسان آهي ته نتيجو ڊيٽا فريم سان گڏ ڪم ڪرڻ لاء پٿون اندر يا ڊيٽا کي اسٽوريج ۾ رکڻ لاء.

توھان کي پڻ تبديل ڪرڻو پوندو ڊيٽا اپلوڊ رستو ھتي توھان جي پنھنجي سان.

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

قدم 3.7. اسان لکت جي هلندڙ وقت کي ڳڻيو

موجوده وقت کي متغير ب ۾ رڪارڊ ڪندي، فرق ۽ منٽن جو تعداد حساب ڪندي، ڪل منٽ ڏيکاريندي. هي آخري قدم آهي.

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

ٿڪل

توھان ٽيبل کي ڪال ڪري سگھوٿا ۽ ان سان ڪم ڪرڻ شروع ڪري سگھوٿا amplitude_dataframe variable کي ڪال ڪندي جنھن ۾ ڊيٽا لکيل ھو. ان ۾ اٽڪل 50 ڪالم هوندا، جن مان 80 سيڪڙو ڪيسن ۾ توهان استعمال ڪندا: event_type - واقعي جو نالو، event_properties - ايونٽ پيٽرول، event_time - واقعي جو وقت، uuid - ڪلائنٽ id، user_properties - ڪلائنٽ پيٽرول، توهان کي انهن سان گڏ ڪم شروع ڪرڻ گهرجي. . ۽ جڏهن توهان جي پنهنجي حسابن مان انگن اکرن کي ايمپليٽيوڊ ڊيش بورڊز جي اشارن سان ڀيٽڻ گهرجي، توهان کي اهو نه وسارڻ گهرجي ته سسٽم منفرد ڪلائنٽ/فنلز وغيره جي ڳڻپ لاءِ پنهنجو طريقو استعمال ڪري ٿو، ۽ اهو ڪرڻ کان اڳ، توهان کي ضرور پڙهڻ گهرجي ايمپليٽيوڊ دستاويزن.

توهان جي توجه لاء مهرباني! ھاڻي توھان اپلوڊ ڪري سگھوٿا خام ايونٽ ڊيٽا Amplitude ۾ ۽ ان کي مڪمل طور تي پنھنجي ڪم ۾ استعمال ڪريو.

مڪمل اسڪرپٽ:

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

جو ذريعو: www.habr.com

تبصرو شامل ڪريو