UltKit

تبدیل CSV به Parquet

ساختن فایل CSV آسان است، اما کوئری گرفتن از آن کند است. یک فایل CSV بارگذاری کنید و یک فایل Apache Parquet تحویل بگیرید که هر فیلد آن نوع ستون مشخصی دارد، فشرده شده و برای ابزار تحلیلی موردنظرتان آماده است.

مبدل داده

یا فایل‌های CSV, TSV, TXT … را اینجا رها کنید ·

حداکثر 95 MB برای هر فایل· تا 20 فایل· حذف پس از 30 دقیقه

خروجی

فایل‌ها روی سرورهای ما پردازش می‌شوند و پس از 30 دقیقه حذف می‌شوند.

نحوه استفاده از این ابزار

  1. 1

    فایل‌های CSV را بارگذاری کنید

    یک فایل خروجی یا تا 20 فایل با ساختار یکسان اضافه کنید، هرکدام حداکثر 95 MB. اگر جداکننده روی تشخیص خودکار باشد، کاما، نقطه‌ویرگول، تب و خط عمودی را تشخیص می‌دهد.

  2. 2

    تنظیمات سرستون و تاریخ را حفظ کنید

    گزینهٔ ردیف اول سرستون است خط اول را به نام ستون‌ها تبدیل می‌کند. گزینهٔ تاریخ‌ها روی ISO است تا ستون‌های تاریخ با یک قالب یکسان نوشته شوند.

  3. 3

    به Parquet تبدیل کنید

    روی تبدیل به Parquet بزنید و فایل .parquet را در pandas، DuckDB، Spark یا انبار دادهٔ خود بارگذاری کنید.

چرا تیم‌های داده CSV را به Parquet تبدیل می‌کنند

Parquet در سال 2013 توسط مهندسان Twitter و Cloudera ساخته شد، بر پایهٔ چینش ستونی‌ای که Google در مقالهٔ Dremel در 2010 توصیف کرده بود، و در 2015 به پروژهٔ سطح بالای Apache تبدیل شد. ایده ساده است: به‌جای ذخیرهٔ جدول ردیف‌به‌ردیف مثل CSV، همهٔ مقدارهای یک ستون کنار هم ذخیره می‌شوند. پرس‌وجویی که از چهل ستون فقط سه ستون لازم دارد، همان سه را می‌خواند و مقدارهای مشابهِ کنار هم خیلی بهتر فشرده می‌شوند.

به همین دلیل تحلیلگران خروجی‌ها را پیش از بارگذاری تبدیل می‌کنند، مهندسان داده از تأمین‌کنندگان به‌جای CSV فایل Parquet می‌خواهند، و سرویس‌هایی مثل Amazon Athena و BigQuery که ممکن است بر اساس حجم داده‌های اسکن‌شده هزینه بگیرند، ارزان‌تر پرس‌وجو می‌شوند. CSV نمی‌داند 0042 عدد است یا کد؛ Parquet برای هر ستون یک نوع ثبت می‌کند و ابزار بعدی مجبور به حدس زدن نیست.

مقایسهٔ Parquet، CSV و XLSX برای جدول‌های بزرگ

ParquetCSVXLSX
نوع ستون‌ها در خود فایل ذخیره می‌شودyesnoبرای هر سلول
فقط ستون‌های موردنیاز پرس‌وجو را می‌خواندyesnono
فشردهyesnoyes
قابل خواندن در ویرایشگر متنnoyesno
با دوبار کلیک در Excel باز می‌شودnoyesyes
تعداد ردیف در هر فایلبدون محدودیت مشخصبدون محدودیت مشخص1,048,576 در هر شیت

با تبدیل CSV به Parquet چه چیزی تغییر می‌کند

چه چیزی به دست می‌آورید

  • پرس‌وجوهای سریع‌تر که فقط ستون‌های لازم را می‌خوانند
  • فایل‌های کوچک‌تر برای ذخیره و انتقال
  • طرحی (schema) که ابزار بعدی به‌جای حدس زدن می‌خواند
  • تاریخ‌ها یک‌بار با قالب ISO نوشته می‌شوند

نکاتی که باید در نظر داشت

  • در صفحه‌گسترده یا ویرایشگر متن قابل ویرایش نیست
  • یک غلط تایپی در ستون عددی می‌تواند کل ستون را به متن تبدیل کند
  • اگر دیگران هنوز باید فایل را باز کنند، CSV را نگه دارید

مشخصات فرمت‌های CSV و Parquet

CSV

مقادیر جداشده با کاما

CSV یک قالب متن ساده برای جدول‌هاست که در آن هر خط یک ردیف است و ستون‌ها با کاما از هم جدا می‌شوند. این قالب از روزهای نخست رایانه استفاده می‌شده و در RFC 4180 توضیح داده شده است، هرچند بسیاری از گونه‌ها از نقطه‌ویرگول یا تب و رمزگذاری‌های متنی متفاوت استفاده می‌کنند. تقریباً هر صفحه‌گسترده، پایگاه داده و ابزار تحلیلی می‌تواند آن را وارد یا صادر کند و به همین دلیل قالب پیش‌فرض انتقال داده بین سیستم‌هاست. CSV فقط مقادیر را ذخیره می‌کند و فرمول، قالب‌بندی، چند برگه یا نوع داده ندارد.

فشرده‌سازی
–
شفافیت
–
انیمیشن
–
سال معرفی
–
مبدل CSV

PARQUET

Apache Parquet

Parquet یک فرمت ذخیره‌سازی ستونی متن‌باز است که Twitter و Cloudera در سال ۲۰۱۳ ساختند و Apache Software Foundation نگهداری می‌کند. داده‌ها را ستون‌به‌ستون با فشرده‌سازی قوی و طرحواره‌های دارای نوع ذخیره می‌کند، بنابراین ابزارهای تحلیلی می‌توانند فقط ستون‌های لازم را بخوانند. در دریاچه‌های داده و ابزارهایی مانند Spark، pandas، DuckDB، BigQuery و Snowflake استاندارد است. فایل‌های Parquet باینری هستند و در ویرایشگر متن یا برنامه صفحه‌گسترده معمولی باز نمی‌شوند.

فشرده‌سازی
بدون اتلاف
شفافیت
–
انیمیشن
–
سال معرفی
2013 · Apache Software Foundation (from Twitter and Cloudera)
مبدل PARQUET

CSV وقتی به Parquet تبدیل می‌شود که فایل دیگر چیزی نیست که آدم‌ها باز کنند و به چیزی تبدیل شده که پرس‌وجوها اسکن می‌کنند: خروجی روزانه‌ای که وارد دریاچهٔ داده می‌شود، مجموعه‌داده‌ای که با تحلیلگران به اشتراک گذاشته می‌شود، یا لاگ‌هایی که هر بار بر اساس چند ستون فیلتر می‌شوند.

CSV را پیش از تبدیل پاک‌سازی کنید، نه بعد از آن: نام سرستون‌ها را درست کنید، ردیف‌های خلاصهٔ انتهای فایل را حذف کنید و مطمئن شوید هر ستون یک نوع مقدار دارد. اگر منبع شما پشتیبان پایگاه داده است و نه CSV، از تبدیل SQL به CSV شروع کنید. بقیهٔ مقصدها، از JSON تا SQL، در صفحهٔ مبدل داده هستند.

پرسش‌های رایج دربارهٔ تبدیل CSV به Parquet

حجم فایل Parquet چقدر از CSV من کمتر می‌شود؟

به داده‌ها بستگی دارد. ستون‌هایی با مقدارهای تکراری زیاد، مثل کد کشور، وضعیت یا تاریخ، خیلی خوب فشرده می‌شوند، اما ستون‌های شناسهٔ یکتا یا متن آزاد کمتر کوچک می‌شوند. فایل Parquet معمولاً کسری از حجم CSV است، اما نسبت ثابتی وجود ندارد که بشود قولش را داد.

چه ابزارهایی فایل ‎.parquet تبدیل‌شده را می‌خوانند؟

pandas با read_parquet، Polars، DuckDB با یک SELECT ساده روی نام فایل، Apache Spark و انبارهای ابری مثل BigQuery، Snowflake، Amazon Athena و Redshift Spectrum. بیشتر آن‌ها می‌توانند پوشه‌ای از فایل‌های Parquet با ستون‌های یکسان را هم مثل یک جدول پرس‌وجو کنند.

نوع ستون‌ها چگونه تعیین می‌شود؟

از روی مقدارهای هر ستون: عدد صحیح، اعشاری، تاریخ و مقدارهای درست یا نادرست نوع متناسب می‌گیرند و ستونی با محتوای مختلط متن می‌ماند. بعد از تبدیل، کدهای دارای صفر ابتدایی مثل کد پستی 02134 را بررسی کنید و اگر باید صفر بماند، آن‌ها را متن نگه دارید.

آیا می‌توانم چند فایل CSV با ساختار یکسان را تبدیل کنم؟

بله، تا 20 فایل در یک دسته و هرکدام به یک فایل .parquet جداگانه تبدیل می‌شود. آن‌ها را در یک پوشه بگذارید تا DuckDB یا Spark با الگویی مثل sales_*.parquet همه را با هم بخوانند.

چگونه بدون کدنویسی محتوای فایل Parquet را ببینم؟

Excel و Google Sheets فایل .parquet را با دوبار کلیک باز نمی‌کنند. با تبدیل Parquet به CSV دوباره آن را به ردیف تبدیل کنید، یا اگر با یک پرس‌وجوی SQL راحتید از خط فرمان DuckDB استفاده کنید.