binary - 以雪花二进制数据类型存储照片(JPG)
问题描述
以雪花二进制数据类型存储照片(大小<1MB)的步骤是什么?
解决方案
您需要将图像编码为 HEX 或 BASE64,然后将它们加载到 BINARY 列中。有关更多详细信息,请参阅https://docs.snowflake.com/en/user-guide/binary-input-output.html。正如其他人所提到的,这不太适合 Snowflake,您可能需要考虑仅存储对图像的引用(路径/url)并将它们存储在其他地方。
这是使用 Python 连接器存储图像的一种方法。
import snowflake.connector
import base64
import requests
# Assumes create or replace TABLE IMAGE (C1 BINARY);
conn = snowflake.connector.connect(**your_params)
sql = f"""insert into image values (to_binary('{base64.b64encode(requests.get('https://www.google.com/s2/favicons?domain=google.com').content).decode('ascii')}', 'BASE64'));"""
conn.cursor().execute(sql)
# Optionally, to display the image
import io
from PIL import Image
im = conn.cursor().execute("select * from image").fetchall()
with io.BytesIO(im[0][0]) as f:
display(Image.open(f))
推荐阅读
- vue.js - spreadjs的图标和一些按钮不起作用
- c# - 理论上按顺序执行 Xunit 测试(非并行)
- python - 重复一列中的值以填充该列中的空单元格
- arrays - 以角度获取动态嵌套复选框的值
- android - 为什么 AppBarLayout 底部内容被截断?
- c# - 错误!join 子句中的表达式之一的类型不正确。调用“GroupJoin”时类型推断失败
- arrays - 在 C 语言中使用数组声明类似的函数
- python - 如何使用 youtubedl 的搜索功能而不是 url 让我的不和谐机器人播放音乐?(Python)
- heroku - 验证器问题,验证码正确
- python - 是否可以在 matplotlib 中用填充图案装饰 3D 条?