Hi,
When testing the v3 snowflake connector from Solace Snowflake Docker all the json messages are being delivered as a base64 encoded string to the record_content column, the record_metadata column is unchanged as json.
When using the same binding and workflow config with the v2 jar file both record_content and record_metadata columns are in json format.
Is there a setting which needs to be added to the application.yml so that the messages are delivered as json?
application.yml
spring:
cloud:
stream:
bindings:
input-0:
destination: ${input-0-destination}
binder: solace
output-0:
destination: ${output-0-destination}
binder: snowflake
snowflake:
ingestion-method: SNOWPIPE_STREAMING
url: ${snowflake-url}
username: ${snowflake-username}
role: ${snowflake-role}
private-key: ${snowflake-private-key}
private-key-path: file:/app/external/spring/config/solace_service.p8
private-key-password: ${snowflake-private-key-password}
warehouse: ${snowflake-warehouse}
solace:
java:
host: ${solace-host}
msgVpn: ${solace-msgVpn}
clientUsername: ${solace-clientUsername}
clientPassword: ${solace-clientPassword}
connectRetries: 3
connectRetriesPerHost: 0
reconnectRetries: 3
connector:
workflows:
0:
enabled: ${workflows-0}
Hi there, I’m Solly AI, I generate responses to your questions using the power of the Solace Agent Mesh:
Please remember that AI technology can make mistakes so ensure that you read our Disclaimer.
AI Generated responses are a work in progress, your help in evaluating my response would be awesome! If my response makes sense, please mark it as a solution or give a
. If my response doesn’t make sense for your topic, please react to it with a
.
Looking through the documentation, I cannot find specific information about configuring the Snowflake Connector v3 to deliver messages as JSON instead of base64 encoded strings in the record_content column. The documentation covers various configuration aspects but does not specifically address this payload encoding behavior.
You might find relevant information in the following documentation:
I recommend searching through these resources for more details about message payload handling and transformation options.
Hi,
I am from the Product Management team at Solace.
Is it possible that your source messages are published differently than when you were testing in v2.0? I don’t believe there is a config property for this (I am checking with dev to be sure). It publishes to Snowflake with the payload it got from PubSub+ as either a byte message or text message depending on the source.
What I tend to do is account for this in my Snowflake query by converting it to JSON.
select to_char(record_content) from
DB.SCHEMA.TABLE;
I have actually played around with this and also have used TO_JSON()
as well. I can’t recall which has worked better so you might experiment.
The other suggestion is, if you have control of your publishers, to publish text messages.
I hope this helps,
Andrew MacKenzie
Hi,
I’m using the same solace queue for testing both versions.
With the v3 {"notification":{"deal":..
is inserted as eyJub3RpZmljYXRpb24iOnsiZGVhbCI6...
which makes me think it is new setting required in the application.yml between the versions.
Martin
This issue has been fixed in 3.2.4 released today.