SnowConvert AI : Hiveの機能の違い

SSC-FDM-HV0001

Snowflakeでは、外部テーブルへの値の挿入はサポートされていません。

説明

Hive形式テーブルでは値の挿入が可能ですが、Snowflake外部テーブルでは値の挿入はサポートされていません。つまり、テーブル構造は変換されますが、Snowflakeの外部テーブルに直接データを挿入しようとする操作は失敗します。

コード例

入力

Spark
 CREATE EXTERNAL TABLE IF NOT EXISTS External_table_hive_format
(
  order_id int,
  date string,
  client_name string,
  total float
)
stored as AVRO
LOCATION 'gs://sc_external_table_bucket/folder_with_avro/orders.avro';

出力

Snowflake
 --** SSC-FDM-HV0001 - INSERTING VALUES INTO AN EXTERNAL TABLE IS NOT SUPPORTED IN SNOWFLAKE **
CREATE EXTERNAL TABLE IF NOT EXISTS hive_format_orders_Andres
(
  order_id int AS CAST(GET_IGNORE_CASE($1, 'order_id') AS int),
  date string AS CAST(GET_IGNORE_CASE($1, 'date') AS string),
  client_name string AS CAST(GET_IGNORE_CASE($1, 'client_name') AS string),
  total float AS CAST(GET_IGNORE_CASE($1, 'total') AS float)
)
!!!RESOLVE EWI!!! /*** SSC-EWI-0032 - EXTERNAL TABLE REQUIRES AN EXTERNAL STAGE TO ACCESS gs:, DEFINE AND REPLACE THE EXTERNAL_STAGE PLACEHOLDER ***/!!!
LOCATION = @EXTERNAL_STAGE
AUTO_REFRESH = false
FILE_FORMAT = (TYPE = AVRO)
PATTERN = '/sc_external_table_bucket/folder_with_avro/orders.avro'
COMMENT = '{ "origin": "sf_sc", "name": "snowconvert", "version": {  "major": 0,  "minor": 0,  "patch": "0" }, "attributes": {  "component": "spark",  "convertedOn": "06/18/2025",  "domain": "no-domain-provided" }}';

ベストプラクティス

  • さらにサポートが必要な場合は、[snowconvert-support@snowflake.com](mailto:snowconvert-support@snowflake.com)までメールでお問い合わせください。

SSC-FDM-HV0002

Partitioned column added to table definition

説明

For Hive/Spark partitioned tables, the partition columns are stored in the directory structure rather than in the table data. Snowflake does not support this pattern. SnowConvert AI adds the partitioned columns to the table definition as regular columns so the table schema is complete.

コード例

入力

Hive
 CREATE EXTERNAL TABLE sales_data
(
  product_id INT,
  amount DECIMAL(10,2)
)
PARTITIONED BY (sale_month STRING)
STORED AS PARQUET
LOCATION 's3://bucket/sales/';

出力

Snowflake
 CREATE EXTERNAL TABLE sales_data (
  product_id INT,
  amount DECIMAL(10,2),
  sale_month STRING
)
--** SSC-FDM-HV0002 - PARTITIONED COLUMN ADDED TO TABLE DEFINITION. **
LOCATION = @EXTERNAL_STAGE
FILE_FORMAT = (TYPE = PARQUET);

ベストプラクティス

  • Verify that partition columns are correctly mapped to your file path structure.

  • さらにサポートが必要な場合は、[snowconvert-support@snowflake.com](mailto:snowconvert-support@snowflake.com)までメールでお問い合わせください。

SSC-FDM-HV0003

NULL format parameter is not supported in FROM_UNIXTIME

説明

Hive's FROM_UNIXTIME function allows a NULL format parameter, in which case it uses a default format. Snowflake's equivalent (TO_VARCHAR with TO_TIMESTAMP_NTZ) does not support a NULL format parameter. SnowConvert AI passes the NULL through, but the conversion may fail at runtime or behave unexpectedly.

コード例

入力

Hive
 SELECT FROM_UNIXTIME(1697328000, CAST(NULL AS STRING));

出力

Snowflake
 SELECT
  --** SSC-FDM-HV0003 - NULL FORMAT PARAMETER IS NOT SUPPORTED IN FROM_UNIXTIME. **
  TO_VARCHAR(TO_TIMESTAMP_NTZ(1697328000), CAST(NULL AS STRING));

ベストプラクティス

  • Replace NULL format parameters with an explicit format string (e.g., 'yyyy-MM-dd HH:mm:ss').

  • さらにサポートが必要な場合は、[snowconvert-support@snowflake.com](mailto:snowconvert-support@snowflake.com)までメールでお問い合わせください。

SSC-FDM-HV0004

INSTR transformed to REGEXP_INSTR changes literal to regex pattern

説明

Hive's INSTR function uses literal string matching. Snowflake does not have INSTR; SnowConvert AI translates it to REGEXP_INSTR. REGEXP_INSTR interprets the pattern as a regex, so metacharacters (e.g., ., *, $) will behave differently than in Hive's literal matching.

コード例

入力

Hive
 SELECT INSTR('price: $10.99', pattern_col, 1, 1);

出力

Snowflake
 SELECT
  --** SSC-FDM-HV0004 - HIVE'S INSTR USES LITERAL STRING MATCHING, BUT REGEXP_INSTR INTERPRETS THE PATTERN AS A REGEX. METACHARACTERS WILL BEHAVE DIFFERENTLY. **
  REGEXP_INSTR('price: $10.99', pattern_col, 1, 1);

ベストプラクティス

  • When the pattern contains regex metacharacters, escape them or use REGEXP_REPLACE to sanitize the pattern.

  • さらにサポートが必要な場合は、[snowconvert-support@snowflake.com](mailto:snowconvert-support@snowflake.com)までメールでお問い合わせください。