Michael Latta
06/22/2022, 3:11 PMMichael Latta
06/25/2022, 6:24 PMK.N. Bhargav
06/28/2022, 5:18 AMcurl -X POST "<http://localhost:9000/tableConfigs>" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"tableName\": \"transcript\", \"segmentsConfig\" : { \"timeColumnName\": \"timestampInEpoch\", \"timeType\": \"MILLISECONDS\", \"replication\" : \"1\", \"schemaName\" : \"transcript\" }, \"tableIndexConfig\" : { \"invertedIndexColumns\" : [], \"loadMode\" : \"MMAP\" }, \"tenants\" : { \"broker\":\"DefaultTenant\", \"server\":\"DefaultTenant\" }, \"tableType\":\"OFFLINE\", \"metadata\": {}}"
but getting the following error
{
"_code": 400,
"_error": "Invalid TableConfigs. Missing required creator property 'schema' (index 1)\n at [Source: (String)\"{\n \"tableName\": \"transcript\",\n \"segmentsConfig\" : {\n \"timeColumnName\": \"timestampInEpoch\",\n \"timeType\": \"MILLISECONDS\",\n \"replication\" : \"1\",\n \"schemaName\" : \"transcript\"\n },\n \"tableIndexConfig\" : {\n \"invertedIndexColumns\" : [],\n \"loadMode\" : \"MMAP\"\n },\n \"tenants\" : {\n \"broker\":\"DefaultTenant\",\n \"server\":\"DefaultTenant\"\n },\n \"tableType\":\"OFFLINE\",\n \"metadata\": {}\n}\"; line: 19, column: 1] (through reference chain: org.apache.pinot.spi.config.TableConfigs[\"schema\"])"
}
I don’t want to execute stuff from the CLI in order to add a table config as shown here. Can someone help me in understanding where I’m going wrong and what’s the right request structure / way to do this via the REST API?Michael Latta
06/29/2022, 12:55 AMDeepika Eswar
07/14/2022, 11:19 AMJeff Behl
07/14/2022, 5:34 PMCaught exception while uploading segment: aws_flowlogs__0__331__20220714T1655Z from instance: Server_pinot-server-5.pinot-server-headless.pinot-eng.svc.cluster.local_8098
java.nio.file.FileSystemException: /var/pinot/controller/data/pinot-controller-1.pinot-controller-headless.pinot-eng.svc.cluster.local_9000/fileUploadTemp/aws_flowlogs__0__331__20220714T1655Z.ef130a54-cefe-4619-91b4-e1370c086d4f -> /var/pinot/controller/data/aws_flowlogs/aws_flowlogs__0__331__20220714T1655Z.tmp.73e9073d-2d5d-4e92-899d-8a246177f759: No space left on device
thanks for any explanation to this newbie!Deepika Eswar
07/15/2022, 6:38 AMkarsen53
07/15/2022, 9:53 AMAlice
07/18/2022, 8:02 AMselect min(value) from table_name
Jeff Behl
07/19/2022, 2:01 PM"dateTimeFieldSpecs": [
{
"name": "start",
"dataType": "LONG",
"format": "1:SECONDS:EPOCH",
"granularity": "1:SECONDS"
},
{
"name": "end",
"dataType": "LONG",
"format": "1:SECONDS:EPOCH",
"granularity": "1:SECONDS"
}
]
but am now thinking they should be TIMESTAMP dataType? I’m not clear on the implications. We will be doing sum aggregations based groupings of like minute/hour/day/etc. thanks in advanceMarc Kriguer
07/22/2022, 10:18 PMUgloadSegment
command to work,
I am invoking the following command from the "pinot" directory (where the "git clone" command brought in all the pinot source code):
./build/bin/pinot-admin.sh UploadSegment -controllerHost A.B.C.D -controllerPort 9000 -segmentDir ./july-13-segment
where A.B.C.D is a Linux machine (provisioned through Google Cloud) that our team has set up to be our initial instance of Pinot (we are initially just provisioning one instance, until we need to scale up). The july-13-segment
directory just contains 3 files: two data files that are meant to wind up in the same segment; the files are named 2022-07-13T22_02_50.179274000Z.json and 2022-07-13T22_02_52.770718122Z.json, and each contains a single JSON string that we were able to successfully import into Pinot via Kafka (until we determined that Kafka seemed to be our performance bottleneck). The third file, named schema.json
, is the definition of the schema of the table I want the segments to go into. I'll attach it to this message, in case the contents do matter. When I run the above command, the output/error message are:
... [Lots of messages about plugins]
Uploading segment tar file: ./july-13-segment/schema.json
Sending request: <http://A.B.C.D:9000/v2/segments?tableName> to controller: pinot-controller-0.pinot-controller-headless.pinot-quickstart.svc.cluster.local, version: Unknown
org.apache.pinot.common.exception.HttpErrorStatusException: Got error status code: 500 (Internal Server Error) with reason: "Exception while uploading segment: Input is not in the .gz format" while sending request: <http://A.B.C.D:9000/v2/segments?tableName> to controller: pinot-controller-0.pinot-controller-headless.pinot-quickstart.svc.cluster.local, version: Unknown
at org.apache.pinot.common.utils.http.HttpClient.wrapAndThrowHttpException(HttpClient.java:442)
at org.apache.pinot.common.utils.FileUploadDownloadClient.uploadSegment(FileUploadDownloadClient.java:597)
at org.apache.pinot.tools.admin.command.UploadSegmentCommand.execute(UploadSegmentCommand.java:176)
at org.apache.pinot.tools.Command.call(Command.java:33)
at org.apache.pinot.tools.Command.call(Command.java:29)
at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine.execute(CommandLine.java:2078)
at org.apache.pinot.tools.admin.PinotAdministrator.execute(PinotAdministrator.java:165)
at org.apache.pinot.tools.admin.PinotAdministrator.main(PinotAdministrator.java:196)
If, instead of specifying the directory with the 2 data files and the schema.json file, I created a .july-13-segment.tar.gz
file (the same directory, tarred and gzipped), and specify that filename instead of the directory, namely
build/bin/pinot-admin.sh UploadSegment -controllerHost 35.226.77.155 -controllerPort 9000 -segmentDir ./july-13-segment.tar.gz
I get nearly the same error message (just without the "Input is not in the .gz format" part of the error:
...
Executing command: UploadSegment -controllerProtocol http -controllerHost A.B.C.D -controllerPort 9000 -segmentDir ./july-13-segment.tar.gz
java.lang.NullPointerException
at org.apache.pinot.shaded.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770)
at org.apache.pinot.tools.admin.command.UploadSegmentCommand.execute(UploadSegmentCommand.java:158)
at org.apache.pinot.tools.Command.call(Command.java:33)
at org.apache.pinot.tools.Command.call(Command.java:29)
at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine.execute(CommandLine.java:2078)
at org.apache.pinot.tools.admin.PinotAdministrator.execute(PinotAdministrator.java:165)
at org.apache.pinot.tools.admin.PinotAdministrator.main(PinotAdministrator.java:196)
My question: The "UploadSegment" documentation is rather incomplete; it really does not spell out what needs to be included in the directory (or the tarred-and-gzipped version of the directory, except that the files should have a suffix indicating their type; I am using "json" for all 3). Do I need to include additional files (if so, what is needed?), or rename any of the files?
(Thanks in advance!)Nathan Maves
07/23/2022, 1:13 PMCheguri Vinay Goud
07/25/2022, 10:12 AMJames Kelleher
07/25/2022, 5:19 PMAbhinav Rai
07/27/2022, 7:31 AMDeepika Eswar
08/03/2022, 7:11 AMRomil Punetha
08/09/2022, 11:22 AMAbdelhakim Bendjabeur
08/11/2022, 12:43 PMaustin macciola
08/11/2022, 6:53 PMDevang Shah
08/23/2022, 7:53 PMValarieR
08/24/2022, 8:34 PMmvn install package -DskipTests -Pbin-dist
, and after asking around for help, was told to remove the ~/.m2/settings.xml
configuration. After doing so, I ran into the following error, and am kind of at a loss:
[INFO] Pinot Service Provider Interface ................... FAILURE [ 0.570 s]
[ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.9.0:check (default) on project pinot-spi: Execution default of goal com.diffplug.spotless:spotless-maven-plugin:2.9.0:check failed: java.lang.reflect.InvocationTargetException: class com.google.googlejavaformat.java.RemoveUnusedImports (in unnamed module @0x3ba015b1) cannot access class com.sun.tools.javac.util.Context (in module jdk.compiler) because module jdk.compiler does not export com.sun.tools.javac.util to unnamed module @0x3ba015b1 -> [Help 1]
Has anyone seen this before?Hari
08/30/2022, 4:05 AMNaveen Nagarajan
09/02/2022, 1:18 AMPrabhagaran Ks
09/02/2022, 3:42 AMMatt Fysh
09/06/2022, 5:12 AMEaugene Thomas
09/07/2022, 8:34 AMAbdelhakim Bendjabeur
09/07/2022, 1:16 PMDeena Dhayalan
09/14/2022, 7:50 AMJosh Clum
09/19/2022, 3:26 PMJosh Clum
09/19/2022, 8:42 PM