نسخه جدیدتر این مستندات در دسترس است. برای مشاهده به روزترین نسخه مستندات GreenPlum 6. x از منوی نسخه بالا استفاده کنید.
Apache Hive یک زیرساخت انبارداری داده توزیع شده است. Hive مدیریت مجموعه داده های بزرگ را برای پشتیبانی از قالب های مختلف داده ، از جمله مقدار جدا شده از کاما (. csv) متن ، RCFile ، ORC و پارکت تسهیل می کند.
کانکتور Hive PXF داده های ذخیره شده در یک جدول Hive را می خواند. در این بخش نحوه استفاده از کانکتور Hive PXF توضیح داده شده است.
پیش نیازها
قبل از کار با داده های جدول Hive با استفاده از PXF ، اطمینان حاصل کنید که پیش نیازهای PXF Hadoop را ملاقات کرده اید.
اگر قصد دارید از فشار فیلتر PXF با انواع انتگرال Hive استفاده کنید ، اطمینان حاصل کنید که پارامتر پیکربندی Hive. metastore. integral. jdo. pushdown وجود دارد و در Hive-Site. xml در هر دو خوشه Hadoop و Servers $ تنظیم شده است./default/hive-site. xml. برای اطلاعات بیشتر به به روزرسانی پیکربندی Hadoop مراجعه کنید.
قالب های داده کندو
کانکتور Hive PXF از چندین قالب داده پشتیبانی می کند و پروفایل های زیر را برای دسترسی به این قالب ها تعریف کرده است:
| فرمت فایل | شرح | مشخصات |
| درسی | فایل مسطح با داده های موجود در قالب مقدار مقدار جدا شده از Comma- ، Tab- یا فضا یا نماد JSON. | کندو ، hivetext |
| توالی | فایل مسطح متشکل از جفت های باینری کلید/مقدار. | کندو |
| rcfile | ضبط داده های ستونی متشکل از جفت های باینری کلید/مقدار. نرخ فشرده سازی ردیف بالا. | کندو ، hiverc |
| در حال اورک کردن | داده های ستونی ردیف بهینه شده با بخش های نوار ، پاورقی و ارسال نامه ؛اندازه داده ها را کاهش می دهد. | کندو ، Hiveorc ، HiveVectorizedOrc |
| پارکت | نمایش داده های ستونی فشرده. | کندو |
توجه: پروفایل Hive از تمام قالب های ذخیره سازی فایل پشتیبانی می کند. از نمایه بهینه Hive* برای نوع فرمت فایل اساسی استفاده می کند.
نقشه برداری نوع داده
کانکتور Hive PXF از انواع داده های ابتدایی و پیچیده پشتیبانی می کند.
انواع داده های اولیه
برای نشان دادن داده های Hive در پایگاه داده GreenPlum ، مقادیر داده نقشه که از نوع داده بدوی به ستون های پایگاه داده GreenPlum از همان نوع استفاده می کنند.
در جدول زیر قوانین نقشه برداری خارجی برای انواع ابتدایی کندو خلاصه شده است.
| نوع داده کندو | نوع داده GreenPlum |
| وابسته به بولی | غوغا |
| در نظر گرفتن | int4 |
| کوچک | int2 int2 |
| کوچک | int2 int2 |
| با ابله | int8 |
| شناور | float4 |
| دو برابر | float8 |
| رشته | متن |
| دودویی | دوتایی |
| زمان سنج | زمان سنج |
توجه: مشخصات HiveVectorizedOrc از نوع داده Timestamp پشتیبانی نمی کند.
انواع داده های پیچیده
Hive از انواع داده های پیچیده از جمله آرایه ، ساختار ، نقشه و اتحادیه پشتیبانی می کند. PXF هر یک از این انواع پیچیده را به متن نقشه می کند. می توانید توابع پایگاه داده GreenPlum یا کد برنامه را برای استخراج اجزای فرعی این انواع داده های پیچیده ایجاد کنید.
نمونه هایی با استفاده از انواع داده های پیچیده با پروفایل های Hive و Hiveorc بعداً در این موضوع ارائه شده است.
توجه: مشخصات HiveVectorizedOrc از انواع پیچیده پشتیبانی نمی کند.
مجموعه داده های نمونه
نمونه های ارائه شده در این موضوع بر روی یک مجموعه داده مشترک عمل می کنند. این مجموعه داده ساده یک عملیات فروش خرده فروشی را مدل می کند و شامل زمینه هایی با نام و انواع داده های زیر است:
| نام ستون | نوع داده |
| محل | متن |
| ماه | متن |
| number_of_orders | عدد صحیح |
| کل_ | دو برابر |
مجموعه داده های نمونه را برای استفاده آماده کنید:
ابتدا یک فایل متنی ایجاد کنید:
داده های زیر را به pxf_hive_datafile. txt اضافه کنید. به استفاده از کاما توجه کنید تا چهار مقدار میدانی را جدا کنید:
از مسیر pxf_hive_datafile. txt توجه داشته باشید. شما در تمرینات بعدی از آن استفاده خواهید کرد.
خط فرمان کندو
خط فرمان Hive یک زیر سیستم شبیه به PSQL است. برای شروع خط فرمان Hive:
پایگاه داده پیش فرض Hive به طور پیش فرض نامگذاری شده است.
مثال: ایجاد یک جدول کندو
برای افشای مجموعه داده های نمونه ، یک جدول کندو ایجاد کنید.
یک جدول Hive به نام Sales_info در پایگاه داده پیش فرض ایجاد کنید:
- ذخیره شده به عنوان زیر بند TextFile به Hive دستور می دهد تا جدول را در قالب TextFile (پیش فرض) ایجاد کند. قالب TextFile Hive از مقادیر جدا شده از Comma- ، Tab- و فضا پشتیبانی می کند ، و همچنین داده های مشخص شده در نماد JSON.
- زمینه های محدود شده توسط زیر بند ، تعیین کننده میدان را در یک رکورد داده (خط) مشخص می کند. تعیین کننده جدول جدول sales_info یک کاما (،) است.
پرونده داده نمونه PXF_HIVE_DATAFILE. TXT را در جدول Sales_info که تازه ایجاد کرده اید بارگیری کنید:
به عنوان مثال بعداً در این بخش ، مستقیماً از طریق PXF به جدول Hive sales_info دسترسی خواهید داشت. همچنین داده های Sales_Info را در جداول سایر انواع قالب های Hive File قرار می دهید و از PXF برای دسترسی مستقیم به آنها استفاده می کنید.
یک پرس و جو در Sales_info انجام دهید تا تأیید کنید که داده ها را با موفقیت بارگذاری کرده اید:
تعیین محل HDFS یک میز کندو
در صورت نیاز به شناسایی محل فایل HDFS یک جدول مدیریت شده Hive ، آن را با استفاده از مسیر فایل HDFS خود ارجاع دهید. با استفاده از دستور توصیف می توانید مکان جدول Hive را در HDFS تعیین کنید. مثلا:
پرس و جو داده های کندو خارجی
برای دسترسی به داده های جدول Hive می توانید یک جدول خارجی Greenplum Database ایجاد کنید. همانطور که قبلا توضیح داده شد، کانکتور PXF Hive پروفایل های خاصی را برای پشتیبانی از فرمت های مختلف فایل تعریف می کند. این پروفایل ها Hive , HiveText , HiveRC , HiveORC و HiveVectorizedORC نام دارند .
پروفایل های HiveText و HiveRC به ترتیب برای فرمت های متن و RCFile بهینه شده اند. نمایه های HiveORC و HiveVectorizedORC برای فرمت های فایل ORC بهینه شده اند. نمایه Hive برای همه انواع ذخیره سازی فایل بهینه شده است. زمانی که جدول Hive زیرین از چند پارتیشن با فرمت های فایل مختلف تشکیل شده است، می توانید از نمایه Hive استفاده کنید.
برای ایجاد یک جدول خارجی پایگاه داده Greenplum که به جدول Hive اشاره می کند، از دستور زیر استفاده کنید:
کلمات کلیدی و مقادیر خاص رابط Hive مورد استفاده در فراخوانی CREATE EXTERNAL TABLE در زیر توضیح داده شده است.
| کلمه کلیدی | ارزش |
| | نام پایگاه داده Hive. اگر حذف شود، به طور پیش فرض به پایگاه داده Hive با نام پیش فرض می شود. |
| | نام جدول Hive. |
| مشخصات | کلمه کلیدی PROFILE باید یکی از مقادیر Hive , HiveText , HiveRC , HiveORC یا HiveVectorizedORC را مشخص کند. |
| سرور = | پیکربندی سرور نامگذاری شده که PXF برای دسترسی به داده ها استفاده می کند. اختیاری؛در صورتی که PXF مشخص نشده باشد از سرور پیش فرض استفاده می کند. |
| FORMAT (نمایه های Hive، HiveORC، و HiveVectorizedORC) | عبارت FORMAT باید «CUSTOM» را مشخص کند. قالب CUSTOM به قالب کننده داخلی pxfwritable_import نیاز دارد. |
| FORMAT (نمایه های HiveText و HiveRC) | عبارت FORMAT باید TEXT را مشخص کند. جداکننده فیلد تک کاراکتر ascii را در گزینه قالب بندی delimiter='' مشخص کنید. |
دسترسی به جداول Hive با فرمت TextFile
می توانید از نمایه های Hive و HiveText برای دسترسی به داده های جدول Hive ذخیره شده در قالب TextFile استفاده کنید.
مثال: استفاده از نمایه Hive
از نمایه Hive برای ایجاد یک جدول خارجی پایگاه داده Greenplum قابل خواندن استفاده کنید که به جدول قالب فایل متنی Hive sales_info که قبلاً ایجاد کرده اید ارجاع می دهد.
جدول خارجی ایجاد کنید:
استعلام جدول:
مثال: استفاده از نمایه HiveText
از نمایه PXF HiveText برای ایجاد یک جدول خارجی پایگاه داده Greenplum قابل خواندن از جدول قالب فایل متنی Hive sales_info که قبلاً ایجاد کردید استفاده کنید.
جدول خارجی ایجاد کنید:
توجه داشته باشید که مقدار جداکننده زیرمجموعه FORMAT به عنوان کاراکتر کاما تک ascii ',' مشخص شده است. E از شخصیت فرار می کند.
پرس و جو از جدول خارجی:
دسترسی به جداول Hive با فرمت RCFile
قالب جدول RCFile Hive برای داده های قالب بندی شده به شکل ستونی ردیفی استفاده می شود. نمایه PXF HiveRC دسترسی به داده های RCFile را فراهم می کند.
مثال: با استفاده از نمایه Hiverc
از پروفایل Hiverc برای پرس و جو از داده های با فرمت RCFile در یک جدول Hive استفاده کنید.
خط فرمان Hive را شروع کنید و یک جدول Hive ذخیره شده در قالب RCFile ایجاد کنید:
داده ها را از جدول sales_info در sales_info_rcfile وارد کنید:
کپی از مجموعه داده های نمونه اکنون در جدول Hive sales_info_rcfile در قالب RCFile ذخیره شده است.
جدول Hive sales_info_rcfile را پرس و جو کنید تا تأیید کنید که داده ها به درستی بارگذاری شده اند:
از نمایه PXF HIVERC برای ایجاد یک جدول خارجی قابل خواندن GreenPlum استفاده کنید که به جدول Hive sales_info_rcfile که در مراحل قبلی ایجاد کرده اید اشاره دارد. مثلا:
پرس و جو از جدول خارجی:
دسترسی به میزهای کندو با فرمت ORC
فرمت پرونده بهینه شده Row Columnar (ORC) یک فرمت پرونده ستونی است که روشی بسیار کارآمد برای ذخیره و دسترسی به داده های HDFS فراهم می کند. فرمت ORC از نظر فشرده سازی و عملکرد ، پیشرفت هایی نسبت به قالب های متن و RCFile ارائه می دهد. PXF از ORC نسخه 1. 2. 1 پشتیبانی می کند.
ORC آگاه از نوع است و به طور خاص برای بار کاری Hadoop طراحی شده است. پرونده های ORC هر دو نوع و اطلاعات رمزگذاری را برای داده های موجود در پرونده ذخیره می کنند. تمام ستون های موجود در یک گروه واحد از داده های ردیف (همچنین به عنوان Stripe شناخته می شوند) در پرونده های فرمت ORC روی دیسک ذخیره می شوند. ماهیت ستونی از نوع فرمت ORC ، پیش بینی خواندن را امکان پذیر می کند و به جلوگیری از دسترسی به ستون های غیر ضروری در طی یک پرس و جو کمک می کند.
ORC همچنین از فشار محمول با شاخص های داخلی در سطح پرونده ، نوار و ردیف پشتیبانی می کند و عملکرد فیلتر را به مرحله بارگیری داده منتقل می کند.
برای کسب اطلاعات دقیق در مورد قالب پرونده ORC ، به وب سایت های ORC Apache Orc و Apache Hive Languagemanual مراجعه کنید.
پروفایل هایی که از قالب پرونده ORC پشتیبانی می کنند
هنگام انتخاب نمایه پشتیبانی ORC ، موارد زیر را در نظر بگیرید:
مشخصات Hiveorc:
- یک ردیف واحد از داده ها را همزمان می خواند.
- از طرح ستون پشتیبانی می کند.
- از انواع پیچیده پشتیبانی می کند. می توانید به جداول کندو متشکل از انواع آرایه ، نقشه ، ساختار و انواع داده های اتحادیه دسترسی پیدا کنید. PXF هر یک از این انواع پیچیده را به متن سریال می کند.
مشخصات HiveVectorizedOrc:
- حداکثر 1024 ردیف داده را به طور همزمان می خواند.
- از طرح ستون پشتیبانی نمی کند.
- از انواع پیچیده یا نوع داده Timestamp پشتیبانی نمی کند.
مثال: با استفاده از نمایه Hiveorc
در مثال زیر ، یک جدول Hive که در قالب ORC ذخیره شده است ایجاد می کنید و از پروفایل Hiveorc برای پرس و جو این جدول Hive استفاده می کنید.
یک جدول Hive با فرمت فایل ORC ایجاد کنید:
داده ها را از جدول sales_info در sales_info_orc وارد کنید:
کپی از مجموعه داده های نمونه اکنون در قالب ORC در sales_info_orc ذخیره شده است.
یک پرس و جو Hive در sales_info_ORC انجام دهید تا بررسی کنید که داده ها با موفقیت بارگیری شده اند:
زیرسیستم psql را راه اندازی کنید و زمان بندی را روشن کنید:
از نمایه PXF HiveORC برای ایجاد یک جدول خارجی پایگاه داده Greenplum استفاده کنید که به جدول Hive با نام sales_info_ORC که در مرحله 1 ایجاد کردید ارجاع می دهد. عبارت FORMAT باید «CUSTOM» را مشخص کند. قالب HiveORC CUSTOM فقط از قالب کننده داخلی 'pxfwritable_import' پشتیبانی می کند.
پرس و جو از جدول خارجی:
مثال: استفاده از نمایه HiveVectorizedORC
در مثال زیر، از نمایه HiveVectorizedORC برای پرس و جو از جدول sales_info_ORC Hive که در مثال قبلی ایجاد کردید استفاده خواهید کرد.
زیر سیستم psql را راه اندازی کنید:
از نمایه PXF HiveVectorizedORC برای ایجاد جدول خارجی پایگاه داده Greenplum قابل خواندن استفاده کنید که به جدول Hive با نام sales_info_ORC که در مرحله 1 مثال قبلی ایجاد کردید ارجاع می دهد. عبارت FORMAT باید «CUSTOM» را مشخص کند. قالب HiveVectorizedORC CUSTOM فقط از قالب کننده داخلی 'pxfwritable_import' پشتیبانی می کند.
پرس و جو از جدول خارجی:
دسترسی به جداول کندوی با فرمت پارکت
نمایه PXF Hive از جداول Hive بدون پارتیشن و پارتیشن بندی شده پشتیبانی می کند که از فرمت ذخیره سازی Parquet استفاده می کنند. ستون های جدول را با استفاده از انواع داده های مشابه Greenplum Database ترسیم کنید. به عنوان مثال، اگر یک جدول Hive در طرح پیش فرض با استفاده از:
جدول خارجی پایگاه داده Greenplum را تعریف کنید:
و جدول را جویا شوید:
کار با انواع داده های پیچیده
مثال: استفاده از نمایه Hive با انواع داده های پیچیده
این مثال از نمایه Hive و انواع پیچیده آرایه و نقشه، به ویژه آرایه ای از اعداد صحیح و نقشه جفت کلید/مقدار رشته ای استفاده می کند.
طرح داده برای این مثال شامل فیلدهایی با نام ها و انواع داده های زیر است:
| نام ستون | نوع داده |
| فهرست مطالب | در نظر گرفتن |
| نام | رشته |
| میانی | آرایه ای از اعداد صحیح |
| نقشه نقشه | نقشه جفت کلید رشته و مقدار |
هنگامی که یک فیلد آرایه را در جدول Hive مشخص می کنید، باید پایان دهنده را برای هر آیتم در مجموعه شناسایی کنید. به طور مشابه، شما باید کاراکتر خاتمه کلید نقشه را نیز مشخص کنید.
یک فایل متنی ایجاد کنید که مجموعه داده را از آن بارگیری کنید:
متن زیر را به pxf_hive_complex. txt اضافه کنید. این داده از کاما برای جدا کردن مقادیر فیلد، نماد درصد % برای جدا کردن موارد مجموعه و از : برای پایان دادن به مقادیر کلید نقشه استفاده می کند:
یک جدول Hive برای نمایش این داده ها ایجاد کنید:
- FIELDS TERMINATED BY یک کاما را به عنوان پایان دهنده فیلد مشخص می کند.
- زیرشاخه COLLECTION ITEMS TERMINATED BY علامت درصد را به عنوان پایانگر اقلام مجموعه (آیتم آرایه، جفت کلید/مقدار نقشه) مشخص می کند.
- کلیدهای نقشه خاتمه یافته توسط یک روده بزرگ به عنوان ترمینال کلیدهای نقشه مشخص می شوند.
پرونده داده نمونه PXF_HIVE_COMPLEX. TXT را در جدول جدول_complextypes که تازه ایجاد کرده اید بارگیری کنید:
یک پرس و جو را در جدول Hive Table_complextypes انجام دهید تا تأیید کنید که داده ها با موفقیت بارگذاری شده اند:
از نمایه Hive PXF برای ایجاد یک جدول خارجی قابل خواندن GreenPlum استفاده کنید که به جدول Hive با نام Table_compleXtypes اشاره می کند:
توجه کنید که آرایه عدد صحیح و انواع پیچیده نقشه به متن نوع داده پایگاه داده GreenPlum نقشه برداری می شوند.
پرس و جو از جدول خارجی:
intarray و propmap هر یک به عنوان رشته های متن سریال می شوند.
مثال: با استفاده از پروفایل Hiveorc با انواع داده های پیچیده
در مثال زیر ، یک جدول Hive ذخیره شده با فرمت ORC ایجاد و جمع می کنید. شما از پروفایل Hiveorc برای پرس و جو از انواع پیچیده در این جدول Hive استفاده خواهید کرد.
یک جدول Hive با فرمت ذخیره سازی ORC ایجاد کنید:
داده ها را از جدول جدول_complextypes که در مثال قبلی ایجاد کرده اید در جدول_complextypes_orc وارد کنید:
کپی از مجموعه داده های نمونه اکنون در قالب ORC در Table_CompleXtypes_Orc ذخیره شده است.
یک پرس و جو کندو را در جدول_complextypes_orc انجام دهید تا تأیید کنید که داده ها با موفقیت بارگذاری شده اند:
زیر سیستم psql را راه اندازی کنید:
از نمایه PXF Hiveorc استفاده کنید تا یک جدول خارجی پایگاه داده GreenPlum قابل خواندن از جدول Hive به نام Table_CompleXTYPES_ORC که در مرحله 1 ایجاد کرده اید ایجاد کنید. بند فرمت باید "سفارشی" را مشخص کند. فرمت سفارشی Hiveorc فقط از فرمت ساخته شده در "PXFWRITEL_IMPORT" پشتیبانی می کند.
توجه کنید که آرایه عدد صحیح و انواع پیچیده نقشه دوباره به متن نوع داده پایگاه داده GreenPlum ترسیم می شوند.
پرس و جو از جدول خارجی:
Intarray و PropMap دوباره به عنوان رشته های متن سریال می شوند.
فشار فیلتر پارتیشن
کانکتور Hive PXF از هرس پارتیشن بندی Hive و ساختار فهرست پارتیشن Hive پشتیبانی می کند. این امکان محرومیت از پارتیشن را در پرونده های HDFS انتخاب شده شامل یک جدول Hive فراهم می کند. برای استفاده از ویژگی فیلتر پارتیشن برای کاهش ترافیک شبکه و I/O ، یک پرس و جو را روی یک جدول خارجی PXF با استفاده از بند جایی که به یک ستون پارتیشن خاص در یک جدول کندو پارتیشن اشاره دارد ، اجرا کنید.
پشتیبانی از فیلتر پارتیشن Connector Hive Connector برای رشته های Hive و انواع انتگرال در زیر شرح داده شده است:
- اپراتورهای رابطه ای = ،<, ,>= ، و<>در انواع رشته ها پشتیبانی می شوند.
- اپراتورهای رابطه ای = و<>در انواع انتگرال پشتیبانی می شوند (برای استفاده از فیلتر پارتیشن با انواع انتگرال Hive ، شما باید پیکربندی Hive را همانطور که در پیش نیازها توضیح داده شده است به روز کنید).
- اپراتورهای منطقی و یا در هنگام استفاده از اپراتورهای رابطه ای که در بالا ذکر شد پشتیبانی می شوند.
- اپراتور مانند رشته پشتیبانی نمی شود.
برای استفاده از فشار فیلتر PRXF Partition Pushdown ، باید نام فیلد پارتیشن Hive و PXF یکسان باشد. در غیر این صورت ، PXF فیلتر پارتیشن را نادیده می گیرد و فیلتر در سمت پایگاه داده GreenPlum انجام می شود و بر عملکرد تأثیر می گذارد.
PXF Connector Connector فقط در ستون های پارتیشن فیلتر می شود ، نه در سایر ویژگی های جدول. علاوه بر این ، فشار فیلتر فقط برای آن دسته از داده ها و اپراتورهای مشخص شده در بالا پشتیبانی می شود.
فشار فیلتر PXF به طور پیش فرض فعال است. شما پیکربندی فیلتر PXF را همانطور که در مورد فشار فیلتر توضیح داده شده است پیکربندی می کنید.
مثال: استفاده از نمایه Hive برای دسترسی به داده های همگن پارتیشن بندی شده
در این مثال ، شما از نمایه Hive برای پرس و جو یک جدول Hive به نام Sales_Part استفاده می کنید که در قسمت های تحویل_ستات و تحویل_City پارتیشن می کنید. سپس یک جدول خارجی پایگاه داده GreenPlum برای پرس و جو Sales_Part ایجاد می کنید. این روش شامل نمونه های خاصی است که نشان دهنده فشار فیلتر است.
یک جدول Hive به نام sales_part با دو ستون پارتیشن ، تحویل_ستات و تحویل_کیت ایجاد کنید:
داده ها را در این جدول Hive بارگذاری کرده و برخی از پارتیشن ها را اضافه کنید:
جدول Sales_Part را پرس و جو کنید:
یک عبارت * انتخاب * در یک جدول پارتیشن Hive ، قسمت های پارتیشن را در انتهای رکورد نشان می دهد.
ساختار دایرکتوری Hive/HDFS را برای جدول Sales_Part بررسی کنید:
یک جدول خارجی PXF ایجاد کنید تا جدول Hive Partitioned Sales_Part را بخوانید. برای استفاده از فیلتر پارتیشن به پایین ، زمینه های مربوط به قسمت های پارتیشن Hive را در انتهای لیست ویژگی های جدول ایجاد کنید.
استعلام جدول:
یک پرس و جو دیگر (بدون فشار) را در PXF_SALES_PART انجام دهید تا سوابق را برگردانید که در آن تحویل sacramento و مورد_ نام مکعب است:
پرس و جو ، پارتیشن تحویل sacramento را فیلتر می کند. فیلتر روی مورد_ نام پایین نمی آید ، زیرا یک ستون پارتیشن نیست. پس از انتقال تمام داده های موجود در پارتیشن ساکرامنتو برای پردازش ، در سمت پایگاه داده GreenPlum انجام می شود.
پرس و جو (با فشار فشار) برای همه سوابق جایی که تحویل_ستات کالیفرنیا است:
این پرس و جو تمام داده های موجود در پارتیشن تحویل کالیفرنیا را بدون در نظر گرفتن شهر می خواند.
مثال: با استفاده از نمایه Hive برای دسترسی به داده های ناهمگن تقسیم شده
می توانید از پروفایل Hive PXF با هر نوع ذخیره سازی فایل Hive استفاده کنید. با مشخصات Hive ، می توانید به داده های قالب ناهمگن در یک جدول Hive واحد دسترسی پیدا کنید که در آن ممکن است پارتیشن ها در قالب های مختلف فایل ذخیره شوند.
در این مثال ، شما یک جدول خارجی پارتیشن ایجاد می کنید. جدول از پرونده های داده HDFS مرتبط با Sales_info (قالب متن) و Sales_info_RCFile (فرمت RC) جداول کندو که در تمرینات قبلی ایجاد کرده اید تشکیل شده است. شما داده ها را به صورت سال پارتیشن می کنید و داده ها را از sales_info به سال 2013 اختصاص می دهید ، و داده های sales_info_rcfile به سال 2016. مشخصات کندو برای پرس و جو از این جدول خارجی پارتیشن شده.
یک جدول خارجی Hive به نام Hive_Multiformpart ایجاد کنید که توسط یک رشته رشته ای به نام سال تقسیم شده است:
جداول sales_info و sales_info_rcfile را توصیف کنید ، با توجه به مکان فایل HDFS برای هر جدول:
برای مکان های فایل HDFS مرتبط با هر یک از جداول sales_info و sales_info_rcfile ، پارتیشن هایی را در جدول HIVE_MULTIFORMPART ایجاد کنید:
صریحاً قالب پرونده پارتیشن مرتبط با جدول sales_info_rcfile را مشخص کنید:
شما نیازی به قالب پرونده پارتیشن مرتبط با جدول sales_info ندارید ، زیرا فرمت TextFile به طور پیش فرض است.
جدول Hive_Multiformpart را پرس و جو کنید:
پارتیشن های تعریف شده برای جدول Hive_Multiformpart و Hive Exit را نشان دهید:
زیر سیستم psql را راه اندازی کنید:
برای ایجاد یک جدول خارجی پایگاه داده GreenPlum قابل خواندن که به جدول خارجی Hive Hive_MultiformPart که در مراحل قبلی ایجاد کرده اید ، از نمایه Hive PXF استفاده کنید:
جدول خارجی PXF را پرس و جو کنید:
برای محاسبه تعداد کل سفارشات سال 2013 ، یک پرس و جو دوم انجام دهید:
با استفاده از PXF با پارتیشن های پیش فرض Hive
این موضوع تفاوت در نتایج پرس و جو بین نمایش داده های کندو و PXF را هنگام استفاده از جداول کندو از یک پارتیشن پیش فرض توصیف می کند. هنگامی که پارتیشن بندی پویا در Hive فعال می شود ، یک جدول پارتیشن ممکن است داده ها را در یک پارتیشن پیش فرض ذخیره کند. Hive هنگامی که مقدار یک ستون پارتیشن بندی با نوع تعریف شده ستون مطابقت نداشته باشد ، یک پارتیشن پیش فرض ایجاد می کند (برای مثال ، وقتی از مقدار تهی برای هر ستون پارتیشن بندی استفاده می شود). در Hive ، هر پرس و جو که شامل یک فیلتر در یک ستون پارتیشن باشد ، داده هایی را که در پارتیشن پیش فرض جدول ذخیره می شود ، حذف نمی کند.
مشابه Hive ، PXF ستون های پارتیشن بندی یک جدول را به عنوان ستون هایی که به انتهای جدول اضافه شده اند ، نشان می دهد. با این حال ، PXF هر مقدار ستون را در یک پارتیشن پیش فرض به یک مقدار تهی ترجمه می کند. این بدان معنی است که یک پرس و جو پایگاه داده GreenPlum که شامل یک فیلتر تهی در یک ستون پارتیشن بندی است می تواند نتایج متفاوتی نسبت به همان پرس و جو کندو بازگرداند.
یک جدول پارتیشن Hive را در نظر بگیرید که با بیانیه ایجاد شده است:
جدول با پنج ردیف بارگیری شده است که حاوی داده های زیر است:
درج ردیف 4 یک پارتیشن پیش فرض کندو ایجاد می کند ، زیرا ستون Partition XDate حاوی یک مقدار تهی است.
در Hive ، هر پرس و جو که در ستون پارتیشن فیلتر می شود ، داده ها را در پارتیشن پیش فرض حذف می کند. به عنوان مثال ، پرس و جو زیر هیچ ردیف برمی گردد:
با این حال ، اگر این جدول Hive را به یک جدول خارجی PXF در پایگاه داده GreenPlum نقشه برداری کنید ، تمام مقادیر پارتیشن پیش فرض به مقادیر تهی واقعی ترجمه می شوند. در پایگاه داده GreenPlum ، اجرای همان پرس و جو در برابر جدول خارجی PXF ردیف 4 را به عنوان نتیجه بازگرداند ، زیرا فیلتر با مقدار تهی مطابقت دارد.
این رفتار را در خاطر داشته باشید وقتی اجرا می کنید ، نمایش داده شدگان تهی در جداول پارتیشن شده است.
نرم افزار مفید تریدر...
ما را در سایت نرم افزار مفید تریدر دنبال می کنید
برچسب :
نویسنده : احمد شاملو
بازدید : 50
تاريخ : چهارشنبه
23 فروردين
1402 ساعت: 14:06