الانتقال إلى المحتوى الرئيسي
الدوال أدناه مُصمَّمة للاستخدام مع دوال التجميع timeSeries*() مثل timeSeriesInstantRateToGrid, timeSeriesLastToGrid, وغيرها.

seriesDecomposeSTL

استُحدث في: v24.1.0 يفكّك بيانات السلاسل الزمنية باستخدام STL (إجراء تفكيك الاتجاه الموسمي المعتمد على Loess) إلى مكوّن موسمي واتجاه ومكوّن متبقٍّ. البنية
seriesDecomposeSTL(series, period)
المعاملات القيمة المعادة تُرجع مصفوفة تتكوّن من أربع مصفوفات، حيث تحتوي المصفوفة الأولى على المكوّنات الموسمية، والثانية على الاتجاه، والثالثة على المكوّن المتبقي، والرابعة على مكوّن خط الأساس (الموسمي + الاتجاه). Array(Array(Float32), Array(Float32), Array(Float32), Array(Float32)) أمثلة تفكيك بيانات السلاسل الزمنية باستخدام STL
Query
SELECT seriesDecomposeSTL([10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34], 3) AS print_0
Response
┌───────────print_0──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ [[
        -13.529999, -3.1799996, 16.71,      -13.53,     -3.1799996, 16.71,      -13.53,     -3.1799996,
        16.71,      -13.530001, -3.18,      16.710001,  -13.530001, -3.1800003, 16.710001,  -13.530001,
        -3.1800003, 16.710001,  -13.530001, -3.1799994, 16.71,      -13.529999, -3.1799994, 16.709997
    ],
    [
        23.63,     23.63,     23.630003, 23.630001, 23.630001, 23.630001, 23.630001, 23.630001,
        23.630001, 23.630001, 23.630001, 23.63,     23.630001, 23.630001, 23.63,     23.630001,
        23.630001, 23.63,     23.630001, 23.630001, 23.630001, 23.630001, 23.630001, 23.630003
    ],
    [
        0, 0.0000019073486, -0.0000019073486, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -0.0000019073486, 0,
        0
    ],
    [
        10.1, 20.449999, 40.340004, 10.100001, 20.45, 40.34, 10.100001, 20.45, 40.34, 10.1, 20.45, 40.34,
        10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.1, 20.45, 40.34, 10.100002, 20.45, 40.34
    ]]                                                                                                                   │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

seriesOutliersDetectTukey

أُضيفت في: v24.2.0 تكتشف القيم الشاذة في بيانات السلاسل الزمنية باستخدام Tukey Fences. الصيغة
seriesOutliersDetectTukey(series[, min_percentile, max_percentile, K])
المعاملات
  • series — مصفوفة من القيم الرقمية. Array((UInt8/16/32/64)) أو Array(Float*)
  • min_percentile — اختياري. الحد الأدنى للمئين المُستخدَم لحساب المدى بين الربيعين (IQR). يجب أن تكون القيمة ضمن النطاق [0.02,0.98]. القيمة الافتراضية هي 0.25. Float*
  • max_percentile — اختياري. الحد الأقصى للمئين المُستخدَم لحساب المدى بين الربيعين (IQR). يجب أن تكون القيمة ضمن النطاق [0.02,0.98]. القيمة الافتراضية هي 0.75. Float*
  • K — اختياري. قيمة ثابتة غير سالبة لاكتشاف القيم الشاذة الطفيفة أو الأشد. القيمة الافتراضية هي 1.5. Float*
القيمة المُعادة تعيد مصفوفة بالطول نفسه لمصفوفة الإدخال، بحيث تمثل كل قيمة درجة لاحتمال وجود شذوذ في العنصر المقابل في السلسلة. وتشير الدرجة غير الصفرية إلى شذوذ محتمل. Array(Float32) أمثلة الاكتشاف الأساسي للقيم الشاذة
Query
SELECT seriesOutliersDetectTukey([-3, 2, 15, 3, 5, 6, 4, 5, 12, 45, 12, 3, 3, 4, 5, 6]) AS print_0
Response
┌───────────print_0─────────────────┐
│[0,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0] │
└───────────────────────────────────┘
اكتشاف القيم الشاذة بمعلمات مخصصة
Query
SELECT seriesOutliersDetectTukey([-3, 2, 15, 3, 5, 6, 4.50, 5, 12, 45, 12, 3.40, 3, 4, 5, 6], 0.2, 0.8, 1.5) AS print_0
Response
┌─print_0──────────────────────────────┐
│ [0,0,0,0,0,0,0,0,0,19.5,0,0,0,0,0,0] │
└──────────────────────────────────────┘

seriesPeriodDetectFFT

أُضيف في: v23.12.0 يحدّد فترة بيانات السلاسل الزمنية المعطاة باستخدام FFT - تحويل فورييه السريع الصيغة
seriesPeriodDetectFFT(series)
الوسائط القيمة المُعادة تُرجِع قيمة حقيقية تساوي فترة بيانات السلاسل الزمنية series. وتكون NaN عندما يكون عدد نقاط البيانات أقل من أربع. Float64 أمثلة اكتشاف الفترة باستخدام نمط بسيط
Query
SELECT seriesPeriodDetectFFT([1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6, 1, 4, 6]) AS print_0
Response
┌───────────print_0──────┐
│                      3 │
└────────────────────────┘
اكتشاف الدورية باستخدام نمط معقّد
Query
SELECT seriesPeriodDetectFFT(arrayMap(x -> abs((x % 6) - 3), range(1000))) AS print_0
Response
┌─print_0─┐
│       6 │
└─────────┘

timeSeriesCopyTag

أُضيفت في: v26.1.0 تنسخ وسمًا محددًا من مجموعة وسوم (src_group) إلى مجموعة أخرى (dest_group). وتستبدل الدالة أي قيم سابقة للوسم المنسوخ في dest_group. إذا لم يكن الوسم المنسوخ موجودًا في src_group، فستزيله الدالة من dest_group أيضًا. وتحاكي الدالة منطق النسخ في مُعدِّلات Prometheus group left/group right. الصيغة
timeSeriesCopyTag(dest_group, src_group, tag_to_copy)
الوسيطات
  • dest_group — مجموعة الوسوم الوجهة. UInt64
  • src_group — مجموعة الوسوم المصدر. UInt64
  • tag_to_copy — اسم الوسم المراد نسخه. String
القيمة المُعادة تعيد مجموعة وسوم تتضمن الوسوم من dest_group بالإضافة إلى الوسوم المنسوخة من src_group. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS dest_group,
       timeSeriesTagsToGroup([('code', '404'), ('message', 'Page not found')], '__name__', 'http_codes') AS src_group,
       timeSeriesCopyTag(dest_group, src_group, '__name__') AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─dest_group─┬─src_group─┬─result_group─┬─timeSeriesGroupToTags(result_group)────────────────────────┐
│          1 │         2 │            3 │ [('__name__','http_codes'),('code','404'),('region','eu')] │
└────────────┴───────────┴──────────────┴────────────────────────────────────────────────────────────┘

timeSeriesCopyTags

أُضيف في: v26.1.0 ينسخ الوسوم المحددة من مجموعة وسوم (src_group) إلى مجموعة أخرى (dest_group). تستبدل الدالة أي قيم سابقة للوسوم المنسوخة في dest_group. إذا كان بعض الوسوم المنسوخة غير موجود في src_group، فستحذفه الدالة من dest_group أيضًا. تحاكي الدالة منطق النسخ في مُعدِّلات prometheus group left/group right. الصيغة
timeSeriesCopyTags(dest_group, src_group, tags_to_copy)
المعاملات
  • dest_group — مجموعة الوسوم الوجهة. UInt64
  • src_group — مجموعة الوسوم المصدر. UInt64
  • tags_to_copy — أسماء الوسوم المراد نسخها. Array(String)
القيمة المُعادة تُعيد مجموعة وسوم تتضمن الوسوم من dest_group بالإضافة إلى الوسوم المنسوخة من src_group. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS dest_group,
       timeSeriesTagsToGroup([('code', '404'), ('message', 'Page not found')], '__name__', 'http_codes') AS src_group,
       timeSeriesCopyTags(dest_group, src_group, ['__name__', 'code', 'env']) AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─dest_group─┬─src_group─┬─result_group─┬─timeSeriesGroupToTags(result_group)────────────────────────┐
│          1 │         2 │            3 │ [('__name__','http_codes'),('code','404'),('region','eu')] │
└────────────┴───────────┴──────────────┴────────────────────────────────────────────────────────────┘

timeSeriesExtractTag

قُدِّمت في: v26.1.0 تستخرج قيمة وسم محدد من المجموعة. وتُرجِع NULL إذا لم تعثر عليه. انظر أيضًا الدالة timeSeriesGroupToTags(). البنية
timeSeriesExtractTag(group)
الوسيطات
  • group — مجموعة من الوسوم. UInt64
  • tag_to_extract — اسم الوسم المراد استخراجه من المجموعة String
القيمة المعادة تُرجِع قيمة وسم محدد. Nullable(String) أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesExtractTag(group, '__name__'),
       timeSeriesExtractTag(group, 'env'),
       timeSeriesExtractTag(group, 'instance')
Response
┌─group─┬─timeSeriesExtractTag(group, '__name__')─┬─timeSeriesExtractTag(group, 'env')─┬─timeSeriesExtractTag(group, 'instance')─┐
│     1 │ http_requests_count                     │ dev                                │ ᴺᵁᴸᴸ                                    │
└───────┴─────────────────────────────────────────┴────────────────────────────────────┴─────────────────────────────────────────┘

timeSeriesFromGrid

أُضيف في: v25.8.0 يحوّل مصفوفة من القيم [x1, x2, x3, ...] إلى مصفوفة من Tuples [(start_timestamp, x1), (start_timestamp + step, x2), (start_timestamp + 2 * step, x3), ...]. يُزاد الطابع الزمني الحالي بمقدار step حتى يصبح أكبر من end_timestamp إذا لم يتطابق عدد القيم مع عدد الطوابع الزمنية، فإن الدالة تُطلق استثناءً. يتم تخطي قيم NULL في [x1, x2, x3, ...]، ولكن يستمر مع ذلك زيادة الطابع الزمني الحالي. على سبيل المثال، بالنسبة إلى [value1, NULL, x2] تُرجع الدالة [(start_timestamp, x1), (start_timestamp + 2 * step, x2)]. البنية
timeSeriesFromGrid(start_timestamp, end_timestamp, step, values)
الوسيطات القيمة المعادة تعيد قيماً من مصفوفة القيم المصدر، مدمجة مع الطوابع الزمنية على شبكة زمنية منتظمة يحددها start_timestamp وstep. Array(Tuple(DateTime64, Float64)) أمثلة مثال على الاستخدام
Query
SELECT timeSeriesFromGrid('2025-06-01 00:00:00'::DateTime64(3), '2025-06-01 00:01:30.000'::DateTime64(3), 30, [10, 20, NULL, 30]) AS result;
Response
┌─────────────────────────────────────────────result─────────────────────────────────────────────┐
│ [('2025-06-01 00:00:00.000',10),('2025-06-01 00:00:30.000',20),('2025-06-01 00:01:30.000',30)] │
└────────────────────────────────────────────────────────────────────────────────────────────────┘

timeSeriesGroupToSamplingKey

تم تقديمه في: v26.4.0 يعيد مفتاح أخذ عينات UInt64 ثابتًا مشتقًا من وسوم مجموعة محددة. القيمة حتمية: فالوسوم المدخلة المتطابقة تُنتج دائمًا المفتاح نفسه. وهو مخصّص ليكون مفتاح ترتيب لعمليات أخذ العينات مثل limitk وlimit_ratio. الصياغة
timeSeriesGroupToSamplingKey(group)
الوسائط
  • group — مجموعة من الوسوم. UInt64
القيمة المُعادة قيمة تجزئة UInt64 ثابتة مشتقة من الوسوم المرتبطة بالمجموعة. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesGroupToSamplingKey(group) AS sampling_key
Response
┌─group─┬─────────sampling_key─┐
│     1 │ 12876543210987654321 │
└───────┴──────────────────────┘

timeSeriesGroupToTags

أُضيفت في: v26.1.0 تعيد أسماء الوسوم وقيمها المرتبطة بمجموعة محددة. راجع أيضًا الدالة timeSeriesTagsToGroup(). البنية
timeSeriesGroupToTags(group)
الأسماء البديلة: timeSeriesTagsGroupToTags الوسيطات
  • group — مجموعة من الوسوم. UInt64
القيمة المُعادة تُرجع مصفوفة من الأزواج (tag_name, tag_value). تكون المصفوفة المُعادة مرتبة دائمًا حسب tag_name، ولا تتضمن أبدًا tag_name نفسه أكثر من مرة. Array(Tuple(String, String)) أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesGroupToTags(group) AS sorted_tags,
       timeSeriesTagsToGroup(sorted_tags) AS same_group,
       throwIf(same_group != group)
Response
┌─group─┬─sorted_tags────────────────────────────────────────────────────────┬─same_group─┬─throwIf(notE⋯up, group))─┐
│     1 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │          1 │                        0 │
└───────┴────────────────────────────────────────────────────────────────────┴────────────┴──────────────────────────┘

timeSeriesIdToGroup

قُدِّمت في: v26.1.0 تعيد أسماء الوسوم وقيمها المرتبطة بمُعرّف محدد لسلسلة زمنية. انظر أيضًا الدالة timeSeriesStoreTags(). الصياغة
timeSeriesIdToGroup(id)
الأسماء المستعارة: timeSeriesIdToTagsGroup الوسائط القيمة المعادة تعيد مجموعة من الوسوم المرتبطة بالمعرّف id لسلسلة زمنية. UInt64 أمثلة مثال
Query
SELECT 8374283493092 AS id,
       timeSeriesStoreTags(id, [('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS same_id,
       throwIf(same_id != id),
       timeSeriesIdToGroup(same_id) AS group,
       timeSeriesGroupToTags(group)
Response
┌────────────id─┬───────same_id─┬─throwIf(notE⋯me_id, id))─┬─group─┬─timeSeriesGroupToTags(group)───────────────────────────────────────┐
│ 8374283493092 │ 8374283493092 │                        0 │     1 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │
└───────────────┴───────────────┴──────────────────────────┴───────┴────────────────────────────────────────────────────────────────────┘

timeSeriesIdToTags

أُضيف في: v25.8.0 يعيد الوسوم المرتبطة بمُعرّف محدد لسلسلة زمنية. راجع أيضًا الدالة timeSeriesStoreTags(). البنية
timeSeriesIdToTags(id)
الوسيطات القيمة المعادة تُرجِع مصفوفة من الأزواج (tag_name, tag_value). تكون المصفوفة المعادة مرتبة دائمًا حسب tag_name، ولا تحتوي أبدًا على tag_name نفسه أكثر من مرة. Array(Tuple(String, String)) أمثلة مثال
Query
SELECT 8374283493092 AS id,
       timeSeriesStoreTags(id, [('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS same_id,
       throwIf(same_id != id),
       timeSeriesIdToTags(same_id)
Response
┌────────────id─┬───────same_id─┬─throwIf(notE⋯me_id, id))─┬─timeSeriesIdToTags(same_id)────────────────────────────────────────┐
│ 8374283493092 │ 8374283493092 │                        0 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │
└───────────────┴───────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────┘

timeSeriesJoinTags

أُضيفت في: v26.1.0 تجمع هذه الدالة قيم الوسوم المحددة والمستخرجة من مجموعة وسوم. وتُدرِج فاصلاً بين القيم المجمّعة وتُرجع مجموعة وسوم جديدة يُضبط فيها الوسم dest_tag على القيمة المجمّعة. وتحاكي هذه الدالة منطق دالة Prometheus label_join(). البنية
timeSeriesJoinTags(group, dest_tag, separator, src_tags)
الوسائط
  • group — مجموعة من الوسوم. UInt64
  • dest_tag — اسم وسم لنتيجة الربط، وسيُضاف إلى group. String
  • separator — فاصل يُدرج بين القيم المربوطة. String
  • src_tags — أسماء وسوم المصدر التي تحتوي على القيم التي سيجري ربطها. Array(String)
القيمة المُعادة يعيد مجموعة وسوم جديدة مع تعيين الوسم dest_tag إلى نتيجة الربط. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('__name__', 'up'), ('job', 'api-server'), ('src1', 'a'), ('src2', 'b'), ('src3', 'c')]) AS group,
       timeSeriesJoinTags(group, 'foo', ',', ['src1', 'src2', 'src3']) AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─group─┬─result_group─┬─timeSeriesGroupToTags(result_group)─────────────────────────────────────────────────────────────┐
│     1 │            2 │ [('__name__','up'),('foo','a,b,c'),('job','api-server'),('src1','a'),('src2','b'),('src3','c')] │
└───────┴──────────────┴─────────────────────────────────────────────────────────────────────────────────────────────────┘

timeSeriesRange

أُضيف في: v25.8.0 يُنشئ نطاقًا من الطوابع الزمنية [start_timestamp, start_timestamp + step, start_timestamp + 2 * step, …, end_timestamp]. إذا كان start_timestamp مساويًا لـ end_timestamp، فستُرجِع الدالة مصفوفة من عنصر واحد تحتوي على [start_timestamp]. الدالة timeSeriesRange() مشابهة للدالة range. البنية
timeSeriesRange(start_timestamp, end_timestamp, step)
الوسيطات القيمة المُعادة تُرجِع نطاقًا من الطوابع الزمنية. Array(DateTime64) أمثلة مثال على الاستخدام
Query
SELECT timeSeriesRange('2025-06-01 00:00:00'::DateTime64(3), '2025-06-01 00:01:00'::DateTime64(3), 30)
Response
┌────────────────────────────────────result─────────────────────────────────────────┐
│ ['2025-06-01 00:00:00.000', '2025-06-01 00:00:30.000', '2025-06-01 00:01:00.000'] │
└───────────────────────────────────────────────────────────────────────────────────┘

timeSeriesRemoveAllTagsExcept

أُضيفت في: v26.1.0 يزيل كل الوسوم من مجموعة وسوم باستثناء الوسوم المحددة. راجع أيضًا الدالة timeSeriesRemoveTag(), timeSeriesRemoveTags(). الصياغة
timeSeriesRemoveAllTagsExcept(group, tags_to_keep)
الوسيطات
  • group — مجموعة من الوسوم. UInt64
  • tags_to_keep — أسماء الوسوم المطلوب الاحتفاظ بها في المجموعة. Array(String)
القيمة المُعادة مجموعة جديدة من الوسوم لا يُحتفَظ فيها إلا بالوسوم المحددة. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group,
       timeSeriesRemoveAllTagsExcept(group, ['env']) AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─group─┬─result_group─┬─timeSeriesGroupToTags(result_group)─┐
│     1 │            2 │ [('env','dev')]                     │
└───────┴──────────────┴─────────────────────────────────────┘

timeSeriesRemoveTag

أُضيف في: v26.1.0 يزيل وسمًا محددًا من مجموعة من الوسوم. إذا لم يكن هذا الوسم موجودًا في المجموعة، فستُعاد المجموعة كما هي. انظر أيضًا الدالة timeSeriesRemoveTags()، timeSeriesRemoveAllTagsExcept(). الصيغة
timeSeriesRemoveTag(group, tag_to_remove)
الوسيطات
  • group — مجموعة من الوسوم. UInt64
  • tag_to_remove — اسم الوسم المراد إزالته من المجموعة. String
القيمة المعادة مجموعة جديدة من الوسوم من دون الوسم المحدد. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group_of_3,
       timeSeriesRemoveTag(group_of_3, '__name__') AS group_of_2,
       timeSeriesGroupToTags(group_of_2),
       timeSeriesRemoveTag(group_of_2, 'env') AS group_of_1,
       timeSeriesGroupToTags(group_of_1),
       timeSeriesRemoveTag(group_of_1, 'region') AS empty_group,
       timeSeriesGroupToTags(empty_group)
Response
┌─group_of_3─┬─group_of_2─┬─timeSeriesGroupToTags(group_of_2)─┬─group_of_1─┬─timeSeriesGroupToTags(group_of_1)─┬─empty_group─┬─timeSeriesGroupToTags(empty_group)─┐
│          1 │          2 │ [('env','dev'),('region','eu')]   │          3 │ [('region','eu')]                 │           0 │ []                                 │
└────────────┴────────────┴───────────────────────────────────┴────────────┴───────────────────────────────────┴─────────────┴────────────────────────────────────┘

timeSeriesRemoveTags

أُضيفت في: v26.1.0 تزيل الوسوم المحددة من مجموعة وسوم. إذا لم تكن بعض الوسوم المحددة موجودة في مجموعة الوسوم، فستتجاهلها الدالة. راجع أيضًا الدالة timeSeriesRemoveTag(), timeSeriesRemoveAllTagsExcept(). البنية
timeSeriesRemoveTags(group, tags_to_remove)
الوسيطات
  • group — مجموعة من الوسوم. UInt64
  • tags_to_remove — أسماء الوسوم المطلوب إزالتها من المجموعة. Array(String)
القيمة المعادة مجموعة وسوم جديدة من دون الوسوم المحددة. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group_of_3,
       timeSeriesRemoveTags(group_of_3, ['env', 'region']) AS group_of_1,
       timeSeriesGroupToTags(group_of_1),
       timeSeriesRemoveTags(group_of_1, ['__name__', 'nonexistent']) AS empty_group,
       timeSeriesGroupToTags(empty_group)
Response
┌─group_of_3─┬─group_of_1─┬─timeSeriesGroupToTags(group_of_1)────┬─empty_group─┬─timeSeriesGroupToTags(empty_group)─┐
│          1 │          2 │ [('__name__','http_requests_count')] │           0 │ []                                 │
└────────────┴────────────┴──────────────────────────────────────┴─────────────┴────────────────────────────────────┘

timeSeriesReplaceTag

أُضيف في: v26.1.0 يطابق التعبير النمطي regex قيمة الوسم src_tag. إذا تحقق تطابق، فستكون قيمة الوسم dest_tag في المجموعة المُعادة هي الناتج عن توسيع replacement، إلى جانب الوسوم الأصلية في الإدخال. تحاكي هذه الدالة منطق دالة prometheus label_replace(). الصيغة
timeSeriesReplaceTag(group, dest_tag, replacement, src_tag, regex)
الوسيطات
  • group — مجموعة من الوسوم. UInt64
  • dest_tag — اسم وسم الوجهة الذي ستُحفَظ فيه المجموعة الناتجة. String
  • replacement — نمط استبدال، ويمكن أن يحتوي على 1أو1 أو 2 أو $name للإشارة إلى المجموعات الملتقطة في التعبير النمطي ‘regex’. String
  • src_tag — اسم وسم تُستخدم قيمته لمطابقة التعبير النمطي ‘regex’. String
  • regex — تعبير نمطي. String
القيمة المُعادة مجموعة وسوم جديدة قد يُضاف إليها dest_tag. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('__name__', 'up'), ('job', 'api-server'), ('service', 'a:c')]) AS group,
       timeSeriesReplaceTag(group, 'foo', '$1', 'service', '(.*):.*') AS result_group,
       timeSeriesGroupToTags(result_group)
Response
┌─group─┬─result_group─┬─timeSeriesGroupToTags(result_group)────────────────────────────────────┐
│     1 │            2 │ [('__name__','up'),('foo','a'),('job','api-server'),('service','a:c')] │
└───────┴──────────────┴────────────────────────────────────────────────────────────────────────┘

timeSeriesStoreTags

أُضيف في: v25.8.0 يخزّن في سياق الاستعلام تعيينًا بين معرّف محدد لسلسلة زمنية ومجموعة من الوسوم. يمكن استخدام الدالتين timeSeriesIdToTags() وtimeSeriesIdToGroup() للوصول إلى هذا التعيين لاحقًا أثناء تنفيذ الاستعلام. الصياغة
timeSeriesStoreTags(id, tags_array, separate_tag_name_1, separate_tag_value_1, ...)
الوسائط القيمة المُعادة يُرجع معرّف سلسلة زمنية (أي الوسيط الأول فقط). أمثلة مثال
Query
SELECT 8374283493092 AS id,
       timeSeriesStoreTags(id, [('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS same_id,
       throwIf(same_id != id),
       timeSeriesIdToTags(same_id),
       timeSeriesGroupToTags(timeSeriesIdToGroup(same_id))
Response
┌────────────id─┬───────same_id─┬─throwIf(notEquals(same_id, id))─┬─timeSeriesIdToTags(same_id)────────────────────────────────────────┬─timeSeriesGroupToTags(timeSeriesIdToGroup(same_id))────────────────┐
│ 8374283493092 │ 8374283493092 │                               0 │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │ [('__name__','http_requests_count'),('env','dev'),('region','eu')] │
└───────────────┴───────────────┴─────────────────────────────────┴────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────┘

timeSeriesTagsToGroup

قُدِّمت في: v26.1.0 تُرجع مجموعة من الوسوم المرتبطة بالوسوم المحددة. إذا عُثر على مجموعة الوسوم نفسها عدة مرات أثناء تنفيذ الاستعلام، فستُرجع الدالة المجموعة نفسها. إذا كانت مجموعة الوسوم فارغة، فستُرجع الدالة دائمًا 0. انظر أيضًا الدالة timeSeriesGroupToTags(). البنية
timeSeriesTagsToGroup(tags_array, tag_name_1, tag_value_1, tag_name2, tag_value2, ...)
الوسيطات القيمة المُعادة يُرجع مجموعة وسوم مرتبطة بالوسوم المحددة. UInt64 أمثلة مثال
Query
SELECT timeSeriesTagsToGroup([('region', 'eu'), ('env', 'dev')], '__name__', 'http_requests_count') AS group1,
       timeSeriesTagsToGroup([], '__name__', 'http_failures') AS group2,
       timeSeriesTagsToGroup([]) AS empty_group,
       timeSeriesTagsToGroup([], '__name__', 'http_failures') AS same_group2,
       throwIf(same_group2 != group2),
       timeSeriesGroupToTags(group2)
Response
┌─group1─┬─group2─┬─empty_group─┬─same_group2─┬─throwIf(notEquals(same_group2, group2))─┬─timeSeriesGroupToTags(group2)──┐
│      1 │      2 │           0 │           2 │                                       0 │ [('__name__','http_failures')] │
└────────┴────────┴─────────────┴─────────────┴─────────────────────────────────────────┴────────────────────────────────┘

timeSeriesThrowDuplicateSeriesIf

أُضيفت في: v26.2.0 تتحقق الدالة من condition، وإذا كانت true فإنها تثير استثناءً بالرسالة التالية Multiple series have the same tags <tags>, duplicate series in the same result set are not allowed. إذا كانت condition هي false، فتعيد الدالة 0. تشبه هذه الدالة throwIf()، لكنها تستخدم رمز خطأ مختلفًا وتنسّق رسالة الخطأ بشكل مختلف. البنية
timeSeriesThrowDuplicateSeriesIf(condition, group)
الوسيطات
  • condition — الشرط المراد التحقق منه، ويحتوي عادةً على الدالة count() UInt8
  • group — مجموعة وسوم. UInt64
القيمة المُعادة تعيد 0. UInt8 أمثلة مثال
Query
CREATE TABLE test(tags Array(Tuple(String, String))) engine=Memory;

INSERT INTO test VALUES ([('__name__', 'up')]);

SELECT timeSeriesTagsToGroup(tags) AS group
FROM test
GROUP BY group
HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0;  -- OK

INSERT INTO test VALUES ([('__name__', 'up')]);

SELECT timeSeriesTagsToGroup(tags) AS group
FROM test
GROUP BY group
HAVING timeSeriesThrowDuplicateSeriesIf(count() > 1, group) = 0;  -- Throws exception "Multiple series have the same tags {'__name__': 'up'}"
Response
آخر تعديل في ٢٥ يونيو ٢٠٢٦