Elasticsearch؛ اجرای query روی Amazon S3 بدون کپی داده با ES|QL

چرا مهم است

اگر داده‌های قدیمی را در S3 نگه می‌داری، امکان جست‌وجوی آن‌ها را بدون کپی به Elasticsearch می‌دهد. با هم لازم نیست کلید ثابت AWS را در Elasticsearch نگه داری.

قبل از خواندن، این‌ها را بدان۴ مفهوم
index

ساختاری برای سازمان‌دهی داده‌ها و پشتیبانی از جست‌وجو؛ در Elasticsearch سندها در index نگهداری می‌شوند.

بیشتر: index

Data Federation

روشی برای اجرای query روی داده‌های چند منبع، بدون الزام به انتقال و یکپارچه‌کردن آن‌ها در یک محل.

در حال نگارش: Data Federation

federated identity

روشی که در آن یک سرویس به هویت تأییدشده توسط سرویس دیگر اعتماد می‌کند و بر پایه آن دسترسی می‌دهد.

در حال نگارش: federated identity

schema

تعریف ساختار داده، از جمله نام فیلدها و نوع مقدارهای آن‌ها.

در حال نگارش: schema

قابلیت Data Federation در Elasticsearch Query Language یا ES|QL اجازه می‌دهد یک bucket در Amazon S3 به‌عنوان منبع داده ثبت شود و فایل‌های Parquet،؜ CSV،؜ TSV و NDJSON داخل آن مستقیماً خوانده شوند. دستور FROM همان ساختاری را دارد که برای index استفاده می‌شود، اما هیچ داده‌ای به cluster کپی نمی‌شود.

در این روش، schema از خود فایل استخراج می‌شود؛ بنابراین نیازی به ساخت ingest pipeline یا تعریف mapping نیست. برای فایل‌های Parquet،؜ فیلترها و انتخاب ستون‌ها به reader منتقل می‌شوند تا فقط ستون‌های موردنیاز از S3 خوانده شوند. همچنین یک query می‌تواند هم‌زمان یک index با داده‌های فعال و یک سال داده قدیمی در S3 را پوشش دهد.

روند راه‌اندازی چهار بخش اصلی دارد: نگهداری فایل‌ها در S3،؜ ثبت منبع داده و روش احراز هویت، تعریف dataset با مسیر فایل یا الگوی نام، و اجرای query با ES|QL. برای نمونه، پس از تعریف dataset با نام sales،؜ دستور FROM sales | LIMIT 10 داده‌ها را می‌خواند. اگر الگوی مسیر یک نوع فایل مشخص را نشان ندهد، باید format صریحاً تعیین شود.

روش احراز هویت آموزش، federated identity است که فقط در Elastic Cloud Hosted در دسترس است. در این روش، AWS یک token امضاشده از Elastic را با اطلاعات دسترسی موقت تعویض می‌کند؛ در نتیجه نیازی به کلید ثابت AWS نیست. دسترسی S3 به s3:GetObject و s3:ListBucket محدود می‌شود و مسیر مجاز در policy باید با محل واقعی فایل‌ها مطابقت داشته باشد؛ در غیر این صورت query با خطای 403 روبه‌رو می‌شود.

آموزش به Elastic Cloud Hosted نسخه 9.5 یا بالاتر و اشتراک Enterprise نیاز دارد. قابلیت در 9.5 آزمایشی است و باید در Elasticsearch و Kibana فعال شود؛ در 9.6 و بالاتر، طبق بخش تنظیمات منبع، در وضعیت technical preview قرار دارد و پیش‌فرض روشن است. بنابراین فعلاً باید آن را برای بررسی و آزمایش در نظر گرفت. کاربردهای مطرح‌شده شامل بررسی رخدادهای امنیتی، جست‌وجوی شواهد قدیمی برای ممیزی و بررسی log و metric فراتر از بازه نگهداری داده‌های فعال است.

نکته کلیدی

برای آزمایش ،؜ وضعیت نسخه و دسترسی مسیر فایل‌ها را بررسی کن. در 9.5 باید قابلیت را صریحاً فعال کنی؛ مسیر مجاز دسترسی هم باید با محل واقعی داده‌ها یکی باشد تا خطای 403 نگیری.

خواندن مقاله اصلی (در زبانه‌ی جدید باز می‌شود)
برچسب‌ها (۲)