أقسام الخلية - دراسة حالة Sellkart - استخدام البيانات بشكل استراتيجي
نشرت: 2015-08-14Sellkart هو موقع ويب هندي للتجارة الإلكترونية ومتجر بيع بالتجزئة ومثل أي موقع إلكتروني آخر للتجارة الإلكترونية ، يجب عليه تخزين بيانات المستخدم والمخزون لجميع العناصر التي يبيعها. يستخدم قاعدة بيانات MySQL التي تعد واحدة من خيارات تخزين البيانات الرئيسية. MySQL هي تخزين بيانات آمن وموثوق. ولكن مع نمو Sellkart بشكل أكبر ، بدأ المزيد والمزيد من العملاء في الغوص في بوابة التجارة الإلكترونية هذه. تجمع الآن Sellkart بيانات المستخدم مثل موقعهم ، وسلوكهم ، والسجلات الديموغرافية ، والعناصر المشتراة والعناصر التي تم إرجاعها ، وخيار الدفع الخاص بهم مثل COD ، وبطاقة الائتمان / بطاقة الخصم. يستخدم المحللون هذه البيانات للتنبؤ بقيمة العميل ، وخيارات دفع أفضل ، وتوسيع الأعمال التجارية باستخدام حملات إعلانية أفضل ، وتسهيل العمليات.
لتوضيح كيفية استخدام البيانات التي تم جمعها بشكل استراتيجي ، سننظر هنا في مجموعة بيانات مزيفة للمستهلكين تتكون من أسماء المستخدمين ، ومدينتهم ، ووظائفهم ، والرقم الإجمالي. من العناصر التي تم شراؤها والرقم الإجمالي. من العناصر التي تم إرجاعها بسبب عيوب.
هنا في مجموعة البيانات المزيفة (data.csv) ، لدينا بيانات العملاء الذين اشتروا أكثر من 25 عنصرًا.
الحقول في ملف data.csv
- اسم المستخدم (سلسلة)
- المدينة (سلسلة)
- الاحتلال (سلسلة)
- مشتراة (عدد صحيح)
- تم إرجاعه (عدد صحيح)
تستخدم Sellkart هذه البيانات ، التي تحتوي على أعمدة متعددة ومجموعة بيانات كبيرة إلى حد كبير تزيد عن عدة غيغابايت ، للتنبؤ بالرؤية الرئيسية لنظامها وفهمها ، مثل:
- قيمة عمر العميل
- نجاح المنتج
- الشراء الديموغرافي للمنتج
- مناطق الاهتمام
- تسعير المنتجات في الوقت الحقيقي
- قم ببيع إشراك العملاء
الآن سوف نوضح كيف يتم إجراء تحليل نطاق صغير في Hadoop. الأشياء التي سنكتشفها باستخدام البيانات:
أ) العثور على المستهلك الأعلى على أساس كمية المنتج الذي اشتروه.
الاستخدامات: امنح امتيازات خاصة لأفضل المشترين ، عملاء متوسطي البيع.
ب) إيجاد قطاع العمل الذي يشتري معظم المنتجات.
الاستخدامات: الاحتفاظ بمزيد من المنتجات ذات النطاق الأكثر مبيعًا ، والتوصية بنوع مماثل من المنتجات.
ج) البحث عن المدن التي يتم شراء معظم المنتجات فيها.
الاستخدامات: حسب المنطقة تستهدف المشترين ، مع التركيز على المناطق التي يوجد بها عدد أقل من العملاء ، وتجربة منتجات جديدة في سوق جيدة.
1- نسخ البيانات إلى HDFS.
أ) جعل الدليل في hadoop HDFS
[training@localhost ~]$ hadoop fs -mkdir /user/training/case1
[training@localhost ~]$ hadoop fs -ls
Found 3 items
drwxr-xr-x - training supergroup 0 2015-07-21 16:48 /user/training/case1
-rw-r--r-- 1 training supergroup 44009445 2015-07-20 12:39 /user/training/crime
drwxr-xr-x - training supergroup 0 2015-07-20 14:21 /user/training/csvfile
ب) نسخ الملف لمزيد من الاستخدام
[training@localhost ~]$ hadoop fs -copyFromLocal ~/Desktop/case1/data.csv /user/training/case1
[training@localhost ~]$ hadoop fs -ls /user/training/case1
Found 1 items
-rw-r--r-- 1 training supergroup 2489638 2015-07-21 16:49 /user/training/case1/data.csv
بعد نسخ هذا الملف ، تتم معالجته باستخدام Hive للحصول على نتائج مختلفة.
2. استخدام الخلية لمعالجة البيانات.
أ) إنشاء جدول في الخلية ، والذي سيتم استخدامه لتخزين هذه البيانات.
[training@localhost ~]$ hive
creatHive history file=/tmp/training/hive_job_log_training_201507211652_319213433.txt
hive> create table shopping (username string,city string,occupation string,purchaseditem,int,returneditem int) row format delimited fields
terminated by ',' stored as textfile
OK
Time taken: 2.892 seconds
hive> show tables;
OK
crimes
shopping
Time taken: 0.171 seconds
ب) تحميل الملف في جداول التسوق خلية النحل
Hive>load data inpath '/user/training/case1/data.csv' overwrite into table shopping;
Loading data to table default.shopping
Deleted hdfs://localhost/user/hive/warehouse/shopping
OK
Time taken: 2.798 seconds
ج) معرفة رؤى الجدول.
خلية> وصف التسوق المنسق ؛
نعم
# col_name data_type تعليق اسم المستخدم سلسلة لا شيء سلسلة المدينة لا شيء سلسلة الاحتلال لا شيء شراء عودة تحرير دولي لا شيء # معلومات الجدول التفصيلية قاعدة البيانات: الافتراضي المالك: التدريب وقت الإنشاء: الثلاثاء 21 تموز (يوليو) 16:56:38 بتوقيت الهند القياسي 2015 LastAccessTime: غير معروف وضع الحماية: لا شيء الاحتفاظ: 0 الموقع: hdfs: // localhost / user / hive / Warehouse / shopping نوع الجدول: MANAGED_TABLE معلمات الجدول: العابر_لاستد ال تايم 1437478210 # معلومات التخزين مكتبة SerDe: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe تنسيق الإدخال: org.apache.hadoop.mapred.TextInputFormat تنسيق الإخراج: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat مضغوط: لا عدد الجرافات: -1 أعمدة الحاوية: [] فرز الأعمدة: [] معلمات تنازلي التخزين: فيلد. التسلسل. تنسيق ، الوقت المستغرق: 0.302 ثانية
3. الآن نحن بحاجة لمعرفة كيف يمكن استخدام هذه البيانات.
أ) العثور على الأشخاص الأفضل للعملاء لتقديم المزيد من الخصومات لهم. سنجد أولاً ما هي أعلى كمية مطلوبة ، ثم سنطابق هذه الكمية مع جميع السجلات ونعثر على أفضل العملاء.
hive> select * from shopping limit 5;
OK
Seattle Podiatric doctor 187 5
Detroit Lakes Engineering and natural sciences manager 168 11
Jackson Map editor 187 17
Miami Clinical manager 193 5
Santa Fe Springs Radiographer 207 20
Time taken: 0.335 seconds
hive> select max(purchaseditem) from shopping;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks determined at compile time: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=
In order to set a constant number of reducers:
set mapred.reduce.tasks=
Starting Job = job_201507212155_0001, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201507212155_0001
Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201507212155_0001
2015-07-21 23:16:01,887 Stage-1 map = 0%, reduce = 0%
2015-07-21 23:16:06,988 Stage-1 map = 100%, reduce = 0%
2015-07-21 23:16:16,075 Stage-1 map = 100%, reduce = 100%
Ended Job = job_201507212155_0001
OK
250
Time taken: 18.794 seconds
hive> select * from shopping where purchaseditem = 250;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks is set to 0 since there's no reduce operator
Starting Job = job_201507212155_0002, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201507212155_0002
Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201507212155_0002
2015-07-21 23:18:31,586 Stage-1 map = 0%, reduce = 0%
2015-07-21 23:18:33,598 Stage-1 map = 100%, reduce = 0%
2015-07-21 23:18:34,608 Stage-1 map = 100%, reduce = 100%
Ended Job = job_201507212155_0002
OK
Ablay1993 Seattle Ergonomist 250 7
Ablent71 Sugar Land Professional property manager 250 10
Affew1942 Alquippa Human resources consultant 250 13
Agar1976 Bell Oak Zookeeper 250 5
Akeem Manchester Marine 250 11
Alat1954 Columbus Assembler 250 7
Albertha Baton Rouge Mixing and blending machine operator 250 21
Amelia.Skiles Westfield Mediator 250 0
Amir_Spencer Polk City Epidemiologist 250 11
Angel.Thiel Hamilton Keying machine operator 250 21
Annalise_Langosh East Northport Fitness director 250 24
وهكذا تستمر القائمة ، والآن يمكن للشركة العثور على أفضل العملاء ، ويمكن تنفيذ هذه الخطوة بسهولة على MySQL ، ولكن فقط عندما تكون البيانات صغيرة جدًا عندما تكون البيانات في جيجابت ، يأتي Hadoop لإنقاذ اليوم.
ب) الآن يمكن للمحلل أن يجد أي قطاع عمل هو أفضل عميل له ، أي تحليل وظائف الأشخاص الذين يشترون أكثر من غيرهم ، وذلك لزيادة منتجات هذا القطاع.
hive> select distinct occupation from shopping where purchaseditem = 250;;
Total MapReduce jobs = 1
Launching Job 1 out of 1
Number of reduce tasks not specified. Estimated from input data size: 1
In order to change the average load for a reducer (in bytes):
set hive.exec.reducers.bytes.per.reducer=
In order to limit the maximum number of reducers:
set hive.exec.reducers.max=
In order to set a constant number of reducers:
set mapred.reduce.tasks=
Starting Job = job_201507220045_0006, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201507220045_0006
Kill Command = /usr/lib/hadoop/bin/hadoop job -Dmapred.job.tracker=localhost:8021 -kill job_201507220045_0006
2015-07-22 01:09:52,904 Stage-1 map = 0%, reduce = 0%
2015-07-22 01:09:54,914 Stage-1 map = 100%, reduce = 0%
2015-07-22 01:10:01,968 Stage-1 map = 100%, reduce = 100%
Ended Job = job_201507220045_0006
OK
Account clerk
Accounting clerk
Actuarie
Administrative assistant.
وما إلى ذلك وهلم جرا.
الآن مع العلم أن كاتب الحساب هو أحد أفضل قطاعات العمل التي يشتري الناس منها الأشياء ، يمكنهم زيادة المبيعات في هذا القسم.
4. باستخدام الخنزير
سنستخدم الآن الخنزير لأداء بعض الوظائف الأخرى مثل جمع مجموعات أسماء المستخدمين من مدينة معينة ، وهذه المدن هي أكبر المستهلكين.
أ) تحميل البيانات في الخنزير
grunt> fulldata = load '/user/training/case1/' using PigStorage(',') as
(username:chararray,city:chararray,occupation:chararray, purchaseditem:int,returneditem:int);
grunt>dump fulldata;(username:chararray,city:chararray,occupation:chararray, purchaseditem:int,returneditem:int);
grunt>dump fulldata;
ب) سنقوم الآن بتجميع أسماء المستخدمين لكبار المستهلكين وفقًا للمدن.
لفصل سجلات كبار المستهلكين
Hive>top = filter fulldata by purchaseditem==250;
تجميع أكبر المدن الاستهلاكية الآن للحصول على أسماء المستخدمين كمجموعة.
البيانات مجمعة ولكنها غير مرتبة.
لذلك نحن بحاجة إلى طلبها الآن.
وبهذه الطريقة يتم ترتيب البيانات النهائية.
الآن يمكننا استخدام هذه البيانات. وبالمثل ، يمكننا استخراج المدن التي بها أقل عدد من المستهلكين ، وفي تلك المدن يمكن للشركة تحديد المزيد من الميزانية للحملات الإعلانية والدعاية بحيث يتفاعل المزيد من الأشخاص مع البوابة.
وبالنسبة للمدن والمستهلكين حيث يوجد معدل استهلاك مرتفع ، يمكن للشركة إطلاق منتجات جديدة وتوسيع دائرتها.
إذا كانت لديك أي شكوك أو استفسارات ، اذكرها في مربع التعليقات أدناه.