{"id":478342,"date":"2023-08-09T09:31:27","date_gmt":"2023-08-09T09:31:27","guid":{"rendered":""},"modified":"2023-09-05T11:16:35","modified_gmt":"2023-09-05T11:16:35","slug":"parquet","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/vn\/wiki\/parquet\/","title":{"rendered":"s\u00e0n g\u1ed7"},"content":{"rendered":"<p>Parquet l\u00e0 \u0111\u1ecbnh d\u1ea1ng t\u1ec7p l\u01b0u tr\u1eef d\u1ea1ng c\u1ed9t \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ec3 l\u01b0u tr\u1eef v\u00e0 x\u1eed l\u00fd l\u01b0\u1ee3ng l\u1edbn d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. N\u00f3 \u0111\u01b0\u1ee3c Cloudera v\u00e0 Twitter ph\u00e1t tri\u1ec3n nh\u01b0 m\u1ed9t d\u1ef1 \u00e1n ngu\u1ed3n m\u1edf v\u00e0o n\u0103m 2013. M\u1ee5c ti\u00eau ch\u00ednh c\u1ee7a Parquet l\u00e0 t\u1ed1i \u01b0u h\u00f3a vi\u1ec7c l\u01b0u tr\u1eef v\u00e0 x\u1eed l\u00fd d\u1eef li\u1ec7u \u0111\u1ec3 ph\u00e2n t\u00edch d\u1eef li\u1ec7u l\u1edbn, bi\u1ebfn n\u00f3 th\u00e0nh \u0111\u1ecbnh d\u1ea1ng l\u00fd t\u01b0\u1edfng cho c\u00e1c tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng trong kho d\u1eef li\u1ec7u, h\u1ed3 d\u1eef li\u1ec7u v\u00e0 Apache H\u1ec7 sinh th\u00e1i Hadoop.<\/p>\n<h2>L\u1ecbch s\u1eed ngu\u1ed3n g\u1ed1c c\u1ee7a s\u00e0n g\u1ed7 v\u00e0 s\u1ef1 \u0111\u1ec1 c\u1eadp \u0111\u1ea7u ti\u00ean v\u1ec1 n\u00f3<\/h2>\n<p>Ngu\u1ed3n g\u1ed1c c\u1ee7a Parquet c\u00f3 th\u1ec3 b\u1eaft ngu\u1ed3n t\u1eeb nhu c\u1ea7u l\u01b0u tr\u1eef v\u00e0 x\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3. V\u1edbi s\u1ef1 ph\u00e1t tri\u1ec3n c\u1ee7a c\u00f4ng ngh\u1ec7 d\u1eef li\u1ec7u l\u1edbn, c\u00e1c \u0111\u1ecbnh d\u1ea1ng l\u01b0u tr\u1eef truy\u1ec1n th\u1ed1ng ph\u1ea3i \u0111\u1ed1i m\u1eb7t v\u1edbi nh\u1eefng th\u00e1ch th\u1ee9c trong vi\u1ec7c x\u1eed l\u00fd c\u00e1c t\u1eadp d\u1eef li\u1ec7u l\u1edbn. S\u1ef1 ph\u00e1t tri\u1ec3n c\u1ee7a Parquet nh\u1eb1m gi\u1ea3i quy\u1ebft nh\u1eefng v\u1ea5n \u0111\u1ec1 n\u00e0y b\u1eb1ng c\u00e1ch gi\u1edbi thi\u1ec7u ph\u01b0\u01a1ng ph\u00e1p l\u01b0u tr\u1eef theo c\u1ed9t.<\/p>\n<p>L\u1ea7n \u0111\u1ea7u ti\u00ean \u0111\u1ec1 c\u1eadp \u0111\u1ebfn Parquet c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c t\u00ecm th\u1ea5y trong m\u1ed9t b\u00e0i nghi\u00ean c\u1ee9u do c\u00e1c k\u1ef9 s\u01b0 Twitter tr\u00ecnh b\u00e0y t\u1ea1i H\u1ed9i ngh\u1ecb chuy\u00ean \u0111\u1ec1 v\u1ec1 Nguy\u00ean t\u1eafc h\u1ec7 \u0111i\u1ec1u h\u00e0nh (SOSP) n\u0103m 2013. Trong b\u00e0i b\u00e1o n\u00e0y, h\u1ecd \u0111\u00e3 gi\u1edbi thi\u1ec7u \u0111\u1ecbnh d\u1ea1ng Parquet v\u00e0 nh\u1ea5n m\u1ea1nh c\u00e1c l\u1ee3i \u00edch c\u1ee7a n\u00f3, ch\u1eb3ng h\u1ea1n nh\u01b0 kh\u1ea3 n\u0103ng n\u00e9n t\u1ed1t h\u01a1n, truy v\u1ea5n \u0111\u01b0\u1ee3c c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t v\u00e0 h\u1ed7 tr\u1ee3 c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p.<\/p>\n<h2>Th\u00f4ng tin chi ti\u1ebft v\u1ec1 s\u00e0n g\u1ed7: M\u1edf r\u1ed9ng ch\u1ee7 \u0111\u1ec1<\/h2>\n<p>S\u00e0n g\u1ed7 tu\u00e2n theo ph\u01b0\u01a1ng ph\u00e1p l\u01b0u tr\u1eef theo c\u1ed9t, trong \u0111\u00f3 d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef v\u00e0 s\u1eafp x\u1ebfp theo c\u1ed9t thay v\u00ec h\u00e0ng. Thi\u1ebft k\u1ebf n\u00e0y cho ph\u00e9p t\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t kh\u00e1c nhau v\u00e0 \u0111\u1eb7c bi\u1ec7t thu\u1eadn l\u1ee3i cho kh\u1ed1i l\u01b0\u1ee3ng c\u00f4ng vi\u1ec7c ph\u00e2n t\u00edch. M\u1ed9t s\u1ed1 \u0111\u1eb7c \u0111i\u1ec3m ch\u00ednh c\u1ee7a S\u00e0n g\u1ed7 bao g\u1ed3m:<\/p>\n<ol>\n<li>\n<p><strong>L\u01b0u tr\u1eef c\u1ed9t:<\/strong> Parquet l\u01b0u tr\u1eef t\u1eebng c\u1ed9t ri\u00eang bi\u1ec7t, cho ph\u00e9p n\u00e9n t\u1ed1t h\u01a1n v\u00e0 kh\u1ea3 n\u0103ng ch\u1ec9 \u0111\u1ecdc c\u00e1c c\u1ed9t \u0111\u01b0\u1ee3c y\u00eau c\u1ea7u trong qu\u00e1 tr\u00ecnh th\u1ef1c hi\u1ec7n truy v\u1ea5n.<\/p>\n<\/li>\n<li>\n<p><strong>K\u1ef9 thu\u1eadt n\u00e9n:<\/strong> Parquet s\u1eed d\u1ee5ng nhi\u1ec1u thu\u1eadt to\u00e1n n\u00e9n kh\u00e1c nhau, ch\u1eb3ng h\u1ea1n nh\u01b0 Snappy, Gzip v\u00e0 Zstandard, \u0111\u1ec3 gi\u1ea3m dung l\u01b0\u1ee3ng l\u01b0u tr\u1eef v\u00e0 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t \u0111\u1ecdc d\u1eef li\u1ec7u.<\/p>\n<\/li>\n<li>\n<p><strong>H\u1ed7 tr\u1ee3 ki\u1ec3u d\u1eef li\u1ec7u:<\/strong> N\u00f3 cung c\u1ea5p h\u1ed7 tr\u1ee3 r\u1ed9ng r\u00e3i cho nhi\u1ec1u ki\u1ec3u d\u1eef li\u1ec7u kh\u00e1c nhau, bao g\u1ed3m c\u00e1c ki\u1ec3u nguy\u00ean th\u1ee7y (v\u00ed d\u1ee5: s\u1ed1 nguy\u00ean, chu\u1ed7i, boolean) v\u00e0 c\u00e1c ki\u1ec3u ph\u1ee9c t\u1ea1p (v\u00ed d\u1ee5: m\u1ea3ng, b\u1ea3n \u0111\u1ed3, c\u1ea5u tr\u00fac).<\/p>\n<\/li>\n<li>\n<p><strong>L\u01b0\u1ee3c \u0111\u1ed3 ti\u1ebfn h\u00f3a:<\/strong> Parquet h\u1ed7 tr\u1ee3 ph\u00e1t tri\u1ec3n l\u01b0\u1ee3c \u0111\u1ed3, cho ph\u00e9p ng\u01b0\u1eddi d\u00f9ng th\u00eam, x\u00f3a ho\u1eb7c s\u1eeda \u0111\u1ed5i c\u00e1c c\u1ed9t theo th\u1eddi gian m\u00e0 kh\u00f4ng l\u00e0m \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn t\u00ednh t\u01b0\u01a1ng th\u00edch v\u1edbi d\u1eef li\u1ec7u hi\u1ec7n c\u00f3.<\/p>\n<\/li>\n<li>\n<p><strong>\u0110\u1ea9y l\u00f9i v\u1ecb ng\u1eef:<\/strong> T\u00ednh n\u0103ng n\u00e0y \u0111\u1ea9y c\u00e1c v\u1ecb t\u1eeb truy v\u1ea5n xu\u1ed1ng l\u1edbp l\u01b0u tr\u1eef, gi\u1ea3m l\u01b0\u1ee3ng d\u1eef li\u1ec7u c\u1ea7n \u0111\u1ecdc trong qu\u00e1 tr\u00ecnh th\u1ef1c hi\u1ec7n truy v\u1ea5n.<\/p>\n<\/li>\n<li>\n<p><strong>Ti\u1ebfn tr\u00ecnh song song:<\/strong> C\u00e1c t\u1ec7p s\u00e0n c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c chia th\u00e0nh c\u00e1c nh\u00f3m h\u00e0ng nh\u1ecf h\u01a1n, cho ph\u00e9p x\u1eed l\u00fd song song trong c\u00e1c m\u00f4i tr\u01b0\u1eddng ph\u00e2n t\u00e1n, ch\u1eb3ng h\u1ea1n nh\u01b0 Hadoop.<\/p>\n<\/li>\n<li>\n<p><strong>Kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch \u0111a n\u1ec1n t\u1ea3ng:<\/strong> S\u00e0n g\u1ed7 \u0111\u01b0\u1ee3c thi\u1ebft k\u1ebf \u0111\u1ed9c l\u1eadp v\u1edbi n\u1ec1n t\u1ea3ng, cho ph\u00e9p trao \u0111\u1ed5i d\u1eef li\u1ec7u li\u1ec1n m\u1ea1ch gi\u1eefa c\u00e1c h\u1ec7 th\u1ed1ng kh\u00e1c nhau.<\/p>\n<\/li>\n<\/ol>\n<h2>C\u1ea5u tr\u00fac b\u00ean trong c\u1ee7a s\u00e0n g\u1ed7: S\u00e0n g\u1ed7 ho\u1ea1t \u0111\u1ed9ng nh\u01b0 th\u1ebf n\u00e0o<\/h2>\n<p>T\u1ec7p s\u00e0n g\u1ed7 bao g\u1ed3m m\u1ed9t s\u1ed1 th\u00e0nh ph\u1ea7n g\u00f3p ph\u1ea7n v\u00e0o kh\u1ea3 n\u0103ng l\u01b0u tr\u1eef v\u00e0 x\u1eed l\u00fd hi\u1ec7u qu\u1ea3 c\u1ee7a n\u00f3:<\/p>\n<ol>\n<li>\n<p><strong>Si\u00eau d\u1eef li\u1ec7u t\u1ec7p:<\/strong> Ch\u1ee9a th\u00f4ng tin v\u1ec1 l\u01b0\u1ee3c \u0111\u1ed3 c\u1ee7a t\u1ec7p, thu\u1eadt to\u00e1n n\u00e9n \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng v\u00e0 c\u00e1c thu\u1ed9c t\u00ednh kh\u00e1c.<\/p>\n<\/li>\n<li>\n<p><strong>Nh\u00f3m h\u00e0ng:<\/strong> M\u1ed7i t\u1ec7p Parquet \u0111\u01b0\u1ee3c chia th\u00e0nh c\u00e1c nh\u00f3m h\u00e0ng, c\u00e1c nh\u00f3m n\u00e0y l\u1ea1i \u0111\u01b0\u1ee3c chia th\u00e0nh c\u00e1c c\u1ed9t. C\u00e1c nh\u00f3m h\u00e0ng gi\u00fap x\u1eed l\u00fd song song v\u00e0 n\u00e9n d\u1eef li\u1ec7u.<\/p>\n<\/li>\n<li>\n<p><strong>Si\u00eau d\u1eef li\u1ec7u c\u1ed9t:<\/strong> \u0110\u1ed1i v\u1edbi m\u1ed7i c\u1ed9t, Parquet l\u01b0u tr\u1eef si\u00eau d\u1eef li\u1ec7u nh\u01b0 lo\u1ea1i d\u1eef li\u1ec7u, codec n\u00e9n v\u00e0 th\u00f4ng tin m\u00e3 h\u00f3a.<\/p>\n<\/li>\n<li>\n<p><strong>Trang d\u1eef li\u1ec7u:<\/strong> C\u00e1c trang d\u1eef li\u1ec7u l\u01b0u tr\u1eef d\u1eef li\u1ec7u c\u1ed9t th\u1ef1c t\u1ebf v\u00e0 \u0111\u01b0\u1ee3c n\u00e9n ri\u00eang l\u1ebb \u0111\u1ec3 t\u1ed1i \u0111a h\u00f3a hi\u1ec7u qu\u1ea3 l\u01b0u tr\u1eef.<\/p>\n<\/li>\n<li>\n<p><strong>C\u00e1c trang t\u1eeb \u0111i\u1ec3n (T\u00f9y ch\u1ecdn):<\/strong> \u0110\u1ed1i v\u1edbi c\u00e1c c\u1ed9t c\u00f3 gi\u00e1 tr\u1ecb l\u1eb7p l\u1ea1i, Parquet s\u1eed d\u1ee5ng m\u00e3 h\u00f3a t\u1eeb \u0111i\u1ec3n \u0111\u1ec3 l\u01b0u tr\u1eef c\u00e1c gi\u00e1 tr\u1ecb duy nh\u1ea5t v\u00e0 tham chi\u1ebfu ch\u00fang trong c\u00e1c trang d\u1eef li\u1ec7u.<\/p>\n<\/li>\n<li>\n<p><strong>S\u1ed1 li\u1ec7u th\u1ed1ng k\u00ea:<\/strong> Parquet c\u0169ng c\u00f3 th\u1ec3 l\u01b0u tr\u1eef s\u1ed1 li\u1ec7u th\u1ed1ng k\u00ea cho t\u1eebng c\u1ed9t, ch\u1eb3ng h\u1ea1n nh\u01b0 gi\u00e1 tr\u1ecb t\u1ed1i thi\u1ec3u v\u00e0 t\u1ed1i \u0111a, c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c t\u1eadn d\u1ee5ng \u0111\u1ec3 t\u1ed1i \u01b0u h\u00f3a truy v\u1ea5n.<\/p>\n<\/li>\n<\/ol>\n<h2>Ph\u00e2n t\u00edch c\u00e1c t\u00ednh n\u0103ng ch\u00ednh c\u1ee7a s\u00e0n g\u1ed7<\/h2>\n<p>C\u00e1c t\u00ednh n\u0103ng ch\u00ednh c\u1ee7a Parquet g\u00f3p ph\u1ea7n v\u00e0o vi\u1ec7c \u00e1p d\u1ee5ng r\u1ed9ng r\u00e3i v\u00e0 ph\u1ed5 bi\u1ebfn trong x\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn. H\u00e3y ph\u00e2n t\u00edch m\u1ed9t s\u1ed1 t\u00ednh n\u0103ng sau:<\/p>\n<ol>\n<li>\n<p><strong>N\u00e9n hi\u1ec7u qu\u1ea3:<\/strong> K\u1ef9 thu\u1eadt n\u00e9n v\u00e0 l\u01b0u tr\u1eef theo c\u1ed9t c\u1ee7a Parquet mang l\u1ea1i k\u00edch th\u01b0\u1edbc t\u1ec7p nh\u1ecf h\u01a1n, gi\u1ea3m chi ph\u00ed l\u01b0u tr\u1eef v\u00e0 c\u1ea3i thi\u1ec7n t\u1ed1c \u0111\u1ed9 truy\u1ec1n d\u1eef li\u1ec7u.<\/p>\n<\/li>\n<li>\n<p><strong>T\u1ed1i \u01b0u h\u00f3a hi\u1ec7u su\u1ea5t:<\/strong> B\u1eb1ng c\u00e1ch ch\u1ec9 \u0111\u1ecdc c\u00e1c c\u1ed9t c\u1ea7n thi\u1ebft trong khi truy v\u1ea5n, Parquet gi\u1ea3m thi\u1ec3u c\u00e1c thao t\u00e1c I\/O, gi\u00fap x\u1eed l\u00fd truy v\u1ea5n nhanh h\u01a1n.<\/p>\n<\/li>\n<li>\n<p><strong>L\u01b0\u1ee3c \u0111\u1ed3 linh ho\u1ea1t:<\/strong> H\u1ed7 tr\u1ee3 ph\u00e1t tri\u1ec3n l\u01b0\u1ee3c \u0111\u1ed3 cho ph\u00e9p thay \u0111\u1ed5i l\u01b0\u1ee3c \u0111\u1ed3 d\u1eef li\u1ec7u m\u1ed9t c\u00e1ch linh ho\u1ea1t m\u00e0 kh\u00f4ng \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn d\u1eef li\u1ec7u hi\u1ec7n c\u00f3.<\/p>\n<\/li>\n<li>\n<p><strong>H\u1ed7 tr\u1ee3 \u0111a ng\u00f4n ng\u1eef:<\/strong> T\u1ec7p Parquet c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng b\u1edfi nhi\u1ec1u ng\u00f4n ng\u1eef l\u1eadp tr\u00ecnh kh\u00e1c nhau, bao g\u1ed3m Java, Python, C++, v.v., khi\u1ebfn n\u00f3 tr\u1edf th\u00e0nh \u0111\u1ecbnh d\u1ea1ng linh ho\u1ea1t cho c\u00e1c quy tr\u00ecnh x\u1eed l\u00fd d\u1eef li\u1ec7u \u0111a d\u1ea1ng.<\/p>\n<\/li>\n<li>\n<p><strong>\u0110\u1ed9 phong ph\u00fa c\u1ee7a ki\u1ec3u d\u1eef li\u1ec7u:<\/strong> S\u1ef1 h\u1ed7 tr\u1ee3 r\u1ed9ng r\u00e3i cho c\u00e1c lo\u1ea1i d\u1eef li\u1ec7u kh\u00e1c nhau \u0111\u00e1p \u1ee9ng nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p s\u1eed d\u1ee5ng, h\u1ed7 tr\u1ee3 c\u00e1c c\u1ea5u tr\u00fac d\u1eef li\u1ec7u ph\u1ee9c t\u1ea1p th\u01b0\u1eddng g\u1eb7p trong ph\u00e2n t\u00edch d\u1eef li\u1ec7u l\u1edbn.<\/p>\n<\/li>\n<li>\n<p><strong>Kh\u1ea3 n\u0103ng t\u01b0\u01a1ng t\u00e1c:<\/strong> L\u00e0 m\u1ed9t d\u1ef1 \u00e1n ngu\u1ed3n m\u1edf c\u00f3 \u0111\u1eb7c \u0111i\u1ec3m k\u1ef9 thu\u1eadt \u0111\u01b0\u1ee3c x\u00e1c \u0111\u1ecbnh r\u00f5 r\u00e0ng, Parquet th\u00fac \u0111\u1ea9y kh\u1ea3 n\u0103ng t\u01b0\u01a1ng t\u00e1c gi\u1eefa c\u00e1c c\u00f4ng c\u1ee5 v\u00e0 h\u1ec7 th\u1ed1ng kh\u00e1c nhau.<\/p>\n<\/li>\n<\/ol>\n<h2>C\u00e1c lo\u1ea1i s\u00e0n g\u1ed7 v\u00e0 \u0111\u1eb7c \u0111i\u1ec3m c\u1ee7a ch\u00fang<\/h2>\n<p>S\u00e0n g\u1ed7 c\u00f3 hai phi\u00ean b\u1ea3n ch\u00ednh: <strong>S\u00e0n g\u1ed7-1.0<\/strong> V\u00e0 <strong>S\u00e0n g\u1ed7-2.0<\/strong>. C\u00e1i sau c\u00f2n \u0111\u01b0\u1ee3c g\u1ecdi l\u00e0 <strong>S\u00e0n g\u1ed7 m\u0169i t\u00ean Apache<\/strong> v\u00e0 d\u1ef1a tr\u00ean \u0111\u1ecbnh d\u1ea1ng d\u1eef li\u1ec7u M\u0169i t\u00ean. C\u1ea3 hai phi\u00ean b\u1ea3n \u0111\u1ec1u c\u00f3 chung c\u00e1c kh\u00e1i ni\u1ec7m v\u00e0 \u01b0u \u0111i\u1ec3m c\u01a1 b\u1ea3n nh\u01b0ng kh\u00e1c nhau v\u1ec1 kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch v\u00e0 b\u1ed9 t\u00ednh n\u0103ng. D\u01b0\u1edbi \u0111\u00e2y l\u00e0 so s\u00e1nh gi\u1eefa hai phi\u00ean b\u1ea3n:<\/p>\n<table>\n<thead>\n<tr>\n<th>T\u00ednh n\u0103ng<\/th>\n<th>S\u00e0n g\u1ed7-1.0<\/th>\n<th>S\u00e0n g\u1ed7-2.0 (S\u00e0n g\u1ed7 m\u0169i t\u00ean Apache)<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>L\u01b0\u1ee3c \u0111\u1ed3 ti\u1ebfn h\u00f3a<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/td>\n<\/tr>\n<tr>\n<td>N\u00e9n c\u1ed9t<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3 (Gzip, Snappy, v.v.)<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3 (Gzip, Snappy, LZ4, Zstd)<\/td>\n<\/tr>\n<tr>\n<td>M\u00e3 h\u00f3a t\u1eeb \u0111i\u1ec3n<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/td>\n<\/tr>\n<tr>\n<td>H\u1ed7 tr\u1ee3 d\u1eef li\u1ec7u l\u1ed3ng nhau<\/td>\n<td>H\u1ed7 tr\u1ee3 h\u1ea1n ch\u1ebf cho c\u00e1c lo\u1ea1i ph\u1ee9c t\u1ea1p<\/td>\n<td>H\u1ed7 tr\u1ee3 \u0111\u1ea7y \u0111\u1ee7 cho c\u00e1c lo\u1ea1i ph\u1ee9c t\u1ea1p<\/td>\n<\/tr>\n<tr>\n<td>Kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch<\/td>\n<td>T\u01b0\u01a1ng th\u00edch v\u1edbi h\u1ea7u h\u1ebft c\u00e1c c\u00f4ng c\u1ee5<\/td>\n<td>C\u1ea3i thi\u1ec7n kh\u1ea3 n\u0103ng t\u01b0\u01a1ng th\u00edch th\u00f4ng qua Arrow<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>C\u00e1ch s\u1eed d\u1ee5ng s\u00e0n g\u1ed7, v\u1ea5n \u0111\u1ec1 v\u00e0 gi\u1ea3i ph\u00e1p<\/h2>\n<h3>C\u00e1ch s\u1eed d\u1ee5ng s\u00e0n g\u1ed7<\/h3>\n<p>Parquet t\u00ecm th\u1ea5y c\u00e1c \u1ee9ng d\u1ee5ng trong nhi\u1ec1u t\u00ecnh hu\u1ed1ng s\u1eed d\u1ee5ng nhi\u1ec1u d\u1eef li\u1ec7u kh\u00e1c nhau, ch\u1eb3ng h\u1ea1n nh\u01b0:<\/p>\n<ol>\n<li>\n<p><strong>Kho d\u1eef li\u1ec7u:<\/strong> S\u00e0n g\u1ed7 th\u01b0\u1eddng \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 l\u01b0u tr\u1eef d\u1eef li\u1ec7u do hi\u1ec7u su\u1ea5t truy v\u1ea5n nhanh v\u00e0 l\u01b0u tr\u1eef hi\u1ec7u qu\u1ea3.<\/p>\n<\/li>\n<li>\n<p><strong>X\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn:<\/strong> Trong Hadoop v\u00e0 c\u00e1c khung x\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn kh\u00e1c, t\u1ec7p Parquet l\u00e0 l\u1ef1a ch\u1ecdn \u01b0u ti\u00ean v\u00ec kh\u1ea3 n\u0103ng x\u1eed l\u00fd song song c\u1ee7a ch\u00fang.<\/p>\n<\/li>\n<li>\n<p><strong>H\u1ed3 d\u1eef li\u1ec7u:<\/strong> Parquet l\u00e0 m\u1ed9t \u0111\u1ecbnh d\u1ea1ng ph\u1ed5 bi\u1ebfn \u0111\u1ec3 l\u01b0u tr\u1eef c\u00e1c lo\u1ea1i d\u1eef li\u1ec7u \u0111a d\u1ea1ng trong h\u1ed3 d\u1eef li\u1ec7u, gi\u00fap ph\u00e2n t\u00edch v\u00e0 tr\u00edch xu\u1ea5t th\u00f4ng tin chi ti\u1ebft d\u1ec5 d\u00e0ng h\u01a1n.<\/p>\n<\/li>\n<li>\n<p><strong>Truy\u1ec1n d\u1eef li\u1ec7u:<\/strong> V\u1edbi s\u1ef1 h\u1ed7 tr\u1ee3 cho vi\u1ec7c ph\u00e1t tri\u1ec3n l\u01b0\u1ee3c \u0111\u1ed3, Parquet ph\u00f9 h\u1ee3p \u0111\u1ec3 x\u1eed l\u00fd c\u00e1c lu\u1ed3ng d\u1eef li\u1ec7u \u0111ang ph\u00e1t tri\u1ec3n.<\/p>\n<\/li>\n<\/ol>\n<h3>V\u1ea5n \u0111\u1ec1 v\u00e0 gi\u1ea3i ph\u00e1p<\/h3>\n<ol>\n<li>\n<p><strong>Nh\u1eefng v\u1ea5n \u0111\u1ec1 t\u01b0\u01a1ng th\u00edch:<\/strong> M\u1ed9t s\u1ed1 c\u00f4ng c\u1ee5 c\u0169 h\u01a1n c\u00f3 th\u1ec3 h\u1ed7 tr\u1ee3 h\u1ea1n ch\u1ebf cho Parquet-2.0. Gi\u1ea3i ph\u00e1p l\u00e0 s\u1eed d\u1ee5ng Parquet-1.0 ho\u1eb7c c\u1eadp nh\u1eadt c\u00e1c c\u00f4ng c\u1ee5 h\u1ed7 tr\u1ee3 phi\u00ean b\u1ea3n m\u1edbi nh\u1ea5t.<\/p>\n<\/li>\n<li>\n<p><strong>\u0110\u1ed9 ph\u1ee9c t\u1ea1p c\u1ee7a thi\u1ebft k\u1ebf l\u01b0\u1ee3c \u0111\u1ed3:<\/strong> Vi\u1ec7c thi\u1ebft k\u1ebf m\u1ed9t l\u01b0\u1ee3c \u0111\u1ed3 linh ho\u1ea1t \u0111\u00f2i h\u1ecfi ph\u1ea3i xem x\u00e9t c\u1ea9n th\u1eadn. Vi\u1ec7c s\u1eed d\u1ee5ng l\u01b0\u1ee3c \u0111\u1ed3 th\u1ed1ng nh\u1ea5t tr\u00ean c\u00e1c ngu\u1ed3n d\u1eef li\u1ec7u c\u00f3 th\u1ec3 \u0111\u01a1n gi\u1ea3n h\u00f3a vi\u1ec7c t\u00edch h\u1ee3p d\u1eef li\u1ec7u.<\/p>\n<\/li>\n<li>\n<p><strong>M\u1ed1i quan t\u00e2m v\u1ec1 ch\u1ea5t l\u01b0\u1ee3ng d\u1eef li\u1ec7u:<\/strong> Ki\u1ec3u d\u1eef li\u1ec7u kh\u00f4ng ch\u00ednh x\u00e1c ho\u1eb7c thay \u0111\u1ed5i l\u01b0\u1ee3c \u0111\u1ed3 c\u00f3 th\u1ec3 d\u1eabn \u0111\u1ebfn c\u00e1c v\u1ea5n \u0111\u1ec1 v\u1ec1 ch\u1ea5t l\u01b0\u1ee3ng d\u1eef li\u1ec7u. X\u00e1c th\u1ef1c d\u1eef li\u1ec7u v\u00e0 th\u1ef1c h\u00e0nh ph\u00e1t tri\u1ec3n l\u01b0\u1ee3c \u0111\u1ed3 c\u00f3 th\u1ec3 gi\u1ea3m thi\u1ec3u nh\u1eefng v\u1ea5n \u0111\u1ec1 n\u00e0y.<\/p>\n<\/li>\n<li>\n<p><strong>Chi ph\u00ed kh\u1edfi \u0111\u1ed9ng ngu\u1ed9i:<\/strong> Vi\u1ec7c \u0111\u1ecdc m\u1ed9t s\u1ed1 h\u00e0ng \u0111\u1ea7u ti\u00ean c\u1ee7a t\u1ec7p Parquet c\u00f3 th\u1ec3 ch\u1eadm h\u01a1n do ph\u00e2n t\u00edch c\u00fa ph\u00e1p si\u00eau d\u1eef li\u1ec7u. B\u1ed9 nh\u1edb \u0111\u1ec7m tr\u01b0\u1edbc ho\u1eb7c s\u1eed d\u1ee5ng c\u1ea5u tr\u00fac t\u1ec7p \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a c\u00f3 th\u1ec3 gi\u1ea3m b\u1edbt chi ph\u00ed n\u00e0y.<\/p>\n<\/li>\n<\/ol>\n<h2>\u0110\u1eb7c \u0111i\u1ec3m ch\u00ednh v\u00e0 nh\u1eefng so s\u00e1nh kh\u00e1c<\/h2>\n<table>\n<thead>\n<tr>\n<th>\u0111\u1eb7c tr\u01b0ng<\/th>\n<th>S\u1ef1 mi\u00eau t\u1ea3<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u0110\u1ecbnh d\u1ea1ng l\u01b0u tr\u1eef<\/td>\n<td>c\u1ed9t<\/td>\n<\/tr>\n<tr>\n<td>T\u00f9y ch\u1ecdn n\u00e9n<\/td>\n<td>Gzip, Snappy, LZ4, Zstandard<\/td>\n<\/tr>\n<tr>\n<td>N\u1ec1n t\u1ea3ng \u0111\u1ed9c l\u1eadp<\/td>\n<td>\u0110\u00fang<\/td>\n<\/tr>\n<tr>\n<td>H\u1ed7 tr\u1ee3 ki\u1ec3u d\u1eef li\u1ec7u<\/td>\n<td>H\u1ed7 tr\u1ee3 m\u1edf r\u1ed9ng cho c\u00e1c ki\u1ec3u d\u1eef li\u1ec7u nguy\u00ean th\u1ee7y v\u00e0 ph\u1ee9c t\u1ea1p<\/td>\n<\/tr>\n<tr>\n<td>L\u01b0\u1ee3c \u0111\u1ed3 ti\u1ebfn h\u00f3a<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/td>\n<\/tr>\n<tr>\n<td>\u0110\u1ea9y l\u00f9i v\u1ecb ng\u1eef<\/td>\n<td>\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3<\/td>\n<\/tr>\n<tr>\n<td>Ti\u1ebfn tr\u00ecnh song song<\/td>\n<td>\u0110\u01b0\u1ee3c k\u00edch ho\u1ea1t th\u00f4ng qua c\u00e1c nh\u00f3m h\u00e0ng<\/td>\n<\/tr>\n<tr>\n<td>Kh\u1ea3 n\u0103ng t\u01b0\u01a1ng t\u00e1c<\/td>\n<td>Ho\u1ea1t \u0111\u1ed9ng v\u1edbi nhi\u1ec1u khung d\u1eef li\u1ec7u l\u1edbn kh\u00e1c nhau, nh\u01b0 Apache Hadoop, Apache Spark v\u00e0 Apache Drill<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Quan \u0111i\u1ec3m v\u00e0 c\u00f4ng ngh\u1ec7 c\u1ee7a t\u01b0\u01a1ng lai li\u00ean quan \u0111\u1ebfn s\u00e0n g\u1ed7<\/h2>\n<p>T\u01b0\u01a1ng lai c\u1ee7a Parquet c\u00f3 v\u1ebb \u0111\u1ea7y h\u1ee9a h\u1eb9n v\u1edbi nh\u1eefng n\u1ed7 l\u1ef1c kh\u00f4ng ng\u1eebng nh\u1eb1m c\u1ea3i thi\u1ec7n kh\u1ea3 n\u0103ng v\u00e0 kh\u1ea3 n\u0103ng t\u00edch h\u1ee3p c\u1ee7a n\u00f3. M\u1ed9t s\u1ed1 l\u0129nh v\u1ef1c ph\u00e1t tri\u1ec3n v\u00e0 \u00e1p d\u1ee5ng ch\u00ednh bao g\u1ed3m:<\/p>\n<ol>\n<li>\n<p><strong>C\u00f4ng c\u1ee5 truy v\u1ea5n \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a:<\/strong> Nh\u1eefng ti\u1ebfn b\u1ed9 li\u00ean t\u1ee5c trong c\u00e1c c\u00f4ng c\u1ee5 truy v\u1ea5n nh\u01b0 Apache Arrow, Apache Drill v\u00e0 Presto s\u1ebd n\u00e2ng cao hi\u1ec7u su\u1ea5t truy v\u1ea5n c\u1ee7a Parquet h\u01a1n n\u1eefa.<\/p>\n<\/li>\n<li>\n<p><strong>H\u1ed7 tr\u1ee3 ph\u00e1t tr\u1ef1c tuy\u1ebfn:<\/strong> Parquet d\u1ef1 ki\u1ebfn s\u1ebd \u0111\u00f3ng m\u1ed9t vai tr\u00f2 quan tr\u1ecdng trong vi\u1ec7c ph\u00e2n t\u00edch v\u00e0 truy\u1ec1n d\u1eef li\u1ec7u theo th\u1eddi gian th\u1ef1c, v\u1edbi c\u00e1c c\u00f4ng ngh\u1ec7 m\u1edbi n\u1ed5i nh\u01b0 Apache Kafka v\u00e0 Apache Flink.<\/p>\n<\/li>\n<li>\n<p><strong>H\u1ed3 d\u1eef li\u1ec7u \u0111\u00e1m m\u00e2y:<\/strong> S\u1ef1 gia t\u0103ng c\u1ee7a c\u00e1c h\u1ed3 d\u1eef li\u1ec7u tr\u00ean \u0111\u00e1m m\u00e2y, \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi c\u00e1c n\u1ec1n t\u1ea3ng nh\u01b0 Amazon S3 v\u00e0 Azure Data Lake Storage, s\u1ebd th\u00fac \u0111\u1ea9y vi\u1ec7c \u00e1p d\u1ee5ng Parquet nh\u1edd t\u00ednh hi\u1ec7u qu\u1ea3 v\u1ec1 m\u1eb7t chi ph\u00ed v\u00e0 kh\u1ea3 n\u0103ng m\u1edf r\u1ed9ng c\u1ee7a n\u00f3.<\/p>\n<\/li>\n<li>\n<p><strong>T\u00edch h\u1ee3p AI v\u00e0 ML:<\/strong> V\u00ec Parquet l\u01b0u tr\u1eef hi\u1ec7u qu\u1ea3 c\u00e1c t\u1eadp d\u1eef li\u1ec7u l\u1edbn n\u00ean n\u00f3 s\u1ebd v\u1eabn l\u00e0 m\u1ed9t ph\u1ea7n kh\u00f4ng th\u1ec3 thi\u1ebfu trong quy tr\u00ecnh \u0111\u00e0o t\u1ea1o v\u00e0 chu\u1ea9n b\u1ecb d\u1eef li\u1ec7u trong c\u00e1c d\u1ef1 \u00e1n h\u1ecdc m\u00e1y v\u00e0 tr\u00ed tu\u1ec7 nh\u00e2n t\u1ea1o.<\/p>\n<\/li>\n<\/ol>\n<h2>C\u00e1ch s\u1eed d\u1ee5ng ho\u1eb7c li\u00ean k\u1ebft m\u00e1y ch\u1ee7 proxy v\u1edbi Parquet<\/h2>\n<p>M\u00e1y ch\u1ee7 proxy c\u00f3 th\u1ec3 h\u01b0\u1edfng l\u1ee3i t\u1eeb Parquet theo nhi\u1ec1u c\u00e1ch:<\/p>\n<ol>\n<li>\n<p><strong>B\u1ed9 nh\u1edb \u0111\u1ec7m v\u00e0 n\u00e9n d\u1eef li\u1ec7u:<\/strong> M\u00e1y ch\u1ee7 proxy c\u00f3 th\u1ec3 s\u1eed d\u1ee5ng Parquet \u0111\u1ec3 l\u01b0u v\u00e0o b\u1ed9 \u0111\u1ec7m d\u1eef li\u1ec7u th\u01b0\u1eddng xuy\u00ean truy c\u1eadp m\u1ed9t c\u00e1ch hi\u1ec7u qu\u1ea3, gi\u1ea3m th\u1eddi gian ph\u1ea3n h\u1ed3i cho c\u00e1c y\u00eau c\u1ea7u ti\u1ebfp theo.<\/p>\n<\/li>\n<li>\n<p><strong>X\u1eed l\u00fd v\u00e0 ph\u00e2n t\u00edch nh\u1eadt k\u00fd:<\/strong> Nh\u1eadt k\u00fd m\u00e1y ch\u1ee7 proxy, \u0111\u01b0\u1ee3c thu th\u1eadp \u1edf \u0111\u1ecbnh d\u1ea1ng Parquet, c\u00f3 th\u1ec3 \u0111\u01b0\u1ee3c ph\u00e2n t\u00edch b\u1eb1ng c\u00e1c c\u00f4ng c\u1ee5 x\u1eed l\u00fd d\u1eef li\u1ec7u l\u1edbn, mang l\u1ea1i nh\u1eefng hi\u1ec3u bi\u1ebft c\u00f3 gi\u00e1 tr\u1ecb cho vi\u1ec7c t\u1ed1i \u01b0u h\u00f3a v\u00e0 b\u1ea3o m\u1eadt m\u1ea1ng.<\/p>\n<\/li>\n<li>\n<p><strong>Trao \u0111\u1ed5i v\u00e0 t\u00edch h\u1ee3p d\u1eef li\u1ec7u:<\/strong> C\u00e1c m\u00e1y ch\u1ee7 proxy x\u1eed l\u00fd d\u1eef li\u1ec7u t\u1eeb nhi\u1ec1u ngu\u1ed3n kh\u00e1c nhau c\u00f3 th\u1ec3 chuy\u1ec3n \u0111\u1ed5i v\u00e0 l\u01b0u tr\u1eef d\u1eef li\u1ec7u \u1edf \u0111\u1ecbnh d\u1ea1ng Parquet, cho ph\u00e9p t\u00edch h\u1ee3p li\u1ec1n m\u1ea1ch v\u1edbi c\u00e1c n\u1ec1n t\u1ea3ng d\u1eef li\u1ec7u l\u1edbn v\u00e0 h\u1ec7 th\u1ed1ng ph\u00e2n t\u00edch.<\/p>\n<\/li>\n<li>\n<p><strong>T\u1ed1i \u01b0u h\u00f3a t\u00e0i nguy\u00ean:<\/strong> B\u1eb1ng c\u00e1ch s\u1eed d\u1ee5ng kh\u1ea3 n\u0103ng l\u01b0u tr\u1eef theo c\u1ed9t v\u00e0 kh\u1ea3 n\u0103ng \u0111\u1ea9y xu\u1ed1ng v\u1ecb t\u1eeb c\u1ee7a Parquet, m\u00e1y ch\u1ee7 proxy c\u00f3 th\u1ec3 t\u1ed1i \u01b0u h\u00f3a vi\u1ec7c s\u1eed d\u1ee5ng t\u00e0i nguy\u00ean v\u00e0 c\u1ea3i thi\u1ec7n hi\u1ec7u su\u1ea5t t\u1ed5ng th\u1ec3.<\/p>\n<\/li>\n<\/ol>\n<h2>Li\u00ean k\u1ebft li\u00ean quan<\/h2>\n<p>\u0110\u1ec3 bi\u1ebft th\u00eam th\u00f4ng tin v\u1ec1 Parquet, b\u1ea1n c\u00f3 th\u1ec3 tham kh\u1ea3o c\u00e1c t\u00e0i nguy\u00ean sau:<\/p>\n<ol>\n<li><a href=\"https:\/\/parquet.apache.org\/\" target=\"_new\" rel=\"noopener nofollow\">Trang web ch\u00ednh th\u1ee9c c\u1ee7a s\u00e0n g\u1ed7 Apache<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/apache\/parquet-format\" target=\"_new\" rel=\"noopener nofollow\">\u0110\u1eb7c \u0111i\u1ec3m k\u1ef9 thu\u1eadt \u0111\u1ecbnh d\u1ea1ng s\u00e0n g\u1ed7<\/a><\/li>\n<li><a href=\"https:\/\/blog.cloudera.com\/parquet\/\" target=\"_new\" rel=\"noopener nofollow\">Blog k\u1ef9 thu\u1eadt Cloudera tr\u00ean s\u00e0n g\u1ed7<\/a><\/li>\n<li><a href=\"https:\/\/arrow.apache.org\/\" target=\"_new\" rel=\"noopener nofollow\">Trang web ch\u00ednh th\u1ee9c c\u1ee7a M\u0169i t\u00ean Apache<\/a> (\u0111\u1ec3 bi\u1ebft th\u00f4ng tin v\u1ec1 Parquet-2.0)<\/li>\n<\/ol>","protected":false},"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-478342","wiki","type-wiki","status-publish","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>Parquet: A Comprehensive Guide<\/mark>","faq_items":[{"question":"What is Parquet?","answer":"<p>Parquet is a columnar storage file format designed for efficient storage and processing of large datasets. It is particularly well-suited for big data analytics, data warehousing, and Apache Hadoop environments.<\/p>"},{"question":"How did Parquet originate, and when was it first mentioned?","answer":"<p>Parquet was developed as an open-source project by Cloudera and Twitter in 2013. It was first mentioned in a research paper presented by Twitter engineers at the Symposium on Operating Systems Principles (SOSP) in the same year.<\/p>"},{"question":"What are the key features of Parquet?","answer":"<p>Parquet offers several key features, including columnar storage, efficient compression techniques, support for various data types (primitive and complex), schema evolution, predicate pushdown, and parallel processing.<\/p>"},{"question":"How does Parquet work internally?","answer":"<p>Internally, Parquet files consist of file metadata, row groups, column metadata, data pages, and optional dictionary pages. This design allows for optimized storage, fast query processing, and support for various data types.<\/p>"},{"question":"What are the different types of Parquet versions, and how do they differ?","answer":"<p>Parquet comes in two main versions: Parquet-1.0 and Parquet-2.0 (Apache Arrow Parquet). While both versions share core concepts, Parquet-2.0 offers improved compatibility with Arrow-based systems and additional compression options.<\/p>"},{"question":"In what ways can Parquet be used, and what problems does it solve?","answer":"<p>Parquet finds applications in data warehousing, big data processing, data lakes, and handling streaming data. It solves challenges related to efficient storage, fast query performance, schema evolution, and cross-platform compatibility.<\/p>"},{"question":"What are the main characteristics of Parquet compared to other storage formats?","answer":"<p>Compared to other formats, Parquet stands out for its columnar storage, efficient compression options, extensive data type support, schema evolution capabilities, and the ability to enable predicate pushdown for query optimization.<\/p>"},{"question":"What are the perspectives and future technologies related to Parquet?","answer":"<p>The future of Parquet is promising, with ongoing improvements in query engines, support for real-time data streaming, and its growing role in cloud data lakes and AI\/ML integration.<\/p>"},{"question":"How can proxy servers benefit from Parquet?","answer":"<p>Proxy servers can utilize Parquet for caching, data compression, log processing, and seamless data integration. Parquet's resource optimization features can improve overall proxy server performance.<\/p>"},{"question":"Where can I find more information about Parquet?","answer":"<p>For more information about Parquet, you can visit the <a href=\"https:\/\/parquet.apache.org\/\" target=\"_new\">Apache Parquet Official Website<\/a> or refer to the Parquet Format Specification on <a href=\"https:\/\/github.com\/apache\/parquet-format\" target=\"_new\">GitHub<\/a>. Additionally, you can explore Cloudera's Engineering Blog for insightful articles on Parquet. For information on Parquet-2.0, you can visit the <a href=\"https:\/\/arrow.apache.org\/\" target=\"_new\">Apache Arrow Official Website<\/a>.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/vn\/wp-json\/wp\/v2\/wiki\/478342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/vn\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/vn\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/vn\/wp-json\/wp\/v2\/wiki\/478342\/revisions"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/vn\/wp-json\/wp\/v2\/media?parent=478342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}