API හරහා විස්තාරය දත්ත ලබා ගැනීම

හැඳින්වීම

විස්තාරය එහි පහසු සිදුවීම් සැකසුම සහ දෘශ්‍යකරණ නම්‍යශීලීභාවය හේතුවෙන් නිෂ්පාදන විශ්ලේෂණ මෙවලමක් ලෙස ඉතා හොඳින් ඔප්පු වී ඇත. තවද බොහෝ විට ඔබේම ආරෝපණ ආකෘතියක්, පොකුරු භාවිතා කරන්නන් සැකසීමට හෝ වෙනත් BI පද්ධතියක උපකරණ පුවරුවක් සෑදීමට අවශ්‍ය වේ. එවැනි වංචාවක් සිදු කළ හැක්කේ Amplitude වෙතින් වන raw Event දත්ත සමඟ පමණි. අවම ක්‍රමලේඛන දැනුමකින් මෙම දත්ත ලබා ගන්නේ කෙසේද යන්න මෙම ලිපියෙන් ඔබට කියනු ඇත.

පූර්වාවශ්යතාවයන්

  1. සිදුවීම් දැනටමත් නිවැරදිව වින්‍යාස කර ඇති සහ ඒවා පිළිබඳ සංඛ්‍යාලේඛන එකතු කර ඇති විස්තාරයේ ව්‍යාපෘතියක්
  2. Python ස්ථාපනය කර ඇත (මම 3.8.3 අනුවාදයේ වැඩ කරමි), විභව පාඨකයාට දැනටමත් අවම වශයෙන් මූලික මට්ටමකින් වැඩ කළ හැක.

උපදෙස්

පියවර 1. API-යතුර සහ රහස් යතුර ලබා ගැනීම

දත්ත උඩුගත කිරීම සඳහා, ඔබ මුලින්ම API යතුරක් සහ රහස් යතුරක් ලබා ගත යුතුය.

පහත දැක්වෙන මාර්ගය අනුගමනය කිරීමෙන් ඔබට ඒවා සොයාගත හැකිය:

  1. "දත්ත කළමනාකරණය කරන්න" (තිරයේ පහළ වම්පස පිහිටා ඇත)
  2. දත්ත බාගත කරනු ලබන අපේක්ෂිත ව්‍යාපෘතිය තෝරා එයට යන්න
  3. විවෘත වන ව්යාපෘති මෙනුවෙහි, "ව්යාපෘති සැකසුම්" තෝරන්න.
  4. අපි API-යතුර සහ රහස්-යතුරු තන්තු සොයාගෙන, ඒවා ආරක්ෂිත ස්ථානයක පිටපත් කර සුරකින්න.

ක්ලික් කිරීමකින් තොරව, ඔබට සබැඳිය අනුගමනය කළ හැකිය, එය පොදුවේ පෙනෙන්නේ:
analytics.amplitude.com/$$$$$$$/manage/project/******/settings,
$$$$$$ යනු ඔබේ සංවිධානයේ විස්තාරය පිවිසුම වන අතර, ****** යනු ව්‍යාපෘති අංකයයි

පියවර 2: අවශ්‍ය පුස්තකාල තිබේදැයි පරීක්ෂා කිරීම

ශුභාරංචිය නම්, ඔබ දැනටමත් පාහේ මෙම පුස්තකාල පෙරනිමියෙන් ස්ථාපනය කර හෝ බාගත කර ඇති නමුත්, ඔබ පරීක්ෂා කළ යුතුය. ලියන අවස්ථාවේදී මා භාවිතා කළ පුස්තකාලවල සම්පූර්ණ ලැයිස්තුව (වරහන් තුළ අනුවාද සුදුසු තැන්වල දක්වා ඇත):

  1. ඉල්ලීම් (2.10.0) - දත්ත ලබාගැනීම සඳහා api හරහා ඉල්ලීමක් යැවීම
  2. pandas (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. විස්තාරය වෙත ඉල්ලීමක් ඉදිරිපත් කිරීම

ස්ක්‍රිප්ට් ක්‍රියාත්මක කිරීමේ ආරම්භය හඳුනාගෙන එය a විචල්‍යයට ලියන්නෙමු.

ආරම්භක දිනය සහ අවසන් දිනය දත්ත බාගත කිරීමේ කාලසීමාව සඳහා වගකිව යුතු අතර විස්තාරය සේවාදායකය වෙත යවන ලද ඉල්ලීමේ පෙළ තුළට ගොඩනගා ඇත; දිනයට අමතරව, ඉල්ලීමෙහි '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. ඔබේ පරිගණකයේ ඇති ෆෝල්ඩරයකින් ගොනු ලබා ගැනීම

ගොනු උකහා ගැනීමට උදව් කිරීමට zipfile පුස්තකාලය ක්‍රියාත්මක වේ. තුන්වන පේළියේ, ප්‍රවේශම් වන්න සහ ඔබට උකහා ගැනීමට වඩාත් පහසු ඔබේ මාර්ගය ලියන්න.

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

පියවර 3.5. json පරිවර්තනය

ලේඛනාගාරයෙන් ගොනු උපුටා ගැනීමෙන් පසු, ඔබ json ගොනු .gz ආකෘතියට පරිවර්තනය කර වැඩිදුර වැඩ සඳහා දත්ත රාමුවකට ලිවිය යුතුය.

මෙහිදී ඔබට මාර්ගය නැවත ඔබේම මාර්ගයට වෙනස් කිරීමට අවශ්‍ය බව කරුණාවෙන් සලකන්න, 000000 වෙනුවට ඔබේ ව්‍යාපෘති අංකය Amplitude වෙතින් ලියන්න (නැතහොත් සංරක්ෂිතය උපුටා ගත් මාර්ගය අතින් විවෘත කර ඇතුළත ඇති ෆෝල්ඩරයේ නම බලන්න).

පිළිවෙළින්:

විචල්‍යයකට ඩිරෙක්ටරියක් ලිවීම, ඩිරෙක්ටරියකින් ගොනු ලැයිස්තුවක් ලබා ගැනීම, හිස් දත්ත රාමුවක් සෑදීම, tqdm නිවැරදිව ක්‍රියා කිරීමට time.sleep(1), loop එක ඇතුලේ අපි .gz ගොනු විවෘත කර json කියවීමට සහ පිරවීම සඳහා pandas භාවිතා කරමු. ලබා දී ඇති දත්ත රාමුව.

# Преобразование 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. එක්සෙල් හි දත්ත රාමුව ලිවීම

එක්සෙල් වෙත උඩුගත කිරීම මෙහි උදාහරණයක් පමණි. බොහෝ අවස්ථාවලදී, python තුළ ඇති දත්ත රාමුව සමඟ වැඩ කිරීම හෝ දත්ත ගබඩා කිරීම වඩාත් පහසු වේ.

ඔබට මෙහි දත්ත උඩුගත කිරීමේ මාර්ගය ඔබේම මාර්ගයෙන් ප්‍රතිස්ථාපනය කිරීමටද සිදුවේ.

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

පියවර 3.7. අපි ස්ක්‍රිප්ට් එකේ ධාවන කාලය ගණන් කරනවා

b විචල්‍යයේ වත්මන් කාලය සටහන් කිරීම, වෙනස සහ මිනිත්තු ගණන ගණනය කිරීම, සම්පූර්ණ මිනිත්තු ප්‍රදර්ශනය කිරීම. මෙය අවසාන පියවරයි.

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

නිගමනය

දත්ත ලියා ඇති amplitude_dataframe විචල්‍යය ඇමතීමෙන් ඔබට වගුව අමතා එය සමඟ වැඩ කිරීම ආරම්භ කළ හැකිය. එහි තීරු 50 ක් පමණ ඇත, ඒවායින් 80% ක්ම ඔබ භාවිතා කරනු ඇත: event_type - Event name, events_properties - events parameters, events_time - event time, uuid - client id, user_properties - client parameters, ඔබ මුලින්ම ඔවුන් සමඟ වැඩ කිරීම ආරම්භ කළ යුතුය. . ඔබේම ගණනය කිරීම් වල සංඛ්‍යා විස්තාරය උපකරණ පුවරු වල දර්ශක සමඟ සංසන්දනය කිරීමේදී, අද්විතීය සේවාදායකයින් / පුනීල ආදිය ගණනය කිරීම සඳහා පද්ධතිය තමන්ගේම ක්‍රමවේදයක් භාවිතා කරන බව ඔබ අමතක නොකළ යුතුය, මෙය කිරීමට පෙර, ඔබ අනිවාර්යයෙන්ම විස්තාරය ප්‍රලේඛනය කියවිය යුතුය.

ඔබගේ අවදානය පිළිබඳ ස්තූතියි! දැන් ඔබට raw Event දත්ත 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

අදහස් එක් කරන්න