You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by lu...@apache.org on 2022/05/21 12:45:12 UTC

[skywalking] 01/01: fix DataTable schema

This is an automated email from the ASF dual-hosted git repository.

lujiajing pushed a commit to branch polish-banyandb-conf
in repository https://gitbox.apache.org/repos/asf/skywalking.git

commit bcff878b30134c1763d07decaf3370d81bbcf901
Author: Megrez Lu <lu...@gmail.com>
AuthorDate: Sat May 21 20:44:20 2022 +0800

    fix DataTable schema
---
 .../storage/plugin/banyandb/MetadataRegistry.java  | 37 +++-------------------
 1 file changed, 4 insertions(+), 33 deletions(-)

diff --git a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
index b598e0ccfd..c2e101cf13 100644
--- a/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
+++ b/oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java
@@ -37,21 +37,16 @@ import org.apache.skywalking.banyandb.v1.client.metadata.Measure;
 import org.apache.skywalking.banyandb.v1.client.metadata.NamedSchema;
 import org.apache.skywalking.banyandb.v1.client.metadata.Stream;
 import org.apache.skywalking.banyandb.v1.client.metadata.TagFamilySpec;
-import org.apache.skywalking.oap.server.core.alarm.AlarmRecord;
 import org.apache.skywalking.oap.server.core.analysis.DownSampling;
-import org.apache.skywalking.oap.server.core.analysis.manual.log.LogRecord;
-import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
-import org.apache.skywalking.oap.server.core.analysis.metrics.DataTable;
 import org.apache.skywalking.oap.server.core.analysis.metrics.IntList;
 import org.apache.skywalking.oap.server.core.storage.annotation.ValueColumnMetadata;
 import org.apache.skywalking.oap.server.core.storage.model.Model;
 import org.apache.skywalking.oap.server.core.storage.model.ModelColumn;
-import org.apache.skywalking.oap.server.library.util.StringUtil;
+import org.apache.skywalking.oap.server.core.storage.type.StorageDataComplexObject;
 
 import javax.annotation.Nullable;
 import java.lang.reflect.ParameterizedType;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Comparator;
 import java.util.HashMap;
 import java.util.List;
@@ -136,8 +131,8 @@ public enum MetadataRegistry {
                     .compressWithZSTD()
                     .encodeWithGorilla()
                     .build();
-        } else if (DataTable.class.equals(modelColumn.getType())) {
-            return Measure.FieldSpec.newBinaryField(valueColumn.getValueCName())
+        } else if (StorageDataComplexObject.class.isAssignableFrom(modelColumn.getType())) {
+            return Measure.FieldSpec.newStringField(valueColumn.getValueCName())
                     .compressWithZSTD()
                     .build();
         } else if (double.class.equals(modelColumn.getType())) {
@@ -224,30 +219,6 @@ public enum MetadataRegistry {
         return tagMetadataList;
     }
 
-    /**
-     * Extract extra tags from Configuration.
-     * They are for tags defined for {@link SegmentRecord}, {@link LogRecord} and {@link AlarmRecord}.
-     *
-     * @param tags a series of tags joint by comma
-     * @return a list of {@link org.apache.skywalking.banyandb.v1.client.metadata.TagFamilySpec.TagSpec} generated from input
-     */
-    private List<TagMetadata> parseExtraTagSpecs(String tags, Schema.SchemaBuilder builder) {
-        if (StringUtil.isEmpty(tags)) {
-            return Collections.emptyList();
-        }
-        String[] tagsArray = tags.split(",");
-        if (tagsArray.length == 0) {
-            return Collections.emptyList();
-        }
-        List<TagMetadata> extraTagMetadataList = new ArrayList<>();
-        for (final String tagName : tagsArray) {
-            builder.spec(tagName, new ColumnSpec(ColumnType.TAG, String.class));
-            extraTagMetadataList.add(new TagMetadata(parseIndexRule(tagName, null),
-                    TagFamilySpec.TagSpec.newStringTag(tagName)));
-        }
-        return extraTagMetadataList;
-    }
-
     /**
      * Parse TagSpec from {@link ModelColumn}
      *
@@ -258,7 +229,7 @@ public enum MetadataRegistry {
     private TagFamilySpec.TagSpec parseTagSpec(ModelColumn modelColumn) {
         final Class<?> clazz = modelColumn.getType();
         final String colName = modelColumn.getColumnName().getStorageName();
-        if (String.class.equals(clazz) || DataTable.class.equals(clazz) || JsonObject.class.equals(clazz)) {
+        if (String.class.equals(clazz) || StorageDataComplexObject.class.isAssignableFrom(clazz) || JsonObject.class.equals(clazz)) {
             return TagFamilySpec.TagSpec.newStringTag(colName);
         } else if (int.class.equals(clazz) || long.class.equals(clazz)) {
             return TagFamilySpec.TagSpec.newIntTag(colName);