I am looking to join a stream/table together which I am able to do, however, on the create stream join statement in KSQLDB.
CREATE STREAM test_name ......
Works
CREATE STREAM test.name ......
Does not WOrk
I am given an error related to using the period in the name. Would like to create a stream against my Kafka topic which has a period in it.
Any ideas?
Identifiers are symbols that represent user-defined entities, like streams, tables, columns, and other objects. For example, if you have a stream named s1, s1 is an identifier for that stream. By default, identifiers are case-insensitive, meaning s1 and S1 refer to the same stream. Under the hood, ksqlDB capitalizes all of the characters in the identifier for all future display purposes.
Unless an identifier is backticked, it may be composed only of characters that are a letter, number, or underscore. There is no imposed limit on the number of characters.
To make it possible to use any character in an identifier, you can enclose it in backticks (`) when you declare and use it. A backticked identifier is useful when you don't control the data, so it might have special characters, or even keywords. When you use backticked identifers, ksqlDB captures the case exactly, and any future references to the identifer become case-sensitive.
Using KAFKA_TOPIC you can state your topic name
CREATE STREAM pageviews
(viewtime BIGINT,
userid VARCHAR,
pageid VARCHAR)
WITH (KAFKA_TOPIC='page.views',
VALUE_FORMAT='DELIMITED')
EMIT CHANGES;