Elasticsearch & Full Text Search Systems · บทเรียน

การจัดการข้อมูลอนุกรมเวลา

ปรับ Elasticsearch ให้เหมาะกับข้อมูลอนุกรมเวลา รวมถึงสตรีมข้อมูล ILM (การจัดการวงจรชีวิตดัชนี) และสถาปัตยกรรมแบบร้อน-อุ่น-เย็น

บทเรียน 2 จาก 411 ขั้นตอน

การจัดการข้อมูลอนุกรมเวลา เป็นบทเรียน Elasticsearch & Full Text Search Systems ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Elasticsearch & Full Text Search Systems และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Elasticsearch & Full Text Search Systems มีบทเรียนทั้งหมด 4 บทเรียน

บางส่วนของบทเรียนนี้ยังไม่ได้รับการแปล และแสดงเป็นภาษาอังกฤษ

What is Time-Series Data?

Time-series data is information collected over a period of time, often at regular intervals. Think of it as a sequence of data points indexed by time.

Examples include:

  • System logs: Events happening on a server.
  • IoT sensor readings: Temperature, humidity from devices.
  • Financial data: Stock prices over days or hours.

This data is typically append-only and usually immutable once recorded.

Why Elasticsearch for Time-Series?

Elasticsearch is an excellent choice for managing time-series data due to its:

  • Scalability: Handles massive volumes of data.
  • Speed: Fast indexing and search capabilities.
  • Analytics: Powerful aggregations for insights.
  • Flexibility: Can store structured and unstructured data.

It's particularly strong for use cases like log analytics, metric monitoring, and security event management.

Introducing Data Streams

Data streams are a core feature in Elasticsearch designed specifically for time-series data. They simplify management by automatically rolling over to new indices as needed.

When you index data into a data stream, it always writes to the current write index. Queries, however, search across all backing indices transparently. This makes managing large, continuously growing datasets much easier.

Creating Your First Data Stream

To create a data stream, you first need an index template that defines its structure and points to a data stream.

Then, simply indexing a document into the stream's name will create it automatically based on the template:

PUT _index_template/my-data-stream-template
{
  "index_patterns": ["my-data-stream-*"],
  "data_stream": {},
  "priority": 200,
  "template": {
    "settings": {
      "number_of_shards": 1
    },
    "mappings": {
      "properties": {
        "@timestamp": {
          "type": "date",
          "format": "strict_date_optional_time||epoch_millis"
        },
        "message": { "type": "text" }
      }
    }
  }
}

// Indexing a document creates the stream
POST my-data-stream/_doc
{
  "@timestamp": "2023-10-27T10:00:00Z",
  "message": "Sensor reading: 25.5C"
}

Automating with ILM

Index Lifecycle Management (ILM) is a powerful feature that automates the management of your indices through various phases of their life.

For time-series data, ILM helps you:

  • Automatically roll over indices when they reach a certain size or age.
  • Move older, less frequently accessed data to cheaper storage.
  • Delete data that is no longer needed.

The Four ILM Phases

ILM policies define actions for indices across four main phases:

  • Hot: Indices are actively being written to and frequently queried. Requires fast storage.
  • Warm: Indices are no longer being written to, but are still queried. Can be read-only and potentially on slower storage.
  • Cold: Indices are rarely queried and often stored on very cheap, slow storage.
  • Delete: Indices are no longer needed and are safely removed from the cluster.

Crafting an ILM Policy

Here's an example of an ILM policy that defines rollover, forcemerge (for warm phase), and deletion stages for time-series data:

PUT _ilm/policy/my-ts-policy
{
  "policy": {
    "phases": {
      "hot": {
        "actions": {
          "rollover": {
            "max_age": "7d",
            "max_docs": 10000000,
            "max_size": "50gb"
          }
        }
      },
      "warm": {
        "min_age": "30d",
        "actions": {
          "forcemerge": {
            "max_num_segments": 1
          },
          "shrink": {
            "number_of_shards": 1
          }
        }
      },
      "cold": {
        "min_age": "90d",
        "actions": {
          "freeze": {}
        }
      },
      "delete": {
        "min_age": "180d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}

Hot-Warm-Cold Architecture

A Hot-Warm-Cold architecture optimizes resource utilization and cost for time-series data by using different types of nodes for different ILM phases.

  • Hot nodes: Use fast CPUs, SSDs for high indexing and query throughput.
  • Warm nodes: Use less powerful CPUs, HDDs (or slower SSDs) for older, read-only data.
  • Cold nodes: Use very cheap, high-capacity storage, potentially even object storage, for rarely accessed data.

Assigning Node Roles

You can configure nodes to serve specific roles (hot, warm, cold) by setting node.attr in their elasticsearch.yml configuration file.

ILM policies then use these attributes to automatically move indices to the appropriate node types as they transition through phases.

# For a hot node
node.roles: [ data ]
node.attr.data: hot

# For a warm node
node.roles: [ data ]
node.attr.data: warm

# For a cold node
node.roles: [ data ]
node.attr.data: cold

ILM & Data Stream Check

Which of the following statements about Elasticsearch's time-series features are TRUE?

Time-Series Recap

Great job! You've explored how Elasticsearch is optimized for time-series data.

We covered:

  • Data Streams: Simplifying index management and rollovers.
  • ILM (Index Lifecycle Management): Automating index transitions through hot, warm, cold, and delete phases.
  • Hot-Warm-Cold Architectures: Optimizing cluster resources and costs by assigning different node types to specific ILM phases.

These features are essential for building scalable and cost-effective time-series solutions with Elasticsearch.

เริ่มต้นได้ฟรี

เรียนรู้ Elasticsearch & Full Text Search Systems ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
12
บทเรียน
48

คำถามที่พบบ่อย

บทเรียน “การจัดการข้อมูลอนุกรมเวลา” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การจัดการข้อมูลอนุกรมเวลา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Elasticsearch & Full Text Search Systems ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Elasticsearch & Full Text Search Systems มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การจัดการข้อมูลอนุกรมเวลา”

ปรับ Elasticsearch ให้เหมาะกับข้อมูลอนุกรมเวลา รวมถึงสตรีมข้อมูล ILM (การจัดการวงจรชีวิตดัชนี) และสถาปัตยกรรมแบบร้อน-อุ่น-เย็น คุณปฏิบัติ Elasticsearch & Full Text Search Systems ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Elasticsearch & Full Text Search Systems หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Elasticsearch & Full Text Search Systems บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การจัดการข้อมูลอนุกรมเวลา” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Elasticsearch & Full Text Search Systems นี้ได้ไหม

ได้ บทเรียน Elasticsearch & Full Text Search Systems ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. ความสามารถด้านการค้นหาเชิงภูมิศาสตร์
  2. การจัดการข้อมูลอนุกรมเวลา
  3. กลยุทธ์การนำระบบขึ้นใช้งานจริง
  4. การจัดการวงจรชีวิตดัชนี
← กลับไปที่ Elasticsearch & Full Text Search Systems