{"id":14399,"date":"2024-11-01T09:31:48","date_gmt":"2024-11-01T01:31:48","guid":{"rendered":"https:\/\/nj.transwarp.cn:8180\/?p=14399"},"modified":"2025-03-24T14:47:41","modified_gmt":"2025-03-24T06:47:41","slug":"quark-%e6%89%93patch%e4%b9%8b%e5%90%8e-metastore%e5%90%af%e5%8a%a8%e6%8a%a5%e9%94%99%ef%bc%9aspecified-key-was-too-long-max-key-length-is-767-bytes","status":"publish","type":"post","link":"https:\/\/kbwp.transwarp.cn\/?p=14399","title":{"rendered":"quark \u6253patch\u4e4b\u540e metastore\u542f\u52a8\u62a5\u9519\uff1aSpecified key was too long; max key length is 767 bytes"},"content":{"rendered":"<h3>\u6982\u8981\u63cf\u8ff0<\/h3>\n<hr \/>\n<p>argodb5.2\u73af\u5883\uff0c\u5171\u4eabinceptor6.2.2 \u7684txsql\u5143\u6570\u636e\uff0c\u66f4\u65b0\u6700\u65b0patch\u4e4b\u540e\uff0cquark metastore\u65e0\u6cd5\u542f\u52a8\uff0c\u62a5\u9519 <code>Specified key was too long; max key length is 767 bytes<\/code><br \/>\n<img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2024\/11\/image-1742798965008.png\" alt=\"file\" \/><\/p>\n<p>Quark\u4f9d\u8d56\u4fe1\u606f\uff1a<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2024\/09\/image-1727431074344.png\" alt=\"file\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2024\/09\/image-1727431108517.png\" alt=\"file\" \/><\/p>\n<h3>\u6392\u67e5\u601d\u8def<\/h3>\n<hr \/>\n<p>\u6839\u636e\u8be5\u62a5\u9519 <code>Specified key was too long; max key length is 767 bytes<\/code>\uff0c\u5728txsql\u4e2d\u5c1d\u8bd5\u914d\u7f6e  <code>SET GLOBAL INNODB_LARGE_PREFIX = ON;<\/code>\uff0c \u518d\u91cd\u542fmetastore\uff0c\u62a5\u9519\u53d8\u6210 <code>Index column size too large. The maximun column size is 767 bytes<\/code><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2024\/09\/image-1727431198213.png\" alt=\"file\" \/><\/p>\n<p>\u4ece\u62a5\u9519\u65e5\u5fd7\u53ef\u4ee5\u770b\u5230\uff0c\u662f \u5728\u5bf9\u505a <code>Upgrade script upgrade-0.12.54-to-0.12.55.mysql.sql<\/code>  \u5143\u6570\u636e\u5347\u7ea7 \u7684\u65f6\u5019\u629b\u51fa\u7684\u5f02\u5e38\uff0c<\/p>\n<p>\u5230 inceptor pod\u5185 \u67e5\u770b \/usr\/lib\/hive\/scripts\/metastore\/upgrade\/mysql\/upgrade-0.12.54-to-0.12.55.mysql.sql\uff0c<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2024\/09\/image-1727431317848.png\" alt=\"file\" \/><\/p>\n<p>\u53ef\u4ee5\u770b\u5230\uff0c\u8be5upgrade\u5347\u7ea7\u64cd\u4f5c\uff0c\u662f\u5982\u4e0b\u5185\u5bb9\uff1a<\/p>\n<p><code>ALTER TABLE FUNCS modify column FUNC_NAME varchar(512) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL;<\/code> <\/p>\n<p>\u5bf9FUNCS\u8868\u624b\u52a8\u505aALTER\u64cd\u4f5c\u4e5f\u80fd\u591f\u590d\u73b0\u8be5\u95ee\u9898\uff1a<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2024\/09\/image-1727431399321.png\" alt=\"file\" \/><\/p>\n<h3>\u89e3\u51b3\u65b9\u6848<\/h3>\n<hr \/>\n<h4>\u65b9\u6848\u4e00\uff1atxsql\u8fc1\u79fb\u5230kundb (\u4f18\u5148\u63a8\u8350\uff01\uff01\uff01)<\/h4>\n<h4>\u65b9\u6848\u4e8c\uff1a\u4fee\u6539\u5b57\u7b26\u96c6\u4e3alatin1<\/h4>\n<p>\u7f3a\u70b9\uff1a\u4e0d\u652f\u6301\u4e2d\u6587<\/p>\n<h4>\u65b9\u6848\u4e09\uff1a\u53bb\u6389\u8be5\u5143\u6570\u636e\u5347\u7ea7\u6b65\u9aa4<\/h4>\n<p>\u91cd\u505aquark\u955c\u50cf\uff0c\u6ce8\u91ca\u6389 <code>\/usr\/lib\/hive\/scripts\/metastore\/upgrade\/mysql\/upgrade-0.12.54-to-0.12.55.mysql.sql<\/code> \u4e2d\u7684 <code>SOURCE 066-HIVE-metastore-funcs-funcname.sql<\/code>\u3002<\/p>\n<blockquote>\n<p>\u5efa\u8bae\u5ba2\u6237\u63a7\u5236 \u5e93\u540d+func\/proc\u540d \u957f\u5ea6+\u53c2\u6570\u4e2a\u6570\uff0c\u5426\u5219\u4f1a\u5bfc\u81f4FUNC_NAME\u5b57\u6bb5\u8fc7\u957f\u3002<\/p>\n<\/blockquote>\n<p>\u7f3a\u70b9\uff1a<strong>\u5e93\u540d+func\/proc\u540d+\u53c2\u6570\u8fc7\u591a<\/strong>\uff0c\u521b\u5efafunction\/procedure\u65f6\u4f1a\u62a5\u9519 <code>Attempt to store value &quot;_z54_d7defaultp0proc_this_is_a_proc_with_24_varchar2_paramsvarchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2&quot; in column &quot;<\/code>FUNC_NAME<code>&quot; that has maximum length of 255. Please correct your data!<\/code><\/p>\n<p><strong>FAQ:<\/strong><\/p>\n<pre><code class=\"language-sql\">select  func_name,length(func_name)  as ln from metastore_quark1.funcs f order by ln  desc limit 10 ;<\/code><\/pre>\n<p>\u67e5\u8be2\u7ed3\u679c length(func_name) \u9700\u8981\u63a7\u5236\u5728255 \u4ee5\u5185\u3002<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/nj.transwarp.cn:8180\/wp-content\/uploads\/2024\/09\/image-1727431814141.png\" alt=\"file\" \/><\/p>\n<pre><code class=\"language-shell\">create or replace procedure\nproc_this_is_a_proc_with_24_varchar2_params (\na35 varchar2(100),\na36 varchar2(100),\na37 varchar2(100),\na38 varchar2(100),\na39 varchar2(100),\na40 varchar2(100),\na41 varchar2(100),\na42 varchar2(100),\na43 varchar2(100),\na44 varchar2(100),\na45 varchar2(100),\na46 varchar2(100),\na47 varchar2(100),\na48 varchar2(100),\na49 varchar2(100),\na50 varchar2(100),\na51 varchar2(100),\na52 varchar2(100),\na53 varchar2(100),\na54 varchar2(100),\na55 varchar2(100),\na56 varchar2(100),\na57 varchar2(100),\na58 varchar2(100),\na59 varchar2(100)\n)\nis\ndeclare\na int\nbegin\ndbms_output.put_line(\"proc_this_is_a_proc_with_24_varchar2_params\")\nend;\n\n\u62a5\u9519\uff1aSQL \u9519\u8bef [40000] [08S01]: EXECUTION FAILED: Task CREATE PLSQL FUNCTION error HiveException: [Error 40000] javax.jdo.JDOFatalUserException: Attempt to store value \"_z54_d7defaultp0proc_this_is_a_proc_with_24_varchar2_paramsvarchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2\" in column \"<code>FUNC_NAME<\/code>\" that has maximum length of 255. Please correct your data!\nat org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:616)\nat org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:720)\nat org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:740)\nat org.apache.hadoop.hive.metastore.ObjectStore.createFunction(ObjectStore.java:10897)\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\nat java.lang.reflect.Method.invoke(Method.java:483)\nat org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:98)\nat com.sun.proxy.$Proxy11.createFunction(Unknown Source)\nat org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_function(HiveMetaStore.java:956)\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\nat java.lang.reflect.Method.invoke(Method.java:483)\nat org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:102)\nat com.sun.proxy.$Proxy12.create_function(Unknown Source)\nat org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_function.getResult(ThriftHiveMetastore.java:21987)\nat org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_function.getResult(ThriftHiveMetastore.java:21971)\nat org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)\nat org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)\nat org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor$1.run(HadoopThriftAuthBridge.java:692)\nat org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor$1.run(HadoopThriftAuthBridge.java:687)\nat java.security.AccessController.doPrivileged(Native Method)\nat javax.security.auth.Subject.doAs(Subject.java:422)\nat org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:2197)\nat org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge.java:687)\nat org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)\nat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\nat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\nat java.lang.Thread.run(Thread.java:745)\nNestedThrowablesStackTrace:\nAttempt to store value \"_z54_d7defaultp0proc_this_is_a_proc_with_24_varchar2_paramsvarchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2\" in column \"<code>FUNC_NAME<\/code>\" that has maximum length of 255. Please correct your data!\norg.datanucleus.exceptions.NucleusUserException: Attempt to store value \"_z54_d7defaultp0proc_this_is_a_proc_with_24_varchar2_paramsvarchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2varchar2\" in column \"<code>FUNC_NAME<\/code>\" that has maximum length of 255. Please correct your data!\nat org.datanucleus.store.rdbms.mapping.datastore.CharRDBMSMapping.setString(CharRDBMSMapping.java:254)\nat org.datanucleus.store.rdbms.mapping.java.SingleFieldMapping.setString(SingleFieldMapping.java:180)\nat org.datanucleus.store.rdbms.fieldmanager.ParameterSetter.storeStringField(ParameterSetter.java:158)\nat org.datanucleus.state.AbstractStateManager.providedStringField(AbstractStateManager.java:1448)\nat org.datanucleus.state.StateManagerImpl.providedStringField(StateManagerImpl.java:120)\nat org.apache.hadoop.hive.metastore.model.MFunction.dnProvideField(MFunction.java)\nat org.apache.hadoop.hive.metastore.model.MFunction.dnProvideFields(MFunction.java)\nat org.datanucleus.state.StateManagerImpl.provideFields(StateManagerImpl.java:1170)\nat org.datanucleus.store.rdbms.request.InsertRequest.execute(InsertRequest.java:292)\nat org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObjectInTable(RDBMSPersistenceHandler.java:162)\nat org.datanucleus.store.rdbms.RDBMSPersistenceHandler.insertObject(RDBMSPersistenceHandler.java:138)\nat org.datanucleus.state.StateManagerImpl.internalMakePersistent(StateManagerImpl.java:3363)\nat org.datanucleus.state.StateManagerImpl.makePersistent(StateManagerImpl.java:3339)\nat org.datanucleus.ExecutionContextImpl.persistObjectInternal(ExecutionContextImpl.java:2079)\nat org.datanucleus.ExecutionContextImpl.persistObjectWork(ExecutionContextImpl.java:1922)\nat org.datanucleus.ExecutionContextImpl.persistObject(ExecutionContextImpl.java:1777)\nat org.datanucleus.ExecutionContextThreadedImpl.persistObject(ExecutionContextThreadedImpl.java:217)\nat org.datanucleus.api.jdo.JDOPersistenceManager.jdoMakePersistent(JDOPersistenceManager.java:715)\nat org.datanucleus.api.jdo.JDOPersistenceManager.makePersistent(JDOPersistenceManager.java:740)\nat org.apache.hadoop.hive.metastore.ObjectStore.createFunction(ObjectStore.java:10897)\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\nat java.lang.reflect.Method.invoke(Method.java:483)\nat org.apache.hadoop.hive.metastore.RawStoreProxy.invoke(RawStoreProxy.java:98)\nat com.sun.proxy.$Proxy11.createFunction(Unknown Source)\nat org.apache.hadoop.hive.metastore.HiveMetaStore$HMSHandler.create_function(HiveMetaStore.java:956)\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\nat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\nat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\nat java.lang.reflect.Method.invoke(Method.java:483)\nat org.apache.hadoop.hive.metastore.RetryingHMSHandler.invoke(RetryingHMSHandler.java:102)\nat com.sun.proxy.$Proxy12.create_function(Unknown Source)\nat org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_function.getResult(ThriftHiveMetastore.java:21987)\nat org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore$Processor$create_function.getResult(ThriftHiveMetastore.java:21971)\nat org.apache.thrift.ProcessFunction.process(ProcessFunction.java:39)\nat org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:39)\nat org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor$1.run(HadoopThriftAuthBridge.java:692)\nat org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor$1.run(HadoopThriftAuthBridge.java:687)\nat java.security.AccessController.doPrivileged(Native Method)\nat javax.security.auth.Subject.doAs(Subject.java:422)\nat org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:2197)\nat org.apache.hadoop.hive.thrift.HadoopThriftAuthBridge$Server$TUGIAssumingProcessor.process(HadoopThriftAuthBridge.java:687)\nat org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:285)\nat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\nat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\nat java.lang.Thread.run(Thread.java:745)<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6982\u8981\u63cf\u8ff0 argodb5.2\u73af\u5883\uff0c\u5171\u4eabinceptor6.2.2 \u7684txsql\u5143\u6570\u636e\uff0c\u66f4\u65b0\u6700\u65b0patch\u4e4b\u540e\uff0c ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/kbwp.transwarp.cn\/?p=14399\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":12,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-14399","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"acf":[],"_links":{"self":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/14399","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=14399"}],"version-history":[{"count":3,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/14399\/revisions"}],"predecessor-version":[{"id":16234,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=\/wp\/v2\/posts\/14399\/revisions\/16234"}],"wp:attachment":[{"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=14399"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=14399"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kbwp.transwarp.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=14399"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}